讓fail2ban重新啟動時不會重設阻擋IP規則
在預設的設定中,fail2ban每次重新啟動時都會遺忘被阻擋的IP設定。舉例來說,如果我的電腦因為登入失敗被fail2ban擋掉,那麼只要fail2ban重新啟動,那麼我的電腦又可以繼續去嘗試登入伺服器。
如果要讓fail2ban重新啟動時,不會重設阻擋的IP規則,則可以參考Vinnie Vedi的作法,修改/etc/init.d/fail2ban 的內容。
修改的指令如下:
[root@server ~]# vim /etc/init.d/fail2ban
首先先找到start()的區塊,加入以下紅字的設定:
start() { echo -n $"Starting fail2ban: " getpid if [ -z "$pid" ]; then rm -rf /var/run/fail2ban/fail2ban.sock # in case of unclean shutdown $FAIL2BAN -x start > /dev/null RETVAL=$? fi if [ $RETVAL -eq 0 ]; then touch /var/lock/subsys/fail2ban echo_success /sbin/service iptables restart # reloads previously banned ip's else echo_failure fi echo return $RETVAL }
再來找到stop()區塊,加入以下紅字的設定:
stop() { echo -n $"Stopping fail2ban: " getpid RETVAL=$? if [ -n "$pid" ]; then /sbin/service iptables save # saves banned ip's $FAIL2BAN stop > /dev/null sleep 1 getpid if [ -z "$pid" ]; then rm -f /var/lock/subsys/fail2ban echo_success else echo_failure fi else echo_failure fi echo return $RETVAL }