为什么服务器对外不开放的端口还是可以被直接请求到,一堆扫描记录

2020-03-14 21:12:53 +08:00
 Orenoid

服务器除了几个常用端口之外都关掉了,接口都是走 nginx 域名转发。
但是我翻服务日志(不是 nginx 日志)发现还是有不少请求发进来了,而且还有直接用我服务器公网 ip 请求的。
我自己试了下确实没办法对端口直接发请求,不知道他们到底怎么请求的。
是有什么安全漏洞吗?还是我哪里操作不对,没什么运维经验,还请轻喷。

3653 次点击
所在节点    程序员
25 条回复
villivateur
2020-03-14 21:18:40 +08:00
你是用什么方法把端口“关掉”的?防火墙吗?
opengps
2020-03-14 21:19:33 +08:00
本机防火墙软件还是系统外的防护措施(比如安全组)?
Orenoid
2020-03-14 21:22:43 +08:00
@villivateur #1 VPS 平台的端口开放设置
Orenoid
2020-03-14 21:22:59 +08:00
@opengps #2 安全组
jim9606
2020-03-14 21:26:33 +08:00
通常 nginx 会指定其中一个域名为默认 server,当 nginx 不知道请求是哪个域名(例如请求头没有 Host)时会匹配到默认 server,参见 ( https://nginx.org/en/docs/http/ngx_http_core_module.html#listen )中的 default_server
建议你单独指定一个 server 并对请求返回 http 错误,不过建议排除.well-known 目录供 ACME 使用
monkey110
2020-03-14 21:27:55 +08:00
telnet 服务器 IP 端口
看看是不是真的没有开放

俺用的腾讯云部署了项目后 安全组完全没啥用了 端口权限全被项目接管了
manami
2020-03-14 21:29:14 +08:00
如果是 ubuntu 的话可以用 ufw,开关端口很方便
mikeguan
2020-03-14 21:31:32 +08:00
你自己也试了端口没法直接访问,确定这些 ip 不是 Nginx 传过来的而是直接访问的端口?
Orenoid
2020-03-14 21:31:47 +08:00
@monkey110 #6 试了下,telnet 确实连不上(已经拿百度对比过效果)
Orenoid
2020-03-14 21:34:31 +08:00
@mikeguan #8
不排除这种可能,nginx 我也不熟
只是看到请求的 host 里直接是公网 ip 才这么猜测的,如果是走域名,日志里的 host 打印的是域名
Athrob
2020-03-14 21:37:35 +08:00
安全组里 80 端口开放的话这些日志很正常, 没开放就不正常了.
opengps
2020-03-14 21:40:08 +08:00
@Orenoid 4#晒一下你的安全组配置吧(注意隐藏掉你的安全管控端口),看看是不是规则冲突,对某些范围开放了
Athrob
2020-03-14 21:44:48 +08:00
这些日志都是请求的 80 端口( http 默认端口), http 请求头的 Host 字段可以随便写啊.
只是 nginx 里对不同 Host 有不同的处理, 比如不是指定的值就返回 403 或者直接断开等.
Orenoid
2020-03-14 21:48:41 +08:00
@opengps #12 如图 ![image.png]( https://i.loli.net/2020/03/14/zO8M61or9bjiPl3.png)
@Athrob #13 80 端口确实是开放的,但我没理解它不走我的域名的话,是怎么被发到内部端口来的
Athrob
2020-03-14 21:53:11 +08:00
是通过 nginx 转发到 hooks.py 这个服务吗? 可能规则没调好匹配不到规则的默认请求都转发到 hooks.py 了.
villivateur
2020-03-14 22:03:16 +08:00
@Orenoid 会不会是 Nginx 把源 IP forward 到你的 backend 服务上了
Orenoid
2020-03-14 22:03:27 +08:00
https://gist.github.com/Orenoid/98bc86e997ddb5c2c0a164b3afdf0b19
我把项目的 nginx 配置文件临时放到 gist 上面了,你可以看下,至于 nginx 其他配置我记得没动过。
opengps
2020-03-14 22:05:35 +08:00
@Orenoid 全都是接受,你没设置拒绝条目啊
opengps
2020-03-14 22:12:02 +08:00
@opengps 刚才有点蒙圈,搞错了,这个安全组是哪家的,既不是阿里又不是腾讯,按理说默认都是禁用端口,配置开通哪个才可以用哪个。
注意看下你的服务器是不是确实应用了这个防火墙规则,如果你只有一台机器,那看起来没问题
Orenoid
2020-03-14 22:12:56 +08:00
@opengps #18 其他默认应该是连不上的,我刚刚试了下把 443 端口删掉后就请求不了,恢复就正常了。
@villivateur #16 我也不确定,17 楼我贴了 nginx 的 conf 文件,你可以看下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/652842

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX