我认为这是一个关于nginx/https的问题,但也可能是关于iptables的,以防我误解了事情。
最近,我在我的路由器上设置了防火墙,将我的网络服务器(nginx)和互联网连接起来。Nginx被设置为侦听端口80和443,并使用加密证书将大部分80次调用重定向到443。有了适当的转发到位,一切都运行得很好--至少我还没有发现任何故障。
防火墙(iptables表)被设置为ACCEPT策略,但是当数据包到达INPUT链的末尾时,它会被转发到一个LOGDROP链,该链记录并删除它。
通过查看日志,我发现从服务器上从端口443发出的丢弃数据包被定向到路由器。示例(MAC和IP地址随机,.136是服务器,.122是路由器):
Oct 10 05:18:47 ASUS user.warn kernel: IPTables-Dropped: IN=br0 OUT= MAC=3C:AE:78:D4:B1:E3 SRC=192.168.1.136 DST=192.168.1.122 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=10743 DF PROTO=TCP SPT=443 DPT=33272 WINDOW=0 RES=0x00 RST URGP=0这些尝试在一夜之间半定期地出现(每十分钟一次,每次三次),然后逐渐消失。
假设我正确地解释了日志,服务器将直接从https端口与路由器联系--这是没有意义的,因为为什么路由器需要加密或未加密的web内容?而且似乎没有要求就得到了它?
我假设对https内容的外部请求是通过FORWARD链进行的,因此不会出现在这里。正如我所说的,AFAICT向服务器发出的所有https请求都会得到响应。
我的问题是:
这些数据包的可能解释是什么?导致nginx在没有要求数据包的情况下发送数据包的奇怪服务器滴答?或者是从某个地方得到的请求导致它对错误的机器做出响应?
发布于 2016-10-10 12:40:44
您提供的示例日志消息是一个RST数据包,通常是在没有监听目标端口的情况下由内核发送。
10月10日05:18:47 ASUS user.warn内核:IPTables DF : IN=br0 OUT= MAC=3C:AE:78:D4:B1:E3 SRC=192.168.1.136 DST=192.168.1.122 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=10743 DF PROTO=TCP SPT=443 DPT=33272 WINDOW=0 RES=0x00 RST URGP=0
具体来说,这里将有一个从192.168.1.122到192.168.1.136:443的请求被服务器192.168.1.136拒绝,因为当时没有监听端口443。(或者192.168.1.136上有一个防火墙,其中包含地址/端口组合的REJECT规则。在这个层次上,我们无法区分。)
不幸的是,这并不能解释为什么您的路由器.122应该尝试在.136上与nginx通信,但它可能会帮助您更容易地解释日志文件消息。
https://unix.stackexchange.com/questions/315399
复制相似问题