利用 fail2ban 幫自己的 Linux 伺服器加上一個簡單的守門員
發表於 : 2020年 6月 29日, 08:01
架設伺服器之後總是會有一些多多少少的煩惱,其中一個煩惱就是隨著架設的時間久了,慢慢的會有一些莫名其妙的機器或是人來進行各種各樣的嘗試,像是嘗試著登入你的機器看看是否有破綻,嘗試登入你的網頁、嘗試執行壹些莫名其妙的程式看看這些程式是否存在,這邊介紹一個簡單的工具,當然這是比較被動的工具,但卻是最簡單易用的一個工具
fail2ban
這是一個簡單卻很有用的工具,它的原理是分析系統的記錄 (*.log),找出錯誤的嘗試 (就是試著登入你系統,但卻失敗),然後根據所設定的條件來阻擋這些來源下次繼續嘗試,換個方式說,就是分析系統紀錄,看那些錯誤的嘗試超過指定的次數,然後把那些錯誤的來源 IP 阻擋一段所設定的時間,在這段時間內禁止它們再次嘗試
所以利用這個工具,我們可以用來過濾像是某個 IP 來嘗試利用 ssh 試著要登入我們的伺服器,我們可以設定他失敗多少次之後,在多久時間內就不接受該 IP 連進來,當然,次數跟阻擋時間都是我們可以自由定義的
安裝這個工具也很簡單,先更新套件清單之後,使用以下指令
這樣就可以安裝 fall2ban 在你的伺服器上,安裝後就會立刻生效,不過套件內定的防護只打開了 ssh,如果你還有其他的服務也要進行保護,那就必須修改設定檔,例如我的伺服器上還有網頁服務,使用了 apache,所以我要修改設定檔將 apache 的防護開,編輯 /etc/fail2ban/jail.conf
找到 [apache] 段落,將 enabled 打開,並視需要修改 maxretry 的參數,我的設定是這樣
另外,如果你想收到 fail2ban 的系統報告電子郵件的話,記得也要修改設定檔內的 destemail 及 sendername 參數,你可以改成像這樣
最後,還有一個地方你可以考慮修改,那就是系統內定的阻擋時間以及失敗嘗試次數,我是這樣設定的
改好之後,重新啟動 fail2ban 服務
好了,現在伺服器可以阻擋一些騷擾分子的嘗試了
fail2ban
這是一個簡單卻很有用的工具,它的原理是分析系統的記錄 (*.log),找出錯誤的嘗試 (就是試著登入你系統,但卻失敗),然後根據所設定的條件來阻擋這些來源下次繼續嘗試,換個方式說,就是分析系統紀錄,看那些錯誤的嘗試超過指定的次數,然後把那些錯誤的來源 IP 阻擋一段所設定的時間,在這段時間內禁止它們再次嘗試
所以利用這個工具,我們可以用來過濾像是某個 IP 來嘗試利用 ssh 試著要登入我們的伺服器,我們可以設定他失敗多少次之後,在多久時間內就不接受該 IP 連進來,當然,次數跟阻擋時間都是我們可以自由定義的
安裝這個工具也很簡單,先更新套件清單之後,使用以下指令
代碼: 選擇全部
apt-get install fall2ban
找到 [apache] 段落,將 enabled 打開,並視需要修改 maxretry 的參數,我的設定是這樣
代碼: 選擇全部
[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 10
代碼: 選擇全部
# 收件人地址
destemail = myname@mydomain.com
# 寄件人名稱 (如果你有很多台伺服器的話,這個寄件人名稱可以讓你辨識是哪台伺服器寄出來的)
sendername = fail2ban@myserver
代碼: 選擇全部
# 阻擋時間 (以秒為單位),60秒 x 60分 x 6小時 = 21600秒禁止該 IP
bantime = 21600
# 掃描間隔 (以秒為單位),60秒 x 10分 = 600秒掃描一次
findtime = 600
# 最大嘗試錯誤次數
maxretry = 10
代碼: 選擇全部
service fail2ban restart