fail2ban防暴力破解介紹使用

2021-09-11 11:23:58 字數 4080 閱讀 7358

布魯 · 2014/09/19 14:21

fail2ban可以監視你的系統日誌,然後匹配日誌的錯誤資訊(正則式匹配)執行相應的遮蔽動作(一般情況下是呼叫防火牆iptables遮蔽),如:當有人在試探你的ssh、smtp、ftp密碼,只要達到你預設的次數,fail2ban就會呼叫防火牆遮蔽這個ip,而且可以傳送e-mail通知系統管理員,是一款很實用、很強大的軟體!

fail2ban在pycon2014中演講,是乙個相對成熟的第三方軟體。附上大會ppt部分內容:fail2ban-pycon2014.pdf。

1) apt-get 安裝

apt-get install fail2ban log watch gamin

複製**

2) yum安裝

yum install fail2ban logwatch gamin

複製**

3) 源**安裝

www.fail2ban.org/wiki/index.…

目前有兩個版本:

stable    0.8.14 

beta       0.9.0

複製**

安裝完成後配置檔案在目錄/etc/fail2ban/中:

/etc/fail2ban/fail2ban.conf  #fail2ban的配置檔案

/etc/fail2ban/jail.conf #阻擋設定檔案

/etc/fail2ban/filter.d/ #具體過濾規則檔案目錄

/etc/fail2ban/action.d/ #具體過濾規則檢測到後採取相對應措施的目錄

複製**

fail2ban預設有許多已經寫好的規則,如ssh、ftp、proftpd等常見應用軟體的支援,只需要設定enable屬性為true即可啟動,這裡就不闡述了。

假設nginx預設日誌路徑為/var/log/nginx/access_log,需要防止黑客暴力破解http form登陸,此登陸檢測鏈結為

複製**

根據分析正常登陸一般不超過三四次,並且登陸時間一般也不超過一分鐘;因此,規定檢測週期為1分鐘,最大嘗試登陸次數為10次;在規定時間內超過指定次數則被認為是黑客在嘗試暴力破解。

具體設定方法如下:

1) 首先在jail.conf檔案下追加以下內容:

[nginx]    ;規則名字

enabled = true ;是否戶用

port = http,https ;監控埠

filter = nginx ;需要過濾匹配規則

logpath = /var/log/nginx/access_log; 日誌路徑

findtime =60 ;檢測週期 單位秒 以下一樣

bantime =300 ;iptable封禁ip時間

maxretry =10 ;最大嘗試次數

action = iptables[name=nginx, port=http, protocal=tcp] ;發現暴力破解採取iptalbes封禁ip的措施

sendmail[name=nginx, [email protected]] ;發現暴力破解後採取sendmail傳送郵件的措施,需要注意的是:iptables和sendmail必須對齊,要不然會發生錯誤;不要問我為什麼會知道,我先哭會兒-_-!!!

複製**

2)然後建立 /etc/fail2ban/filter.d/nginx.conf檔案,並新增以下內容:

[definition]

failregex =.*-.*-.*post.*/login_check.do.* http\/1.* ;需要匹配日誌發現攻擊行為的正則,為fail2ban內建變數匹配ip,不可修改

ignoreregex = ;需要忽略的正則

複製**

完成上述步驟就可以執行命令/etc/init.d/fail2ban restart重啟了。檢視iptables有fail2ban-nginx的規則和收到sendmail傳送fail2ban已經啟動的郵件就說明ok了。

不過運維的同學可能知道,sendmail傳送郵件延遲很多,並不好用,使用mutt代替sendmail是個不錯的選擇。安裝mutt的過程就不在時闡述了,這裡介紹我修改使用mutt傳送action的配置檔案。

1)首先建立乙個/etc/fail2ban/action.d/mutt.conf檔案,然後新增以下內容:

# fail2ban configuration file

## author: cyril jaquier##

[definition]

# option: actionstart

# notes.: command executed once at the start of fail2ban.

# values: cmd

#actionstart = printf %%b "hi,\n

the jail has been started successfully.\n

regards,\n

fail2ban"|mutt -s "[fail2ban] : started on `uname -n`"# option: actionstop

# notes.: command executed once at the end of fail2ban

# values: cmd

#actionstop = printf %%b "hi,\n

the jail has been stopped.\n

regards,\n

fail2ban"|mutt -s "[fail2ban] : stopped on `uname -n`"# option: actioncheck

# notes.: command executed once before each actionban command

# values: cmd

#actioncheck =

# option: actionban

# notes.: command executed when banning an ip. take care that the

# command is executed with fail2ban user rights.

# tags: see jail.conf(5) man page

# values: cmd

#actionban = printf %%b "hi,\n

the ip has just been banned by fail2ban after

attempts against .\n

regards,\n

fail2ban"|mutt -s "[fail2ban] : banned from `uname -n`"# option: actionunban

# notes.: command executed when unbanning an ip. take care that the

# command is executed with fail2ban user rights.

# tags: see jail.conf(5) man page

# values: cmd

#actionunban =

[init]

# default name of the chain

#name = default

# destination/addressee of the mutt

#dest = root

複製**

2)然後在jail.conf檔案下新增以下內容:

action = mutt[name=nginx, [email protected]]   

複製**

[email protected]名詞是筆者自己翻譯,可能表達的意思並不精確,請大牛們手下留情。有不對的地方歡迎指出,有興趣的同學也歡迎交流。

fail2ban防止暴力破解

暴力破解在公網上是很常見的,當我們在公網上的伺服器被暴力破解的時候,我們就的採取相應的措施,今天我們來講乙個開源軟體fail2ban,以防止暴力破解。環境,假設192.168.1.63是公網上的伺服器,被別人暴力破解時怎麼辦呢。題目 實戰背景 最近公網 一直被別人暴力破解sshd服務密碼。雖然沒有成...

Fail2ban防止SSH暴力破解

root kazihuo srv wget root kazihuo srv tar axvf fail2ban 0.8.14.tar.gz 環境要求python版本 2.6 root kazihuo srv fail2ban 0.8.14 python setup.py install cento...

Fail2ban防止SSH暴力破解

fail2ban防止ssh暴力破解 安裝fail2ban時,python版本要大於2.4 python v wget tar xzvf fail2ban 0.8.11.tar.gz cd fail2ban 0.8.11 python setup.py install cd files cp redh...