Linux 如何使用 fail2ban 防止 ssh 暴力破解
如果你堅持使用帶密碼的 ssh 登錄, 業(yè)內公認的, 防止ssh爆破的最有效且成本最低的方法是利用Fail2ban. 不需要加之一, 而且, 幾乎沒有副作用.
Fail2ban還能結合 wordpress 防止暴力登錄, 今天只說最小可用方式, 也是最實用的方式, 在你使用 ssh 賬戶和密碼登錄的情況下, 如何防止別人暴力破解.
yum -y install epel-releaseyum -y install fail2ban
配置 Fail2Ban
編輯其配置文件 /etc/fail2ban/jail.conf。在配置文件的“[default]”區(qū),你可以在此定義所有受監(jiān)控的服務的默認參數(shù),另外在特定服務的配置部分,你可以為每個服務(例如ssh,apache等)設置特定的配置來覆蓋默認的參數(shù)配置。
在針對服務的監(jiān)獄區(qū)(在[default]區(qū)后面的地方),你需要定義一個[ssh-iptables]區(qū),這里用來定義ssh相關的監(jiān)獄配置。真正的禁止IP地址的操作是通過iptables完成的。
下面是一個包含“ssh-iptables”監(jiān)獄配置的/etc/fail2ban/jail.conf的文件樣例。當然根據(jù)你的需要,你也可以指定其他的應用監(jiān)獄
[default] #全局設置ignoreip = 127.0.0.1/8 #忽略的IP列表,不受設置限制bantime = 600 #屏蔽時間,單位:秒findtime = 600 #這個時間段內超過規(guī)定次數(shù)會被ban掉maxretry = 3 #最大嘗試次數(shù)backend = auto #日志修改檢測機制(gamin、polling和auto這三種)[ssh-iptables] #單個服務檢查設置,如設置bantime、findtime、maxretry和全局沖突,服務優(yōu)先級大于全局設置。enabled = true #是否激活此項(true/false)修改成 truefilter = sshd #過濾規(guī)則filter的名字,對應filter.d目錄下的sshd.confaction = iptables[name=ssh, port=ssh, protocol=tcp] #動作的相關參數(shù),對應action.d/iptables.conf文件sendmail-whois[name=ssh, dest=you@example.com, sender=fail2ban@example.com, sendername=“Fail2Ban”]#觸發(fā)報警的收件人logpath = /var/log/secure #檢測的系統(tǒng)的登陸日志文件。這里要寫sshd服務日志文件。默認為logpath = /var/log/sshd.log#5分鐘內3次密碼驗證失敗,禁止用戶IP訪問主機1小時。配置如下bantime = 3600 #禁止用戶IP訪問主機1小時findtime = 300 #在5分鐘內內出現(xiàn)規(guī)定次數(shù)就開始工作maxretry = 3 #3次密碼驗證失敗
重啟Fail2Ban
systemctl restart fail2ban
測試
密碼輸入錯誤三次之后ssh服務斷開
查看防火墻規(guī)則,我們的IP已經被禁止端口訪問