centos6 安裝 Fail2ban

Fail2ban 能夠監控系統日誌,匹配日誌中的錯誤信息(使用正則表達式),執行相應的屏蔽動作(支持多種,一般爲調用 iptables ),是一款很實用、強大的軟件。

如:攻擊者不斷嘗試窮舉 SSH 、SMTP 、FTP 密碼等,只要達到預設值,fail2ban 就會調用防火牆屏蔽此 IP ,並且可以發送郵件通知系統管理員。

安裝

#CentOS內置源並未包含fail2ban,需要先安裝epel源
yum -y install epel-release
#安裝fial2ban
yum -y install fail2ban

安裝成功後fail2ban配置文件位於/etc/fail2ban,其中jail.conf爲主配置文件,相關的匹配規則位於filter.d目錄,其它目錄/文件一般很少用到,如果需要詳細瞭解可自行搜索。

在jail.d文件夾下新增 jail.local文件,編輯內容如下:


    vim /etc/fail2ban/jail.d/jail.local

- centos6.8 所使用環境 新增內容如下:

    #defalut這裏是設定全局設置,如果下面的監控沒有設置就以全局設置的值設置。
    [DEFAULT]
    # 用於指定哪些地址ip可以忽略 fail2ban 防禦,以空格間隔。
    ignoreip = 127.0.0.1/8
    # 客戶端主機被禁止的時長(默認單位爲秒)
    bantime  = -l
    # 過濾的時長(秒)
    findtime  = 600
    # 匹配到的閾值(次數)
    maxretry = 3
    
    [ssh-iptables] #   策略 釋放時可用
    # 是否開啓
    enabled  = true
    # 過濾規則
    filter   = sshd
    # 動作  發送郵件一定要加在action 後面,一定要注意位置
    action   = iptables[name=SSH, port=2222, protocol=tcp]
               mail-whois[name=SSH,[email protected]]
    # 日誌文件的路徑
    logpath  = /var/log/secure
    # 匹配到的閾值(次數)
    maxretry = 2


- 若 是firewall 防火牆, 使用如下配置(配置說明:是如果同一個IP,在10分鐘內,如果連續超過5次錯誤,則使用Firewalld將他IP ban了。輸入systemctl start fail2ban啓動fail2ban來試試效果。):

    [DEFAULT]
    ignoreip = 127.0.0.1/8
    bantime  = 86400
    findtime = 600
    maxretry = 5
    #這裏banaction必須用firewallcmd-ipset,這是fiewalll支持的關鍵,如果是用Iptables請不要這樣填寫
    banaction = firewallcmd-ipset
    action = %(action_mwl)s
    
    [sshd]
    enabled = true
    filter  = sshd
    port    = 22
    action = %(action_mwl)s
    logpath = /var/log/secure

- 參數說明 

    ignoreip:IP白名單,白名單中的IP不會屏蔽,可填寫多個以(,)分隔
    bantime:屏蔽時間,單位爲秒(s)
    findtime:時間範圍
    maxretry:最大次數
    banaction:屏蔽IP所使用的方法,上面使用firewalld屏蔽端口

    [sshd]:名稱,可以隨便填寫
    filter:規則名稱,必須填寫位於filter.d目錄裏面的規則,sshd是fail2ban內置規則
    port:對應的端口
    action:採取的行動
    logpath:需要監視的日誌路徑


查看當前被禁止登陸的ip:

 fail2ban-client status ssh-iptables

根據策略釋放禁止的ip

fail2ban-client set ssh-iptables unbanip 14.120.90.183

其他命令

start	啓動fail2ban server和監獄
reload	重新加載配置文件
stop	暫停fail2ban和監獄
status	查看運行的監控服務數量和列表
set loglevel 	設置日誌等級,有 CRITICAL, ERROR, WARNING,NOTICE, INFO, DEBUG
get loglevel	獲取當前日誌的等級
set <JAIL> idle on|off 	設置某個監控(監獄)的狀態。
set <JAIL> addignoreip <IP>	設置某個監控(監獄)可以忽略的ip
set <JAIL> delignoreip <IP>	刪除某個監控(監獄)可以忽略的ip
set <JAIL> banip <IP>	將ip加入 監控(監獄)
set <JAIL> unbanip <IP>	將ip從監控(監獄)移除

相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章