linux使用開源的fail2ban防禦暴力破解攻擊

Fail2ban介紹

Fail2ban的原理是獲取系統服務的消息日誌,根據日誌的內容匹配自定義的規則,從而觸發自定義的動作;它與rdpguard原理相同,是運行在linux平臺上的一個動態防禦系統。

例如:定義某IP在10分鐘內訪問nginx時返回403的響應5次,那麼Fail2ban就會調用iptables封禁該IP。

linux使用開源的fail2ban防禦暴力破解攻擊

fail2ban的原理

Fail2Ban安裝和使用

1. 安裝和配置

系統採用centos7 安裝epel後 yum install -y fail2ban 安裝。

fail2ban 結構:

/etc/fail2ban ## fail2ban 服務配置目錄。

/etc/fail2ban/action.d ## iptables 、mail 等動作文件目錄。

/etc/fail2ban/filter.d ## 條件匹配文件目錄,過濾日誌關鍵內容。

/etc/fail2ban/jail.conf ## fail2ban 防護配置文件。

/etc/fail2ban/fail2ban.conf ## fail2ban 配置文件,定義日誌級別、日誌、sock 文件位置等。

[DEFAULT] #默認的,優先級最低。

ignoreip = 127.0.0.1/8 192.168.1.0/24 # 白名單 。

bantime = 600 # 封禁時間,單位:秒,-1為永久封鎖。

findtime = 600 # 在多久的時間內,單位:秒 。

maxretry = 3 # 登錄失敗次數封鎖。

2. SSH防暴力破解配置

cp jail.conf jail.local (修改前cp一下jail.conf文件,如果不cp為local會導致啟動出錯)。

使用yum安裝完成之後配置文件會帶一些規則,但是規則默認不開啟。

將裡面enabled = false 修改為true即可啟動。

測試開啟ssh enabled = true。

linux使用開源的fail2ban防禦暴力破解攻擊

使用hydra進行SSH暴力破解攻擊後SSH連接已被阻斷

linux使用開源的fail2ban防禦暴力破解攻擊

fail2ban的日誌顯示,ban掉了攻擊的ip

linux使用開源的fail2ban防禦暴力破解攻擊

觸發的iptables封禁

3、Mysql防暴力破解

修改mysql的配置文件/etc/my.cnf。

linux使用開源的fail2ban防禦暴力破解攻擊

修改mysql的日誌級別

重啟數據庫 systemctl restart mairadb。

在filter.d裡面添加規則mysqld.conf。

[root@nginx-test filter.d]# vim mysqld.conf

[INCLUDES]

before = common.conf

[Definition]

failregex = Access denied for user '\\w+'@'<host>'/<host>

ignoreregex =

修改jail.conf,添加mysql的配置。

[mysqld]

enabled = true

filter = mysqld

action = iptables[name=mysql, port=3306, protocol=tcp]

logpath = /var/log/mariadb/mariadb.log

maxretry = 4

然後重啟fail2ban。

linux使用開源的fail2ban防禦暴力破解攻擊

使用hydra暴力破解數據庫

linux使用開源的fail2ban防禦暴力破解攻擊

fail2ban的日誌

linux使用開源的fail2ban防禦暴力破解攻擊

攻擊機已無法連接數據庫

linux使用開源的fail2ban防禦暴力破解攻擊

攻擊機ip被iptables封禁

4、Fail2ban的小命令

解除ssh的封禁:fail2ban-client set ssh unbanip 192.168.10.192

查看fail2ban狀態:fail2ban-client status

重啟fail2ban:systemctl restart fail2ban

5、小結

fail2ban是由python編寫,自帶高質量的規則庫。也可以自己編寫規則,可以結合sendmail進行封禁後的郵件告警。


分享到:


相關文章: