IPTable规则限制eth1访问端口80和443

时间:2017-02-23 00:33:43

标签: networking tcp iptables

我有一项服务在eth1的端口80和443上侦听客户流量。托管我的服务的服务器还托管eth0和localhost

上的其他管理员/特权访问内容

我正在尝试设置iptable规则来锁定与客户端在同一网络上的服务器上的eth1(阻止像ssh通过eth1 /访问在端口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
  • 上述规则是否足够
  • 上述内容与google搜索时的规则有何不同
-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

1 个答案:

答案 0 :(得分:0)

谢谢我在https://serverfault.com/questions/834534/iptable-rules-to-restrict-eth1-access-to-ports-80-and-443得到了回答,在此处添加了完整性

  

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

     

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

     

这里的不同之处在于您的OUTGOING连接会发生什么。在   第一个规则集,如果您尝试连接到另一个服务器,任何   服务器在响应中发送的数据包将被丢弃,因此您将这样做   从未收到任何数据。在第二种情况下,这些数据包将是   允许,因为来自远程服务器的第一个数据包将同时拥有   SYN和ACK设置因此通过SYN测试,以及任何以下   数据包根本不会设置SYN,因此通过了测试。

     

传统上这是使用conntrack完成的,需要使用conntrack   内核用于跟踪防火墙中的每个连接,用   像

这样的命令      

-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

     

将传入的数据包与现有连接匹配,或者   与某些其他现有连接相关的连接(例如FTP数据   连接)。如果您没有使用FTP或其他使用的协议   多个随机端口,然后第二个规则集基本实现了   相同的结果没有跟踪和检查这些的开销   连接。