CentOS 7 Fail2ban防暴力破解


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM