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.16

DenyHosts安装与配置演示:

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 on

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 记录

[root@localhost ~]# cat /etc/hosts.deny

 

-------------本文结束感谢您的阅读-------------