Linux 上Fail2ban阻止SSH暴力攻擊 保護(hù)你的服務(wù)器不被暴力破解
查看嘗試登錄的IP和次數(shù):
# ubuntu
cat /var/log/auth.log | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" = "$1;}'
# centos
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" = "$1;}'
結(jié)果如下
95.99.151.150 = 2
96.116.62.121 = 2
96.126.108.130 = 1
96.234.157.43 = 1
96.239.137.66 = 2
96.242.27.57 = 1
96.255.29.134 = 1
96.30.68.34 = 6
96.45.70.192 = 21
96.53.113.134 = 1946
96.57.104.194 = 2
96.57.82.166 = 3
96.64.177.108 = 2
96.66.198.178 = 10
96.67.205.235 = 7
96.68.174.209 = 8
96.68.99.234 = 2
96.70.240.38 = 1
96.70.80.177 = 4
96.70.94.73 = 2
介紹:
fail2ban是一款實(shí)用軟件,可以監(jiān)視你的系統(tǒng)日志伐债,然后匹配日志的錯(cuò)誤信息(正則式匹配)執(zhí)行相應(yīng)的屏蔽動(dòng)作预侯。
功能和特性編輯
1、支持大量服務(wù)峰锁。如sshd,apache,qmail,proftpd,sasl等等
2萎馅、支持多種動(dòng)作。如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail notifications(郵件通知)等等虹蒋。
3糜芳、在logpath選項(xiàng)中支持通配符
4、需要Gamin支持(注:Gamin是用于監(jiān)視文件和目錄是否更改的服務(wù)工具)
5魄衅、需要安裝python,iptables,tcp-wrapper,shorewall,Gamin峭竣。如果想要發(fā)郵件,那必需安裝postfix或sendmail
官網(wǎng):
http://www.fail2ban.org/
安裝:
ubuntu
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fail2ban
centos
yum -y install epel-release
yum -y install fail2ban
文件結(jié)構(gòu)
/etc/fail2ban ## fail2ban 服務(wù)配置目錄
/etc/fail2ban/action.d ## iptables 晃虫、mail 等動(dòng)作文件目錄
/etc/fail2ban/filter.d ## 條件匹配文件目錄皆撩,過濾日志關(guān)鍵內(nèi)容
/etc/fail2ban/jail.conf ## fail2ban 防護(hù)配置文件
/etc/fail2ban/fail2ban.conf ## fail2ban 配置文件,定義日志級(jí)別哲银、日志毅访、sock 文件位置等
配置
1.打開配置文件
vim /etc/fail2ban/jail.conf
配置信息
[DEFAULT]
# 忽略的IP列表,不受設(shè)置限制
ignoreip = 127.0.0.1/8
# 被封IP禁止訪問的時(shí)間沮榜,單位是秒
bantime = 86400
# 檢測(cè)時(shí)間盘榨,在此時(shí)間內(nèi)超過規(guī)定的次數(shù)會(huì)激活fail2ban喻粹,單位是秒
findtime = 300
# 允許錯(cuò)誤登錄的最大次數(shù)
maxretry = 3
# 日志修改檢測(cè)機(jī)制(gamin、polling和auto這三種)
backend = auto
# 定義日志級(jí)別草巡,默認(rèn)
loglevel = 3
# 定義 fail2ban 日志文件
logtarget = /var/log/fail2ban.log
# sock 文件存放位置守呜,默認(rèn)
socket = /var/run/fail2ban/fail2ban.sock
# pid 文件存放位置,默認(rèn)
pidfile = /var/run/fail2ban/fail2ban.pid
# 郵件通知參數(shù)
sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com, sendername="Fail2Ban"]
## 收件人地址 ## 發(fā)件人地址
[sshd]
# 激活
enabled = true
# 規(guī)律規(guī)則名山憨,對(duì)應(yīng)filter.d目錄下的sshd.conf
filter = sshd
banaction = firewallcmd-new
# 檢測(cè)的系統(tǒng)的登陸日志文件查乒。這里要寫sshd服務(wù)日志文件
logpath = /var/log/secure
# 禁止用戶IP訪問主機(jī)1小時(shí)
bantime = 3600
# 在5分鐘內(nèi)內(nèi)出現(xiàn)規(guī)定次數(shù)就開始工作
findtime = 300
# 3次密碼驗(yàn)證失敗
maxretry = 3
[sshd-ddos]
enabled = true
port = 8888
fail2ban啟動(dòng)
>> service fail2ban start # 啟動(dòng)fail2ban服務(wù)
* Starting authentication failure monitor fail2ban [ OK ]
>> fail2ban-client status # 查看fail2ban服務(wù)
Status
|- Number of jail: 1
`- Jail list: ssh
>> service fail2ban restart # 重啟
啟動(dòng)fail2ban并設(shè)置開機(jī)啟動(dòng):
centos
systemctl enable fail2ban
systemctl start fail2ban
ubuntu
查看日志
tail -100 /var/log/fail2ban.log # 查看最近100條記錄
查看SSH服務(wù)監(jiān)護(hù)狀態(tài),能看到當(dāng)前被禁IP郁竟。
>> fail2ban-client status ssh
|- filter
| |- File list: /var/log/auth.log
| |- Currently failed: 56
| `- Total failed: 6307
`- action
|- Currently banned: 0
| `- IP list:
`- Total banned: 0
在SSH監(jiān)護(hù)服務(wù)白名單中添加/刪除IP:
fail2ban-client set sshd addignoreip 1.2.3.4
fail2ban-client set sshd delignoreip 1.2.3.4
作者:Pala風(fēng)
鏈接:http://www.reibang.com/p/1eb53a0200e8
來源:簡(jiǎn)書
簡(jiǎn)書著作權(quán)歸作者所有玛迄,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。