1、安裝
yum install epel-release -y yum install fail2ban fail2ban-systemd -y
2、配置
//新建配置 vim /etc/fail2ban/jail.d/sshd.local
寫入以下命令:
[sshd] enabled = true filter = sshd findtime = 120 bantime = 120 maxretry = 3 banaction = iptables-allports
或
[sshd] enabled = true filter = sshd action = iptables[name=sshd-ban, port=ssh, protocol=tcp] findtime =60 bantime = 60 maxretry = 3
保存退出,重啟服務:
//啟動服務 systemctl start fail2ban.service
說明:
enabled=true 是否啟用
ignoreip = 127.0.0.1 忽略的IP
bantime=86400 封鎖時間,單位:秒
findtime=600 統計時間范圍,在規定時間內滿足條件開始執行封鎖,單位:秒
maxretry=5 錯誤次數
port=26613 端口
logpath=/var/log/secure 檢測日志路徑
[DEFAULT]
#忽略哪些IP,可以是具體IP、CIDR類型的地址,多個IP用空格分開
ignoreip = 127.0.0.1
#設置IP被鎖住的時間,單位為秒
bantime = 600
#檢測時間,在此時間內超過規定的次數會激活fail2ban
findtime = 600
#嘗試的次數
maxretry = 3
#日志檢測機器,有"gamin", "polling" and "auto"三種模式。
backend = polling
#發送報警郵件的地址
destemail = root@localhost #默認的動作執行行為,在action.d目錄下有各種行為策略,默認是iptables-#multiport
banaction = iptables-multiport
#0.8.1版本后fail2ban默認用sendmail MTA
mta = sendmail
#默認使用tcp協議
protocol = tcp
#定義了各種行動的參數
#banaction參數在action.d目錄下具體定義,name port protocol 也可以自己定義
#只禁止IP
action_ = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s]
#即禁止IP又發送email
action_mw = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s]
%(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s]
#禁止IP、發送email、報告有關日志
action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s]
%(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s]
#如果沒有定義行為,則默認的行為為action,可選擇action_,action_mw, action_mwl 等
action = %(action_)s
默認配置文件含有此模塊
#定義子模塊名
[ssh]
#是否激活
enabled = true
#定義port,可以是數字端口號表示,也可以是字符串表示
port= ssh
#過濾規則,在filter.d目錄下定義
filter = sshd
#檢測日志的路徑
logpath = /var/log/auth.log
#嘗試的次數,覆蓋了全局配置的
maxretry = 6
#banaction 在action.d目錄下定義,此參數值會替換action中選用的默認行為中定義的banaction參數
banaction = iptables-allports
#注意 port protocol banaction 可以不用分開定義,直接使用action定義也可以,例如:
#action = iptables[name=SSH, port=ssh, protocol=tcp]
#在子模塊中定義的port protocol banaction 都會在action_ action_mw, action_mwl中替換成具體的設置值。
//filter.d 目錄里面定義的是根據日志文件進行過濾的規則,主要是利用正則匹配出現錯誤的關鍵字。
//action.d目錄里面是根據過濾的規則對相應的IP采取什么樣的行為
3、常用操作
//啟動 systemctl start fail2ban //重啟 systemctl restart fail2ban //開機重啟 systemctl enable fail2ban //查看狀態 systemctl status fail2ban.service //查看配置狀態 fail2ban-client status //默認配置 vim /etc/fail2ban/jail.conf //查看攻擊者 fail2ban-client status sshd //確保防火牆已開起 systemctl enable firewalld systemctl start firewalld //更新 SELinux 策略 yum update -y selinux-policy*
//日志設定文檔 /etc/fail2ban/fail2ban.conf // 阻擋設定文檔 /etc/fail2ban/jail.conf //具體阻擋內容設定目錄 /etc/fail2ban/filter.d
//查看被禁用的ip iptables -L -n //查看登陸失敗日志 cat /var/log/secure | grep 'Failed password' //解鎖ip fail2ban-client set sshd unbanip IPADDRESS
參考文獻:https://centoshelp.org/security/fail2ban/
https://www.howtoforge.com/tutorial/how-to-install-fail2ban-on-centos/
文章出處:http://www.cnblogs.com/anech/p/6867589.html
