使用fail2ban防止ssh騷擾

前言

fail2ban 是一個可以防止各種鬼鬼祟祟, 偷偷摸摸行為的程式; 利用他可以有效防止各種莫名其妙的騷擾!

翻譯: 此程式可以讓你配置規則, 用定義好的正則過濾器閱讀日誌判斷各式暴力破解, 最後執行如加入iptables, 寄信等各式功能.


安裝環境: Ubuntu 16.04.2 LTS

首先直接安裝apt-get install fail2ban


安裝好之後, 來到 /etc/fai2ban這個路徑, 可以看到下面這些檔案

挑重要的來說
jail: 存放你的規則
filter: 存放你的過濾條件
action: 存放你的執行動作

所以完整的判斷流程就是 jail => filter => action


然後我們看一下jail.conf, 裡面放了一些預設的規則, 這邊介紹一下常用的參數意思.

[DEFAULT] : 模塊名稱, 這個模塊下定義的就是所有預設行為啦.
ignoreip: 也就是白名單ip.
ignorecommand: 額外的腳本來判別他是不是壞人. (其實不常用, 但是截圖入鏡只好介紹).
bantime: 要關進牢裡多久, 配置-1就是終身監禁哦.
findtime: 觀察間期.
maxretry: 可以犯幾次錯.
enabled: 預設每個規則都不啟用, 如果要啟用的話記得在那個模塊下配置 enabled = true.
filter: 過濾配置的名子, $(__name__)s就是和規則同名啦.
banaction: 判定有罪後的處置方式.


因為fail2ban預設唯一開啟的就是sshd規則; 那這篇就不再介紹新增規則啦~ 留給下一篇配置nginx再說 ٩(。・ω・。)

不過還是要帶大家看一下常用指令和效果!


關於監獄的各種登記紀錄, 可以在 /var/log/fail2ban.log查看, 如下圖所示 (一堆鬼鬼祟祟的人都被登記啦~)


fail2ban-client status 這個指令可以查看目前建立了哪些監獄

然後如果你對sshd這個監獄有興趣, 那就fail2ban-client status sshd 來查看; 可以看到裡面已經關三個人啦!


最後就是來iptables查看一下


尾聲

把那些討厭的人通通關起來 (`・ω・´)