我有一台仅运行 SSH 和 Apache 的 Linux 服务器。这基本上是我的 iptables 设置:
ACCEPT udp -- <isp dns server> anywhere udp spt:domain
ACCEPT udp -- <isp dns server> anywhere udp spt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
DROP all -- anywhere anywhere
当我的 Web 应用程序与 Google 和 Yahoo 等网站建立基于 REST 的连接时,就会出现我遇到的问题。他们的响应似乎来自高端口(如 54000 - 56000)。我为 iptables 实现了一个日志,当我尝试访问 Google 的 REST API 时,它会吐出一行这样的信息:
Mar 28 16:12:42 host kernel: Dropped by firewall: IN=eth0 OUT= MAC=00:16:3e:00:08:2c:00:26:0a:27:0d:00:08:00 SRC=74.125.226.146 DST=184.107.162.194 LEN=60 TOS=0x00 PREC=0x00 TTL=52 ID=39440 PROTO=TCP SPT=443 DPT=56461 WINDOW=5672 RES=0x00 ACK SYN URGP=0
当然,我的规则会阻止这些数据包进入。有人能推荐一种允许我接受这些数据包的方案吗?还是我遗漏了什么重要的东西?
谢谢,Aaron
答案1
如果我理解正确,你可能需要查看状态防火墙规则。一些信息 ->https://wiki.archlinux.org/index.php/Simple_Stateful_Firewall