我在 /var/log/auth.log 中看到以下尝试,有人告诉我这可能是端口扫描尝试。(但不确定)
Nov 18 23:50:19 server sshd[21716]: Did not receive identification string from <some IP>
Nov 19 00:05:57 server sshd[24056]: Did not receive identification string from <some IP>
我怎样才能阻止此类尝试?
答案1
如果你使用 Linux,你可以使用失败2ban。
“Fail2ban 会扫描日志文件(如 /var/log/pwdfail 或 /var/log/apache/error_log)并禁止密码输入次数过多的 IP。它会更新防火墙规则以拒绝该 IP 地址。”
答案2
与 fail2ban 一样,denyhosts 适用于在登录尝试失败后阻止主机,尽管它/etc/hosts.deny
针对给定的服务进行更新,而不是修改防火墙规则。
将您的 SSH 服务器移至高端口可以减少大量此类流量,但正如 Glenn 所说,它本质上并不是更安全的。
如果那个时间间隔表明了您看到尝试的频率,我会简单地将其忽略为背景噪音。但是,如果您真的想将您的服务隐藏在一般互联网之外,请考虑使用端口敲击:http://www.portknocking.org/
答案3
我假设您使用的是 linux 与 FreeBSD - 但是对两者的建议几乎相同。
如果您正在运行以下任何一项:
- RedHat v7.3、v8.0、v9.0
- RedHat Enterprise v3、v4、v5(32/64 位)
- CentOS v3、v4、v5(32/64 位)
- Fedora Core v1 至 v12(32/64 位)
- Gentoo
- openSUSE v10、v11
- Debian v3.1、v4.0、v5.0
- Ubuntu v6.06 LTS、v8.10、v9.10、v10.04 LTS
- 曼德里瓦 2009, 2010
- Slackware v12.2
我建议使用来自ConfigServer 称为 CSF。如果您使用的是 cPanel 服务器,CSF 拥有出色的用户界面 - 但适用于上述任何 Linux 版本
还有其他替代方案,例如 R-Fx 网络的 APF 和 BFD - 谷歌搜索以下内容:APF(高级策略防火墙)BFD(暴力破解检测)或直接访问R-FX 网络网站了解更多详细信息。
还有一种通过模糊性来实现安全性的方法 - 但这不是解决办法 - 而只是隐藏而已。
首先 - 将 SSH 端口移至 22 以外的其他端口。其次 - 仅使用 ssh 密钥交换 - 忘记密码。第三 - 仅允许 SSH 版本 2。
第四 - 如果您有静态 IP - 则限制允许通过 iptables 和/或防火墙 ssh 进入系统的地址。
如果您需要任何帮助 - 请随时询问。
答案4
还有另一种选择(但不那么流行)。您必须购买另一个具有静态 IP(或 dyndns)的连接(比如 adsl)。设置防火墙,将 ssh 端口移至高数字,并将该路由器连接到您想要授予访问权限的网络中。如果您有机器的物理访问权限,则可以在需要时打开/关闭路由器。
通过这种方式,您可以随时打开门,而不必担心主连接。