Linux 上Fail2ban阻止SSH暴力攻擊 保護(hù)你的服務(wù)器不被暴力破解

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是一款實用軟件,可以監(jiān)視你的系統(tǒng)日志,然后匹配日志的錯誤信息(正則式匹配)執(zhí)行相應(yīng)的屏蔽動作。

功能和特性編輯

1、支持大量服務(wù)。如sshd,apache,qmail,proftpd,sasl等等

2、支持多種動作。如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail notifications(郵件通知)等等。

3、在logpath選項中支持通配符

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 等動作文件目錄

/etc/fail2ban/filter.d       ## 條件匹配文件目錄,過濾日志關(guān)鍵內(nèi)容

/etc/fail2ban/jail.conf     ## fail2ban 防護(hù)配置文件

/etc/fail2ban/fail2ban.conf   ## fail2ban 配置文件,定義日志級別、日志、sock 文件位置等

配置

1.打開配置文件

vim /etc/fail2ban/jail.conf
配置信息

[DEFAULT]
# 忽略的IP列表,不受設(shè)置限制
ignoreip = 127.0.0.1/8 

# 被封IP禁止訪問的時間,單位是秒
bantime = 86400

# 檢測時間,在此時間內(nèi)超過規(guī)定的次數(shù)會激活fail2ban,單位是秒 
findtime = 300

# 允許錯誤登錄的最大次數(shù)
maxretry = 3

# 日志修改檢測機(jī)制(gamin、polling和auto這三種)
backend = auto 

# 定義日志級別,默認(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ī)則名,對應(yīng)filter.d目錄下的sshd.conf
filter = sshd 
banaction = firewallcmd-new
# 檢測的系統(tǒng)的登陸日志文件。這里要寫sshd服務(wù)日志文件
logpath = /var/log/secure 
# 禁止用戶IP訪問主機(jī)1小時
bantime = 3600 
# 在5分鐘內(nèi)內(nèi)出現(xiàn)規(guī)定次數(shù)就開始工作
findtime = 300 
# 3次密碼驗證失敗
maxretry = 3 

[sshd-ddos]
enabled = true
port = 8888
fail2ban啟動

>>  service fail2ban start  # 啟動fail2ban服務(wù)
 * Starting authentication failure monitor fail2ban  [ OK ] 
>> fail2ban-client status   # 查看fail2ban服務(wù)
Status
|- Number of jail:  1
`- Jail list:       ssh
>> service fail2ban restart # 重啟

啟動fail2ban并設(shè)置開機(jī)啟動:

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.itdecent.cn/p/1eb53a0200e8
來源:簡書
簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容