我应该将SSH端口更改为<1024?

许多服务器configuration指南build议将SSH端口更改为大于1024的值,以避免混淆并避免冲突。

这很有趣,因为它build议使用一个<1024的端口,因为它是有特权的:

http://www.thefanclub.co.za/how-to/how-secure-ubuntu-1204-lts-server-part-1-basics

对这种做法有什么想法?

你有不同的select。 每个都有缺点。 那么你更喜欢哪个缺点?

  • 使用端口22:您将从机器人扫描中获取大量日志条目以获取简单的密码。 您可以通过仅使用公钥authentication来防止这种方式的妥协。 但日志条目仍然在那里。
  • 其他一些小于1024的端口:它可能已经被官方保留用于某些其他协议,如果您使用该协议,可能会导致冲突。 有可能是机器人扫描其他服务,所以你仍然会看到奇怪的日志条目偶尔出现。
  • 使用端口号1024或更多:本地用户可以通过侦听该端口导致DoS攻击。 他们将不得不在sshdclosures时开始监听,所以当sshd重新启动时有一个机会。

如果你保持你的sshd安全,看起来你可以select获取远程主机的日志,或者本地用户使用DoS。 日志条目可以通过某种自动阻塞来缓解,不幸的是,这可能会导致一种不同types的DoS攻击。

那么,你可以把端口从22改成不同的东西,是的。 但是这不是一个端口扫描不会显示在最后。

如果您担心安全性和SSH,则完全禁用仅密码validation。 还打开监视器日志扫描程序,如fail2ban,configuration为禁止在您的网站上运行扫描的恶意主机。

如果你更关心安全性,那么改变端口有一点是合理的:把它改成不常用的东西,并实现端口敲打!

只改变端口并没有太大的作用,用活动的端口来改变端口是一种完全不同的事情!

1024以下的端口保留给内核使用CAP_NET_BIND_SERVICE的守护进程和服务,其中一个是SSH。

实际上,更改ssh端口并没有太大的安全性改进,因为扫描仍然会find打开的端口。 您将有较less的日志条目,由于在随机主机的默认端口上尝试默认密码或密码表的攻击而造成的,但是如果您正确设置了ssh,这些应该不成问题。

问题是从传出stream量被限制到标准端口的环境连接到您的服务器,您将遇到问题。 对我来说,将SSH保留在默认端口是最好的做法,但我想有些人愿意讨论这个问题。

我认为将SSH更改为非标准端口没有任何安全优势。 留在22号端口不应该有任何冲突,因为该端口是为SSH保留的。 如果你的SSH服务器的安全性取决于它在非标准端口上运行,那么你的工作就没有了。

我不得不部分地不同意其他答案,因为改变端口并不一定能保护你免受实际的有针对性的攻击(如果某人能够扫描所有端口并findSSH端口),但它确实能保护你免受攻击僵尸networking,通过字典对随机或选定的主机进行暴力破解。 即使在这种情况下,我也假设每一个体面的技术人员都知道确保密码是足够强大的,更不用说更新的软件安装实际上要求你有强密码。 我认为它保护你免受分布式拒绝服务攻击,可能真的让你的服务器变慢,用废话填满日志等等。 而fail2ban&co。 可以做一个很好的工作,对一个单一的主机这样做,他们对一个非常大的僵尸networking是无效的。

另一方面,我没有看到为什么要把SSH端口留给互联网,除非你运行一个类似于提供SSH访问的Web主机的东西。 否则,您应该只允许您信任的特定IP连接到SSH,这是最佳做法。 不是端口敲,不更改端口,不fail2ban。

所以,如果你问我,有两个select:

  1. 您有特定的需要让SSH为Internet打开。 在这种情况下,您将更改SSH端口并安装fail2ban(甚至可能设置帐户在X失败密码尝试后locking)。
  2. 您closuresSSH并仅列出某些IP。

编辑:

忘了关于1024和1024以下的东西。 许多防火墙确实有特定的规则,可以使使用1024以下的端口更有意义。 例如,有些防火墙拒绝在高于1024的端口上进行连接(因此,您确实需要有一个以root启动的服务或需要侦听某个端口而不是一些漏洞的内核function),其他防火墙则给予更多优先级降低端口,使系统服务可以受益于此等等。