Categories: Linux筆記

讓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
}
yan

Share
Published by
yan