iptables命令

2023-04-28 11:23:05 浏览数 (2)

1. iptables基本概念

iptables基于Linux内核提供的netfilter框架实现,是一个基于规则的数据包过滤系统。iptables将所有进入和离开系统的网络数据包与其定义的规则进行比较,并根据规则来处理数据包。iptables规则包括以下几个部分:

  • 表(table):iptables规则的容器,用于存储规则链和对应的规则。iptables提供了多种表用于不同的网络处理任务,例如filter表用于过滤数据包、nat表用于进行网络地址转换等。
  • 规则链(chain):每个表中都包含多个规则链,用于存储规则。iptables中默认包含三个规则链:INPUT(输入规则)、FORWARD(转发规则)和OUTPUT(输出规则),分别对应处理进入系统的数据包、从系统转发的数据包和从系统输出的数据包。
  • 规则(rule):iptables规则由匹配条件和动作两部分组成。匹配条件可以是源地址、目的地址、协议类型、端口等,动作可以是ACCEPT(接受数据包)、DROP(丢弃数据包)、REJECT(拒绝数据包)等。

2. iptables命令格式

iptables命令的基本格式如下:

代码语言:javascript复制
iptables [-t 表名] 命令 [链名] [匹配条件] [动作选项]

其中,-t 表名选项用于指定要操作的表名,命令选项用于指定要执行的操作,链名用于指定要操作的规则链,匹配条件用于指定要匹配的数据包,动作选项用于指定要执行的动作。

3. iptables命令示例

3.1 显示iptables规则

要查看当前iptables规则,可以使用以下命令:

代码语言:javascript复制
iptables -L

该命令会列出默认规则链的所有规则,包括每条规则的编号、匹配条件和动作。

3.2 添加iptables规则

要添加一条iptables规则,可以使用以下命令:

代码语言:javascript复制
iptables -A 链名 匹配条件 动作选项

例如,要添加一条允许所有进入系统的HTTP数据包的规则,可以使用以下命令:

代码语言:javascript复制
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

该命令将在INPUT规则链的末尾添加一条匹配协议类型为tcp、目的端口为80的数据包,并将其动作设置为接受数据包。

3.3 删除iptables规则

要删除一条iptables规则,可以使用以下命令:

代码语言:javascript复制
iptables -D 链名 规则编号

例如,要删除INPUT规则链中编号为2的规则,可以使用以下命令:

代码语言:javascript复制
iptables -D INPUT 2

该命令将从INPUT规则链中删除编号为2的规则。

3.4 清除iptables规则

要清除所有iptables规则,可以使用以下命令:

代码语言:javascript复制
iptables -F

该命令将清除默认规则链中的所有规则。

3.5 开启iptables

要开启iptables防火墙,可以使用以下命令:

代码语言:javascript复制
service iptables start

该命令将启动iptables防火墙服务。

3.6 关闭iptables

要关闭iptables防火墙,可以使用以下命令:

代码语言:javascript复制
service iptables stop

该命令将停止iptables防火墙服务。

3.7 保存iptables规则

要保存当前iptables规则,以便在系统重启后能够恢复规则,可以使用以下命令:

代码语言:javascript复制
service iptables save

该命令将保存当前iptables规则到/etc/sysconfig/iptables文件中。

3.8 加载iptables规则

要加载之前保存的iptables规则,可以使用以下命令:

代码语言:javascript复制
service iptables reload

该命令将重新加载之前保存的iptables规则。

0 人点赞