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