我们在其中一台生产服务器上打开了 SSH,使其容易受到各种暴力攻击的入侵。我通过更改默认端口 22 来减少尝试次数。
我想通过.in
仅允许从特定国家/地区域进行 ssh 登录来进一步强化安全性。为此我可以配置/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 需要更多时间。
答案1
将主机名放入hosts.allow
或hosts.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.
防止暴力登录攻击的另一种方法是安装一个名为失败2禁止。该程序将跟踪失败的登录尝试,并在失败次数过多后暂时阻止 IP 地址。这样您就不再需要根据国家/地区阻止登录。每小时只允许三到四次失败的登录尝试,即使对于大型僵尸网络也将无法进行暴力攻击。