CentOS7安装Fail2Ban防止SSH被暴力破解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7安装Fail2Ban防止SSH被暴力破解相关的知识,希望对你有一定的参考价值。

参考技术A

1、检查 Firewalld 防火墙是否启用

2、启用 Firewalld 后默认 --remove-port 禁止所有端口,需手动开放,以下是开放 SSH 端口( 22 )示例:

1、编辑

2、配置

意思是如果在1小时内,同一IP登陆失败3次,则将其封禁24小时,具体根据实际情况修改。

1、执行命令

2、显示内容

1、编辑 (Debian系:/etc/s-nail.rc;RedHat系:/etc/mail.rc)

2、在文件末尾增加配置

3、测试

多个收件人用 , 分隔,刚刚发送的邮件在 收件箱 垃圾箱 中。

1、编辑

2、配置

1、编辑

2、配置

nginx 为例,使用 fail2ban 来监视 nginx 日志,匹配短时间内频繁请求的 IP ,并使用 firewalld 将其 IP 屏蔽,达到 CC 防护的作用。

1、编辑

2、配置

1、编辑

2、配置

意思是如果在60秒内,同一IP达到120次请求,则将其封禁2小时,具体根据实际情况修改。

1、执行命令

2、显示内容

1、使用正则规则检测

2、使用规则文件检测

Centos7使用DenyHosts防止ssh暴力破解

DenyHosts是用python2.3编写的一个程序,会分析/var/log/secure等文件,当发现同一个ip进行多次ssh登录失败时会将其写入/etc/hosts.dengy文件,达到屏蔽该ip的目的。

下载DenyHosts包

[root@localhost ~]# wget http://jaist.dl.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gz

安装DenyHosts

[root@localhost ~]# tar xf DenyHosts-2.6.tar.gz
[root@localhost ~]# cd DenyHosts-2.6
[root@localhost DenyHosts-2.6]# python setup.py install

制作配置文件

[root@localhost DenyHosts-2.6]# cp denyhosts.cfg-dist /etc/denyhosts.cfg
[root@localhost DenyHosts-2.6]# cp daemon-control-dist daemon-control
[root@localhost DenyHosts-2.6]# chown root daemon-control
[root@localhost DenyHosts-2.6]# chmod 700 daemon-control

修改配置文件

将daemon-control中的#DENYHOSTS_CFG = "/usr/share/denyhosts/denyhosts.cfg"改为 DENYHOSTS_CFG = "/etc/denyhosts.cfg"

启动

[root@localhost DenyHosts-2.6]# ./daemon-control start(注意相对路径)

测试另外一台服务器远程连接172.16.1.16

默认允许五次,测试发现登陆失败五次之后不允许登陆

[root@localhost ~]# ssh abc@172.16.1.16
abc@172.16.1.16's password: 
Permission denied, please try again.
abc@172.16.1.16's password: 
Permission denied, please try again.
abc@172.16.1.16's password: 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[root@localhost ~]# 
[root@localhost ~]# ssh abc@172.16.1.16
abc@172.16.1.16's password: 
Permission denied, please try again.
abc@172.16.1.16's password: 
Permission denied, please try again.
abc@172.16.1.16's password: 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[root@localhost ~]# ssh abc@172.16.1.16
abc@172.16.1.16's password: 
Permission denied, please try again.
abc@172.16.1.16's password: 
Permission denied, please try again.
abc@172.16.1.16's password: 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[root@localhost ~]# ssh abc@172.16.1.16
abc@172.16.1.16's password: 
Permission denied, please try again.
abc@172.16.1.16's password: 
Permission denied, please try again.
abc@172.16.1.16's password: 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[root@localhost ~]# ssh abc@172.16.1.16
ssh_exchange_identification: read: Connection reset by peer

查看hosts.deny文件

登陆连续失败之后就会把ip地址写在hosts.deny文件

如果要使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

以上是关于CentOS7安装Fail2Ban防止SSH被暴力破解的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7安装fail2ban+Firewalld防止SSH爆破

Linux 系统安全 -- 防暴力破解

使用DenyHosts防止ssh暴力破解

Centos7使用DenyHosts防止ssh暴力破解

Centos7使用DenyHosts防止ssh暴力破解

Centos7使用DenyHosts防止ssh暴力破解