Ssh
配置 TCP Wrappers 後 SSH 變慢
我們在其中一台生產伺服器上打開了 SSH,使其容易受到各種暴力攻擊的入侵。我通過將預設埠從 22 更改為減少了嘗試。
我想通過僅允許從特定國家域進行 ssh 登錄來進一步加強安全性
.in
。為此,我可以配置/etc/hosts.deny
或/etc/hosts.allow
.對於
hosts.allow
,我添加了以下條目
sshd: in
如果我使用
hosts.deny
,那麼我的條目是這樣的
sshd: !in
配置上述任何一項後,我注意到連接到
ssh
伺服器需要更多時間。在提供登錄嘗試之前,它會顯示在此處掛起一段時間的詳細資訊
ssh -vv 103.8.X.X OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug2: ssh_connect: needpriv 0 debug1: Connecting to 103.8.X.X [103.8.X.X] port 565. debug1: Connection established. debug1: identity file /home/amin/.ssh/id_rsa type -1 debug1: identity file /home/amin/.ssh/id_rsa-cert type -1 debug1: identity file /home/amin/.ssh/id_dsa type -1 debug1: identity file /home/amin/.ssh/id_dsa-cert type -1 debug1: identity file /home/amin/.ssh/id_ecdsa type -1 debug1: identity file /home/amin/.ssh/id_ecdsa-cert type -1 (<-- hangs here for arnd 30 secs)
在為 tcp 包裝器設置規則之後,使用 putty 需要更多時間。
將主機名放入
hosts.allow
orhosts.deny
意味著伺服器必須進行反向 DNS 解析才能獲取 IP 地址的域名。如果您的名稱解析系統速度慢或某些中間名稱伺服器響應緩慢,這將影響登錄時間。將子網的 IP 地址放入文件中會更快,如下所示man hosts.allow
:The examples use host and domain names. They can be improved by includ‐ ing address and/or network/netmask information, to reduce the impact of temporary name server lookup failures.
另一種防止暴力登錄攻擊的方法是安裝一個名為fail2ban的程序。該程序將跟踪失敗的登錄嘗試,並在失敗次數過多後暫時阻止 IP 地址。這樣您就不再需要根據國家/地區阻止登錄了。每小時只允許三到四次失敗的登錄嘗試,即使對於大型殭屍網路,也無法進行暴力攻擊。