Networking 用于限制eth1对端口80和443的访问的IPTable规则

Networking 用于限制eth1对端口80和443的访问的IPTable规则,networking,tcp,iptables,Networking,Tcp,Iptables,我有一个服务正在侦听eth1端口80和443上的客户流量。托管我的服务的服务器也在eth0和localhost上托管其他管理/特权访问内容 我正在尝试设置iptable规则,以锁定与客户端位于同一网络上的服务器上的eth1(通过eth1阻止ssh/访问端口9904上运行的内部服务等)。我还希望确保这些规则不禁止定期访问eth1:80和eth1:443。我提出了以下规则,但想与iptable专家一起回顾一下该规则可能存在的问题 -A INPUT -i eth1 -p tcp -m tcp --dp

我有一个服务正在侦听eth1端口80和443上的客户流量。托管我的服务的服务器也在eth0和localhost上托管其他管理/特权访问内容

我正在尝试设置iptable规则,以锁定与客户端位于同一网络上的服务器上的eth1(通过eth1阻止ssh/访问端口9904上运行的内部服务等)。我还希望确保这些规则不禁止定期访问eth1:80和eth1:443。我提出了以下规则,但想与iptable专家一起回顾一下该规则可能存在的问题

-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -i eth1 -j DROP
  • 以上规则够了吗
  • 上述规则与谷歌搜索时发现的规则有何不同

谢谢,我得到了答案,为了完整起见,把它添加到这里

第一组规则首先允许端口上的所有传入数据包 80和443。然后它丢弃所有其他传入的数据包(除了 已接受)

第二组规则首先允许端口80上的所有传入数据包 和443。然后它会丢弃传入连接(不包括80和443) 已接受),这是仅设置了SYN标志的数据包。 然后它允许所有传入的数据包

这里的区别在于您的传出连接发生了什么。在里面 第一个规则集,如果您尝试连接到另一台服务器,任何 服务器响应发送的数据包将被丢弃,因此您将 从不接收任何数据。在第二种情况下,这些数据包将被删除 允许,因为来自远程服务器的第一个数据包将同时具有 设置SYN和ACK,从而通过SYN测试和任何以下测试 数据包根本没有设置SYN,因此通过了测试

传统上,这是使用conntrack完成的,它需要 内核跟踪防火墙中的每个连接,并使用 命令式

-输入-m conntrack--ctstate已建立,相关-j ACCEPT

将传入数据包与现有连接相匹配,或 与其他现有连接(如FTP数据)相关的连接 连接)。如果您不使用FTP或其他使用 多个随机端口,则第二个规则集基本实现 相同的结果,而无需跟踪和检查这些数据 联系


Stackoverflow用于编程问题。你可以在serverfault上找到iptable gurus.com谢谢我为可能有相同问题的人解答了这个问题
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
-A INPUT -i eth1 -p tcp -j ACCEPT
-A INPUT -i eth1 -j DROP