🚀阿江的数字花园

搜索⚡

Search IconIcon to open search

⏲上次更新的时间是 Feb 7, 2024

# 背景

攻防演练期间,有一台设备连不上主控端,iptables -L INPUT --line -number查看INPUT和OUTPUT有异常并且都删除,依旧连接不上主控端,最后确认是在raw表中有策略。

# 四表五链

Linux防火墙(iptables)使用四表五链(Four Tables, Five Chains)的结构来管理和控制网络流量。这个结构是iptables的核心组成部分,用于配置防火墙规则和过滤网络数据包。

以下是四表五链的概述:

四个表(Four Tables):

  1. filter表:用于过滤网络数据包,根据规则决定是否允许或拒绝数据包通过防火墙。
  2. nat表:用于网络地址转换(Network Address Translation,NAT),主要用于实现端口转发和IP地址转换等功能。
  3. mangle表:用于对数据包的头部进行修改,如修改TTL(Time to Live)值和设置数据包标记等。
  4. raw表:提供原始数据包的处理,通常用于配置连接跟踪(Connection Tracking)和处理特定类型的数据包。

五个链(Five Chains):

  1. INPUT链:用于处理进入本地系统的数据包,例如接收到的网络请求。
  2. OUTPUT链:用于处理从本地系统发送出去的数据包,例如本地系统发起的网络请求。
  3. FORWARD链:用于处理通过本地系统转发的数据包,例如作为路由器转发的数据包。
  4. PREROUTING链:用于在数据包到达本地系统的网络协议栈之前进行处理,通常用于网络地址转换(NAT)。
  5. POSTROUTING链:用于在数据包离开本地系统的网络协议栈之后进行处理,通常用于网络地址转换(NAT)。

# 删除单独raw表

要删除Linux防火墙中的raw表,您可以使用iptables命令的-t选项指定表的名称为"raw",并使用-F选项清空该表中的所有规则,然后使用-X选项删除该表。

以下是删除raw表的命令示例:

1
2
iptables -t raw -F
iptables -t raw -X

请注意,执行这些命令需要管理员或root权限。在删除表之前,请确保您理解并确认其影响,以免意外删除了重要的规则。建议在执行任何防火墙配置更改之前备份您的规则,并在一个安全的环境中进行测试。

# 删除单独raw表规则

要删除raw表中的单个规则,您可以使用iptables命令的-t选项指定表的名称为"raw",并使用-D选项指定要删除的规则的位置或规则规范。

以下是删除raw表中单个规则的命令示例:

1
iptables -t raw -D <chain> <rule_specification>

请将<chain>替换为raw表中的链(例如PREROUTING、OUTPUT等),将<rule_specification>替换为要删除的规则的具体位置或规则规范。

例如,如果要删除PREROUTING链中的第3条规则,您可以执行以下命令:

1
iptables -t raw -D PREROUTING 3

如果您知道要删除规则的规则规范,可以将其替换为<rule_specification>。例如,如果要删除源IP地址为10.0.0.1的规则,可以执行以下命令:

1
iptables -t raw -D PREROUTING -s 10.0.0.1 -j <target>