心得:

此工具的原理方式,是透過分析各服務項目的 Log 後

如有符合觸發條件則進行封鎖該來源,因為是透過分析 Log 的方式

因此在有自訂服務 Log 位置的時候也需要在 jail 設定檔中進行修改

避免過慮條件失效的問題產生

版本:

Fail2Ban v0.9.7

安裝:

安裝 epel 套件庫後,再進行安裝 fail2ban

# yum install epel-release
# yum install fail2ban

啟動 fail2ban

# systemctl start fail2ban

設定開機啟動 fail2ban

# systemctl enable fail2ban

設定:

fail2ban 設定檔位置

# vim /etc/fail2ban/fail2ban.conf

jail 設定檔位置

# vim /etc/fail2ban/jail.conf

[DEFAULT] 參數說明:

# IP 列表白名單
ignoreip = 127.0.0.1/8

# 指令白名單 (預設為空)
ignorecommand =

# 符合觸發條件後鎖定一段時間,使用"-1"為永久封鎖。(單位:秒)
bantime = 600

# 多久時間內,符合"maxretry"則進行封鎖。(單位:秒)
findtime = 600

# 多少失敗次數後進行封鎖
maxretry = 5

# 收件者 mail
destemail = mailaddr

以上設定值為全域使用,但也可單獨設定於各項[service]之中

方便符合各項 service 安全條件需要的不同

一開始提供的 service jail policy 相當多

可以直接拿需要的部份來直接使用

在[service]中,需要加入以下紅字部份才會正式啟用,以[sshd]為例

[sshd]

# To use more aggressive sshd filter (inclusive sshd-ddos failregex):
#filter = sshd-aggressive
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

查詢是否正式啟用:

# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd

封鎖生效時,如下:

Status for the jail: sshd
|- Filter
|  |- Currently failed:	0
|  |- Total failed:	31
|  `- Journal matches:	_SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned:	1
   |- Total banned:	3
   `- Banned IP list:	192.168.1.100

手動解除方式:

# fail2ban-client set jail unbanip ip

在 sshd 解除 192.168.1.100 的限制:

# fail2ban-client set sshd unbanip 192.168.1.100
廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s