Linux下检测SSH暴力破解攻击与防护功能
网络上无聊的人一大堆,SSH端口密码扫描破解的人也很多,如果你的VPS被攻破那么会被用来攻击别人(如DDOS攻击),那么遇到严格的服务商,那么就会被关闭或者永久关闭,下面给大家推荐个检测SSH破解及防护方法。
查看当前异常ip地址
/bin/awk '/Failed/{print $(NF-3)}' /var/log/secure | /bin/sort | /usr/bin/uniq -c | sort -rn输出内容如下
458 121.42.0.83 319 101.200.174.32 300 123.57.213.15 300 121.42.0.37 237 121.42.0.19 232 121.42.0.89 229 123.57.140.171 229 121.42.0.82 205 121.42.0.14 182 121.43.152.237 180 123.56.186.143 171 121.42.0.84 168 121.42.0.85 157 123.57.17.90 146 139.129.109.204 130 120.27.148.15 121 182.92.187.97 92 123.56.111.216 88 123.56.4.197 88 120.26.61.52 87 123.56.92.235 85 114.215.100.219 82 120.25.221.120 78 121.42.0.88 70 139.129.111.126 67 120.24.158.240 57 123.56.148.203 56 121.42.0.87 56 121.42.0.36 56 121.42.0.31 51 120.24.218.139 50 115.28.8.86 49 123.56.196.81 43 182.92.84.26 36 123.56.4.59 36 120.55.193.110 36 115.29.39.220 36 114.215.111.100 35 121.41.99.170 32 139.129.128.244 29 123.57.190.60 28 120.26.106.213 27 120.26.221.249 27 120.24.71.65 27 114.215.80.202 26 120.24.221.16DenyHosts安装与配置演示:
1、下载DenyHosts 并解压
[root@localhost ~]# wget http://freefr.dl.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gz[root@localhost ~]# tar zxf DenyHosts-2.6.tar.gz[root@localhost ~]# cd DenyHosts-2.6[root@localhost ~]# echo "" > /var/log/secure && service rsyslog restart # 清空以前的日志并重启一下rsyslog 建议执行(Centos7 systemctl restart rsyslog.service)[root@localhost ~]# python setup.py install因为DenyHosts是基于python的,所以要已安装python,大部分Linux发行版一般都有。默认是安装到/usr/share/denyhosts/目录的,进入相应的目录修改配置文件
[root@localhost ~]# cd /usr/share/denyhosts/[root@localhost ~]# cp denyhosts.cfg-dist denyhosts.cfg[root@localhost ~]# cp daemon-control-dist daemon-control默认的设置已经可以适合centos系统环境,你们可以使用vi命令查看一下denyhosts.cfg和daemon-control,里面有详细的解释
接着使用下面命令启动denyhosts程序
[root@localhost ~]# chown root daemon-control[root@localhost ~]# chmod 700 daemon-control[root@localhost ~]# ./daemon-control start[root@localhost ~]# ln -sf /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts[root@localhost ~]# chkconfig --add denyhosts[root@localhost ~]# chkconfig --level 2345 denyhosts onDenyHosts配置文件/usr/share/denyhosts/denyhosts.cfg说明:
SECURE_LOG = /var/log/secure#sshd日志文件,它是根据这个文件来判断的,不同的操作系统,文件名稍有不同。HOSTS_DENY = /etc/hosts.deny#控制用户登陆的文件PURGE_DENY = 5mDAEMON_PURGE = 5m#过多久后清除已经禁止的IP,如5m(5分钟)、5h(5小时)、5d(5天)、5w(5周)、1y(一年)BLOCK_SERVICE = sshd#禁止的服务名,可以只限制不允许访问ssh服务,也可以选择ALLDENY_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 记录
[root@localhost ~]# cat /etc/hosts.deny