自從先前把一堆莫名的error log搞定後,除了重開機或不小心打錯密碼外,很少收到error log的訊息,但是今天卻收到一封error log的mail,看起來是想利用我的postfix寄信的感覺。
為了避免我的server被當成垃圾信的轉寄中心,也避免是ip攻擊,便想說有沒有自動ban住攻擊ip的套件可以使用呢?於是便上網google了。很幸運的,一下子就找到了Fail2ban。
在Ubuntu下面,可以很輕鬆的安裝,只要執行下面指令即可
sudo apt-get install fail2ban
安裝好後,到/etc/fail2ban/jail.conf設定內容
sudo vim /etc/fail2ban/jail.conf
設定檔簡單易懂,主要先改通用規則
ignoreip = 127.0.0.1/8 # 忽略的 IP
bantime = xxx # 擋多久時間(秒)
findtime = yyy # 在yyy秒裡重試三次就擋(秒)
maxretry = 3 # 最多三次就擋
然後下面就是要設定的程式,SSH、POSTFIX、PROFTPD等等,以SSH舉例
enabled = true #true為開啟功能,false為關閉。 action = iptables[name=SSH, port=1226, protocol=tcp] #設定port、protocol等 filter = sshd logpath = /var/log/auth.log #從哪個路徑抓資料 maxretry = 3 #最大嘗試次數
設定好後,存檔裡開,並執行
sudo /etc/init.d/fail2ban restart
然後執行
sudo fail2ban-client status
可以看狀態,,若在後面加上ssh或是apache,則可看指定服務狀態。