使用fail2ban防止ssh騷擾

前言

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

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


安裝環境: Ubuntu 16.04.2 LTS

首先直接安裝apt-get install fail2ban


安裝好之後, 來到 /etc/fai2ban這個路徑, 可以看到下面這些檔案
d0b54349-94af-4a19-a929-44e1b8d1c628

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

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


然後我們看一下jail.conf, 裡面放了一些預設的規則, 這邊介紹一下常用的參數意思.
6b5a016e-cc90-4c14-b305-ce3cf6dfed2d

39694119-80e7-4773-8100-59fc3c4cffe5

791c1d34-ee27-4deb-9ff1-31c927ed8dfd

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


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

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


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


fail2ban-client status 這個指令可以查看目前建立了哪些監獄
100eb053-cae4-49ab-8af4-f4c0d504597a

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


最後就是來iptables查看一下
screenshot-2018-05-22-01-21-38


尾聲

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