使用 sshguard 保護 OpenSSH 服務器 转自 http://cha.homeip.net/blog/archives/2007/03/_sshguard_opens.html
  • 使用 sshguard 保護 OpenSSH 服務器
  • 使用 TCPWrapper 限制連線來源
  • 關閉密碼驗證功能, 僅允許 ssh 金鑰驗證登入

安裝 sshguard

下載 sshguard source tarball

tar jxf sshguard-version.tar.bz2

cd sshguard-version

python scons.py -Q FIREWALLTYPE=iptables

python scons.py -Q FIREWALLTYPE=iptables install

chmod +s /usr/local/sbin/sshguard

vi /etc/syslog.conf

auth.info;authpriv.info        /var/log/auth.log

vi /etc/ssh/sshd_config

UseDNS no

killall -HUP syslogd sshd

iptables -N sshguard

iptables -A INPUT -p tcp --dport 22 -j sshguard

啟用 sshguard

tail -n0 -f /var/log/auth.log | /usr/local/sbin/sshguard &

實測

ssh sshd.host.ip (或 ssh localhost 直接測試本機) 輸入錯誤密碼數次後, sshguard 將自動封鎖來源 IP

遭封鎖的 IP 可用 iptables -L -n 查出

數分鐘後自動解除封鎖


其他常見 ssh 保護方式

以 TCPWrapper 限制連線來源

vi /etc/hosts.deny

#只允許內部 IP 192.168.1.* 與指定之外部 IP 123.123.123.123 連入 sshd
sshd: ALL EXCEPT 192.168.1. 123.123.123.123

ps. 存檔後立即生效

關閉密碼驗證功能, 僅允許 ssh 金鑰驗證登入

更多的方法


參考資料

==============================
sudo iptables -L  sshguard 来查看
sudo iptables -D sshguard -s 192.168.1.3 -j DROP  清掉
sudo iptables -