對於通過遠端ssh方式進行連線的雲伺服器,Fail2ban是很有必要的.他保護你的SSH等服務免受非法訪問的威脅.
對我而言,每次拿到新伺服器的第一件事就是封閉除了SSH埠之外的所有埠.但是對於尚未保護的SSH服務埠,我們需要一款工具來專門保護他.你需要的就是fail2ban.fail2ban的保護方式是,對短時間嘗試過多次登入失敗的IP地址,進行自動封禁.
你可以通過以下方式安裝fail2ban,例如我們的伺服器是Debian or Ubantu系Linux:
> sudo apt-get update
> sudo spt-get install fail2ban複製程式碼
安裝之後,你僅需按照你的需求改動幾個配置.預設的配置檔案路徑在 /etc/fail2ban/jail.conf.當然,我們不推薦你直接修改這個檔案,我們可以建立一個副本jail.local來修改配置:
> cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local複製程式碼
在你的jail.local檔案,你可以修改任意部分的預設配置.以下是任意fail2ban都可以使用的配置範本:
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 86400
maxretry = 3
destemail = your@email.com
action = %(action mwl)s複製程式碼
大多數設定儘量是能夠望文生義的,或者在配置檔案裡寫明作用.最需要改動的地方是action這個選項,這個是用來告訴fail2ban該如何將攻擊者的資訊提交報告給管理員郵箱 destemail
接下來你要告訴fail2ban哪些是被允許的SSH登入
[ssh]
enabled = true
port = 22
fileter = sshd
logpath = /var/log/auth.log複製程式碼
為了讓你的設定改動生效,你需要重啟fale2ban:
>sudo service fail2ban restart複製程式碼
現在,你可以通過命令列檢視fail2ban的狀態.需要提醒的是,根據你服務被攻擊的頻率,可能需要一陣子你才能看到發生了什麼.
> fail2ban-client status ssh
Status for Status for the jail: ssh
|- filter
| |- File list: /var/log/auth.log
| |- Currently failed: 0
| `- Total failed: 9171
`- action
|- Currently banned: 1
| `- IP list: 31.197.115.250
`- Total banned: 404複製程式碼
這就是你需要知道的東西.希望用了fail2ban,能讓你感受到更多安全性提升.由於大多數自動掃描SSH埠的指令碼都是爆破預設埠22,所以如果你想要有更好的安全性,可以使用除了22之外別的埠作為SSH服務埠.同時也可以禁止Root通過密碼登入.