一、 SSH 暴力破解检测方法
如果你 CPU/内存异常爆表,连线速度极慢,有异常程序等情况,有可能你的 VPS 被人扫描破解或者已经沦陷。。
可以用下面方法检测下多少人在 “盯著” 你的 VPS:
# cat /var/log/secure | awk ‘/Failed/{print $(NF-3)}’ | sort | uniq -c | awk ‘{print $2″ = “$1;}’
通过上面的命令可以检视有哪些 IP 尝试过连线和破解次数,如下所示:
47.88.101.47 = 6
51.254.240.50 = 2
58.218.204.107 = 42
58.218.204.211 = 9
…….
二、 DenyHosts 安装与配置演示
<1>下载 DenyHosts
# wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz
# tar -xzf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
<2>安装、配置、启动
安装前建议执行
# echo “” > /var/log/secure && service rsyslog restart
清空以前的日志并重启 rsyslog.
# python setup.py install
因为 DenyHosts 是基于 python 的,所以要已安装 python,大部分 Linux 发行版一般都有。预设是安装到/usr/share/denyhosts/目录的, 进入相应的目录修改配置档案
# cd /usr/share/denyhosts/
# cp denyhosts.cfg-dist denyhosts.cfg
# cp daemon-control-dist daemon-control
预设的设定已经可以适合 centos 系统环境,你们可以使用 vi 命令检视一下 denyhosts.cfg 和 daemon-control,里面有详细的解释
接下来用命令启动 denyhosts.
# chown root daemon-control
# chmod 700 daemon-control
# ./daemon-control start
如果要使 DenyHosts 自动启动还需做如下设定:
# ln -sf /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
# chkconfig –add denyhosts
# chkconfig –level 2345 denyhosts on
或者执行下面的命令加入开机启动,将会修改/etc/rc.local 档案:
echo “/usr/share/denyhosts/daemon-control start” >> /etc/rc.local
三、 DenyHosts 配置档案/usr/share/denyhosts/denyhosts.cfg 说明:
SECURE_LOG = /var/log/secure
#sshd 日志档案,它是根据这个档案来判断的,不同的操作系统,档名稍有不同。
HOSTS_DENY = /etc/hosts.deny
#控制使用者登陆的档案
PURGE_DENY = 5m
DAEMON_PURGE = 5m
#过多久后清除已经禁止的 IP,如 5m(5 分钟)、 5h(5 小时)、 5d(5 天)、 5w(5 周)、 1y(一年)
BLOCK_SERVICE = sshd
#禁止的服务名,可以只限制不允许访问 ssh 服务,也可以选择 ALL
DENY_THRESHOLD_INVALID = 5
#允许无效使用者失败的次数
DENY_THRESHOLD_VALID = 10
#允许普通使用者登陆失败的次数
DENY_THRESHOLD_ROOT = 5
#允许 root 登陆失败的次数
HOSTNAME_LOOKUP=NO
#是否做域名反解
DAEMON_LOG = /var/log/denyhosts
四、为防止自己的 IP 被遮蔽,可以:
echo “你的IP” >> /usr/share/denyhosts/allowed-hosts 将你的 IP 加入白名单,再重启 DenyHosts:/etc/init.d/denyhosts
如果已经被封,需要先按下面的命令删除被封 IP 后再加白名单。
如有 IP 被误封,可以执行下面的命令解封:
wget http://soft.vpser.net/security/denyhosts/denyhosts_removeip.sh && bash denyhost_removeip.sh 要解封的 IP
五、检视攻击 ip 记录
# cat /etc/hosts.deny