iptables -I 输入 -p TCP -j 接受

iptables -I 输入 -p TCP -j 接受
iptables -I INPUT -p TCP -j ACCEPT

执行上述命令是否会增加 Centos 7 服务器的安全风险?如何回滚该命令?

以下命令可以回滚上述命令吗?

iptables -D INPUT -p TCP -j ACCEPT

这有什么作用呢?

答案1

好的,让我试着弄清楚......

这条规则是个好主意吗

iptables -I INPUT -p TCP -j ACCEPT

实际上意味着,你的机器将接受任何 TCP 连接,无论它来自哪里,也无论它去往哪个本地端口。不是这样做。仅根据您提供服务,并且您希望向外界开放。例如,如果您正在运行一个 Web 服务器,并且希望任何外部人员都能够使用以下命令访问它,那么https您可以发出类似

iptables -A INPUT -p TCP --dport https --syn -m conntrack --ctstate NEW -j ACCEPT

让我带你经历一下……

  • A input意思是:将其添加到输入表中。注意:规则不是插入,而是附加到 INPUT 表。预计 INPUT 的默认策略是丢弃,在我们之前没有规则会无条件丢弃数据包。
  • -p TCP意思是:对于 TCP 协议
  • --dport https意思是:如果连接到我们的本地端口 443
  • --syn意思是:如果到达的数据包是 TCP 连接的第一个数据包,也就是说,有人实际上正在尝试建立真正的连接
  • -m conntrack意思是:一旦建立连接,就记住它,这样我们就可以允许任何到达并属于该连接的数据包
  • --ctstate NEW意思是:评估连接状态,如果连接是新的,则接受它(这比更复杂,--syn但基本上使用相同的机制)
  • -j ACCEPT意思是:如果以上所有条件都满足,则接受数据包

为了使连接跟踪正常工作(-m conntrack),您需要一个类似

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

可能作为 INPUT 表中的第一条规则。这允许任何已成功建立的连接的数据包通过防火墙。

你能用这种方式恢复吗

不可以。使用 iptables 时,如果想删除一条规则,则iptables -D chain必须提供数字。您实际想要删除的规则必须提供数字。您可以通过向--line-numbersiptables 提供数字来获取该数字,如下所示

iptables -vnL --line-numbers

可能会产生如下输出

Chain INPUT (policy DROP 11379 packets, 2225K bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1     121M  340G ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
2     552K   39M ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
3      161 13182 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 3
4        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 11
5        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 12
6        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:113 flags:0x17/0x02 reject-with tcp-reset
7        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 flags:0x17/0x02 ctstate NEW

Chain FORWARD (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 15618 packets, 1630K bytes)
num   pkts bytes target     prot opt in     out     source               destination         

數量列显示要传递给的数字iptables -D。但不要忘记也传递链的名称。

记录在案:是的,这是我的设置,其中很多 docker 内容被剥离了:-)。

相关内容