針對服務器的最常見攻擊媒介之一是暴力登錄嘗試。 攻擊者在這裡嘗試訪問用戶的服務器,嘗試使用用戶名和密碼的無限組合。
對於這類問題 最快,最有效的解決方案是限制嘗試次數並阻止對用戶或該IP的訪問 一定的時間。 同樣重要的是要知道,為此,還有專門設計用來防禦此類攻擊的開源應用程序。
在今天的帖子中 我將向您介紹一個叫做Fail2Ban。 Fail2004Ban最初由Cyril Jaquier於2年開發,是一個入侵防禦軟件框架,可保護服務器免受暴力攻擊。
關於Fail2ban
Fail2ban掃描日誌文件 (/ var / log / Apache / error_log) 並禁止顯示惡意活動的IP, 例如太多錯誤的密碼和搜索漏洞等。
在一般情況下, Fail2Ban用於更新防火牆規則以拒絕IP地址 在指定的時間內,儘管也可以配置任何其他任意操作(例如,發送電子郵件)。
在Linux上安裝Fail2Ban
Fail2Ban在主要Linux發行版的大多數存儲庫中都可以找到,更具體地說,在大多數用於服務器(例如CentOS,RHEL和Ubuntu)上使用的庫中。
對於Ubuntu,只需鍵入以下內容進行安裝:
sudo apt-get update && sudo apt-get install -y fail2ban
對於Centos和RHEL,必須輸入以下內容:
yum install epel-release
yum install fail2ban fail2ban-systemd
如果您擁有SELinux,則使用以下命令更新策略很重要:
yum update -y selinux-policy*
完成此操作後,他們應該在前台知道Fail2Ban配置文件位於/ etc / fail2ban中。
的配置 Fail2Ban主要分為兩個密鑰文件; 這些是fail2ban.conf和jail.conf。 fail2ban.confes較大的Fail2Ban配置文件,可以在其中配置以下設置:
- 日誌級別。
- 要登錄的文件。
- 進程套接字文件。
- 文件pid。
在jail.conf中,您可以配置以下選項:
- 防禦服務的配置。
- 禁止攻擊他們多長時間。
- 用於發送報告的電子郵件地址。
- 檢測到攻擊時採取的措施。
- 一組預定義的設置,例如SSH。
組態
現在我們繼續進行配置部分, 我們要做的第一件事是使用以下命令備份jail.conf文件:
cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
現在,我們繼續使用nano進行編輯:
nano /etc/fail2ban/jail.local
在內部,我們進入[默認]部分,我們可以進行一些調整。
在“ ingoreip”部分,這裡是將被忽略的IP地址 Fail2Ban將完全忽略它們,基本上是服務器的IP(本地IP),而您認為應該忽略的其他IP。
從那裡開始 其他訪問失敗的IP將被禁止使用 並等待將被禁止的秒數(默認為3600秒),並且fail2ban僅在6次失敗嘗試後起作用
完成常規配置後,我們現在將指示服務。 Fail2Ban已經具有一些用於各種服務的預定義過濾器。 因此,只需進行一些調整即可。 這是一個例子:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
進行相關更改後,您最終將需要重新加載Fail2Ban,並運行:
service fail2ban reload
systemctl enable firewalld
systemctl start firewalld
完成此操作後,讓我們快速檢查一下Fail2Ban是否正在運行:
sudo fail2ban-client status
取消IP
現在我們已經成功禁止了IP,如果我們想取消IP,該怎麼辦? 為此,我們可以再次使用fail2ban-client並告訴它取消禁止特定的IP,如以下示例所示。
sudo fail2ban-client set ssh unbanip xxx.xxx.xx.xx
其中“ xxx ....” 這將是您指定的IP地址。