# 背景
攻防演练期间,有一台设备连不上主控端,iptables -L INPUT --line -number
查看INPUT和OUTPUT有异常并且都删除,依旧连接不上主控端,最后确认是在raw表中有策略。
# 四表五链
Linux防火墙(iptables)使用四表五链(Four Tables, Five Chains)的结构来管理和控制网络流量。这个结构是iptables的核心组成部分,用于配置防火墙规则和过滤网络数据包。
以下是四表五链的概述:
四个表(Four Tables):
- filter表:用于过滤网络数据包,根据规则决定是否允许或拒绝数据包通过防火墙。
- nat表:用于网络地址转换(Network Address Translation,NAT),主要用于实现端口转发和IP地址转换等功能。
- mangle表:用于对数据包的头部进行修改,如修改TTL(Time to Live)值和设置数据包标记等。
- raw表:提供原始数据包的处理,通常用于配置连接跟踪(Connection Tracking)和处理特定类型的数据包。
五个链(Five Chains):
- INPUT链:用于处理进入本地系统的数据包,例如接收到的网络请求。
- OUTPUT链:用于处理从本地系统发送出去的数据包,例如本地系统发起的网络请求。
- FORWARD链:用于处理通过本地系统转发的数据包,例如作为路由器转发的数据包。
- PREROUTING链:用于在数据包到达本地系统的网络协议栈之前进行处理,通常用于网络地址转换(NAT)。
- POSTROUTING链:用于在数据包离开本地系统的网络协议栈之后进行处理,通常用于网络地址转换(NAT)。
# 删除单独raw表
要删除Linux防火墙中的raw表,您可以使用iptables命令的-t
选项指定表的名称为"raw",并使用-F
选项清空该表中的所有规则,然后使用-X
选项删除该表。
以下是删除raw表的命令示例:
|
|
请注意,执行这些命令需要管理员或root权限。在删除表之前,请确保您理解并确认其影响,以免意外删除了重要的规则。建议在执行任何防火墙配置更改之前备份您的规则,并在一个安全的环境中进行测试。
# 删除单独raw表规则
要删除raw表中的单个规则,您可以使用iptables命令的-t
选项指定表的名称为"raw",并使用-D
选项指定要删除的规则的位置或规则规范。
以下是删除raw表中单个规则的命令示例:
|
|
请将<chain>
替换为raw表中的链(例如PREROUTING、OUTPUT等),将<rule_specification>
替换为要删除的规则的具体位置或规则规范。
例如,如果要删除PREROUTING链中的第3条规则,您可以执行以下命令:
|
|
如果您知道要删除规则的规则规范,可以将其替换为<rule_specification>
。例如,如果要删除源IP地址为10.0.0.1的规则,可以执行以下命令:
|
|