首先来看看服务器有没有被别人暴力破解的迹象~
这里的/var/log/auth.log (也就是SSH的日志)根据你的系统不同,文件也不同:
Mandrake, FreeBSD or OpenBSD → /var/log/auth.log
SuSE → /var/log/messages
Mac OS X (v10.4 or greater) → /private/var/log/asl.log
Mac OS X (v10.3 or earlier) → /private/var/log/system.log
然后输出的结果如下:
不看不知道,一看吓一跳。好家伙,前面四个居然有1、2万的失败记录,估计就是专做暴力破解的吧。试着搜索了一下这个IP,果然是专做暴力破解的,别人已经把它放在屏蔽列表里面了。
先把登陆SSH的端口改一下吧
vim /etc/ssh/sshd_config
默认的配置是:
Port 22
把22改为其他不易猜到的端口就行,比如
Port 25252
然后重启SSH服务
/etc/init.d/ssh restart
不过这样可能还不够,我们还可以用第三方软件来实现防御。比如DenyHost。
在下载解压之后执行:
python setup.py install
然后为了能开机启动,做一个denyhosts的符号链接:
ln -s /usr/share/denyhosts/daemon-control-dist /etc/init.d/denyhosts
chkconfig --add denyhosts
如果没有安装chkconfig的话,执行一下(如果你用的是APT来管理的话)
apt-get install chkconfig
现在就可以去配置denyhosts了:
cd /usr/share/denyhosts
cp denyhosts.cfg-dist denyhosts.cfg
vim denyhosts.cfg
需要修改的地方不多:
SECURE_LOG 是之前提到的SSH的日志的位置。
PURGE_DENY 在Block多少时间后再次允许登陆,留空的话,则为永久屏蔽。
DENY_THRESHOLD_INVALID 登陆一个不存在的用户的话,失败几次后屏蔽。
DENY_THRESHOLD_VALID 登陆普通用户,失败几次后屏蔽。
DENY_THRESHOLD_ROOT 登陆root用户,失败几次后屏蔽。
保存之后就可以启动denyhosts服务了。
/etc/init.d/denyhosts start