CentOS7防止暴力ssh破解

记得以前有个开源软件,全面防护linux,功能挺全的,什么waf、防暴力等等,而且有网页的管理视图,做的非常不错,可惜忘记叫什么名字了。

今天暂时先使用一款大家普遍使用的防暴力破解ssh工具fail2ban。以下内容转载于https://apad.pro/centos7-fail2ban/

安装fail2ban

yum -y install epel-release
yum -y install fail2ban

创建/编辑配置文件jail.local

vi /etc/fail2ban/jail.local

输入以下内容:

Iptables配置

[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 3600
maxretry = 5
findtime = 300
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure

Firewalld配置

[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 3600
maxretry = 5
findtime = 300
banaction = firewallcmd-ipset
action = %(action_mwl)s
[ssh-iptables]
enabled = true
filter = sshd
port = 22
action = %(action_mwl)s
logpath = /var/log/secure

 

配置文件说明:

# /etc/fail2ban/jail.conf 为主配置文件,一般不做修改
# /etc/fail2ban/jail.local 为自定义配置文件,会覆盖jail.conf里相同的值
# DEFAULT这里是设定全局设置,若下面的监控没有设置就以全局设置的值设置
[DEFAULT]
# 以空格分隔的列表,可以是IP地址、CIDR前缀或者DNS主机名
# 用于指定哪些地址可以忽略fail2ban防御
ignoreip = 127.0.0.1 192.168.1.0/24
# 客户端主机被禁止的时长(秒)
bantime = 86400
# 客户端主机被禁止前允许失败的次数
maxretry = 5
# 查找失败次数的时长(秒)
findtime = 600
[ssh-iptables]
# 是否开启
enabled = true
# 采用的过滤器
filter = sshd
# 采取的动作
action = iptables[name=SSH, port=ssh, protocol=tcp]
# 针对的日志文件的路径
logpath = /var/log/secure
# ssh 服务的最大尝试次数
maxretry = 3

 

启动服务

systemctl enable fail2ban
systemctl start fail2ban

 

常用命令

# 重新读取配置文件
fail2ban-client reload
# 查看被ban IP,其中sshd为名称,比如上面的[ssh-iptables]
fail2ban-client status sshd
# 删除被ban IP
fail2ban-client set sshd unbanip 192.168.111.111
# 查看日志
tail -f /var/log/fail2ban.log
# 查看fail2ban过滤器是否适用于特定日志文件
fail2ban-regex /var/log/example.error.log

 

posted @ 2020-12-24 14:40  崩溃de土豆  阅读(180)  评论(0)    收藏  举报