next up previous contents
Next: Code Injection Up: Fail2ban Previous: 前言   Contents

安裝與設定

  1. eple-release repository 提供 fail2ban 套件,所以先安裝 epel-release repository。
    [root@mail ~]# yum install epel-release
    
  2. 安裝 fail2ban。
    [root@mail ~]# yum install fail2ban
    
  3. fail2ban 預設設定為 /etc/fail2ban/jail.conf,可以直接修改,但建議將其複製成 jail.local,將個人設定寫在 jail.local,保留 jail.conf 的原樣。jail2ban 會先讀取 jail.conf 再讀取 jail.local,也就是個人設定會覆蓋 jail.conf 預設設定。
    [root@mail ~]# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    
  4. 主要設定在 DEFAULT 章節中,ignoreip 指定忽視的 IP,可以把信任的 IP 寫進去,以空白隔開;bantime 指定一台主機被取締時間 3600 秒;findtime 指定 600 秒內被取締的主機如果嘗試 maxretry 指定的 5 次,則記錄下來。
    [root@mail ~]# grep '^\[DEFAULT' -A25 /etc/fail2ban/jail.local | grep ^[^\ #]
    [DEFAULT]
    ignoreip = 127.0.0.1/8
    ignorecommand =
    bantime  = 3600
    findtime  = 600
    maxretry = 5
    
  5. 啟動 sasl-iptables,其中 filter postfix-sasl 對應到 /etc/fail2ban/filter.d/postfix-sasl.conf。
    [root@mail ~]# vim /etc/fail2ban/jail.loca 
    [root@mail ~]# tail -7 /etc/fail2ban/jail.local
    [sasl-iptables]
    enabled  = true
    filter   = postfix-sasl
    backend  = polling
    action   = iptables[name=sasl, port=smtp, protocol=tcp]
    #          sendmail-whois[name=sasl, dest=you@example.com]
    logpath  = /var/log/maillog
    
  6. 測試以 postfix-sasl.conf 過濾 maillog。
    [root@mail ~]# fail2ban-regex /var/log/maillog /etc/fail2ban/filter.d/postfix-sasl.conf
    
  7. 啟動 fail2ban 服務並設定開機啟動。
    [root@mail ~]# /etc/init.d/fail2ban start
    Starting fail2ban:                                         [  OK  ]
    [root@mail ~]# chkconfig fail2ban on
    
  8. 檢查 iptables 防火牆,最後要有一段 f2b-sasl。
    [root@mail ~]#  iptables -L -nv
    Chain INPUT (policy DROP 193 packets, 19542 bytes)
     pkts bytes target     prot opt in     out     source               destination         
        4   240 f2b-sasl   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25 
    ............
    Chain FORWARD (policy DROP 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    
    Chain OUTPUT (policy ACCEPT 1531 packets, 298K bytes)
     pkts bytes target     prot opt in     out     source               destination         
    
    Chain f2b-sasl (1 references)
     pkts bytes target     prot opt in     out     source               destination         
        4   240 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0
    


2018-06-16