我正在使用 nginx 运行一个小型网站。由于我的服务器使用寿命内(可能)不会有大量流量,并且为了避免随机 DoS 攻击,我正在考虑将 Web 服务器设置为监听备用端口而不是端口 80。
监听备用端口(81、8080 等)是否真的能降低遭受攻击或破坏的风险?或者维护它的负担是否大于其好处?在这种情况下,如果我将来设置这些备用端口,我是否应该将这些备用端口用于其他 Web 服务?
答案1
这里有两件事需要考虑:
- 您的用户会记得在名称中使用非标准端口吗?默认情况下,端口 80 是标准端口,因此您不必将其输入到 URL 中。例如,
http://superuser.com
在端口 80 上运行,您的浏览器会假定 80 是您输入时想要的端口。这与输入 没什么不同http://superuser.com:80
。如果您在端口 8080 上运行 Web 服务器,那么用户有输入http://superuser.com:8080
。一般用户可能不会记得这一点。 - 在非标准端口上运行 Web 服务器能保护你免受 DoS 攻击吗?其实不能。如果有人真的想要关闭您的网站,在非标准端口上运行并不能阻止他们。攻击者将扫描您 IP 上的所有端口,并很快发现 8080(或您选择的任何端口)已打开并响应 HTTP 请求。
改变端口等方法称为“通过隐秘实现安全“而且,这些额外的工作和不便是否能提供任何有价值的安全保障,也非常值得怀疑。
答案2
是的,设置备用端口实际上可以降低攻击的风险,因为爬行网络以查找有缺陷的网络应用程序的机器人通常不会查看其他端口。
如果人类攻击者瞄准您的服务器,那么很容易发现 nginx 正在监听的真实端口(通过扫描开放端口)。
使用这些备用端口的情况很少见(除了代理或...备用网络服务器),所以我认为您可以放心使用它。
但请记住,使用这样的备用端口将阻止“默认”访问者找到您的网站,您需要通过使用以下 URL 告诉人们(或在链接中写出)正确的端口http://yourserver.com:81/...
答案3
另外一个考虑因素(针对 Keltari 提供的两个因素)是,使用非标准端口可能会导致您的网站被 Google 等搜索引擎网络爬虫忽视,除非您另有说明。
如果您希望除了您提供链接的人之外的其他人都难以找到您的网站,那么使用非标准端口似乎是有利的,但除此之外,我会选择标准端口。
答案4
你可以在任何端口上运行 http 服务器,但是你的浏览者和用户会很难记住该端口。
它将降低攻击或入侵的风险,但也有其他方法,例如保护服务器并将 HTTP 服务器保持在端口 80 上