我在/var/log/auth.log中看到了下面的一些尝试,其中一个可能是端口扫描尝试(尽pipe如此)
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>
我怎么能阻止这样的尝试?
如果你使用Linux,你可以使用fail2ban 。
“Fail2ban扫描日志文件,如/ var / log / pwdfail或/ var / log / apache / error_log,并且禁止造成太多密码失败的IP,它更新防火墙规则以拒绝IP地址。
我假设你正在使用Linux与FreeBSD – 但是两者的build议是接近相同的。
如果您正在运行以下任何一项:
我build议使用ConfigServer提供的名为CSF的免费产品。 CSF有一个很好的用户界面,如果你在一个cPanel服务器上 – 但可以用于任何上述的Linux版本
还有其他的select,比如来自R-Fxnetworking的APF和BFD – Google可以使用:APF(高级策略防火墙)BFD(powershell检测)或者访问R-FX Network网站获取更多详细信息。
还有一种晦涩的安全方法 – 但这不是一个固定的方法,而只是隐藏起来。
首先 – 把你的SSH端口移动到22以外。其次 – 仅使用ssh密钥交换 – 忘记密码。 第三 – 只允许SSH版本2
第四 – 如果你有一个静态的IP地址 – 甚至可以通过iptables和/或防火墙将地址限制在你的系统中。
如果你想得到一些帮助,请不要犹豫。
与fail2ban一样,denyhosts在阻止login尝试失败后很有效,尽pipe它为给定的服务更新/etc/hosts.deny ,而不是修改防火墙规则。
把你的SSH服务器移到高端口可以减less很多这种stream量,但正如Glenn所说的那样,它本质上不是更安全。
如果这段时间的分离表明了你看到这些尝试的速度,我简单地忽略它作为背景噪音。 但是,如果您真的想从一般的互联网隐藏您的服务,请考虑portknocking: http : //www.portknocking.org/
还有一个选项(但不是那么受欢迎)。 你必须购买另一个连接(让说adsl)与静态IP(或dyndns)。 设置一个防火墙,将ssh端口移到一个很高的数字,然后连接你想访问的networking中的路由器。 如果您在机器上具有物理访问权限,则可以在需要时打开/closures路由器。
通过这种方式,您可以随时打开门,而无需担心主要连接。