iptables基础命令与filter表相关命令

工具教程2个月前更新 huiye
164 0

本文主要基于前人的文档总结了下常用的基础命令

基础命令

# iptables -t filter -L -n

-L 列出所有的规则
-t 指定表(filter是默认表,若是查filter可以不用加-t)
-n 直接显示IP地址
-v 显示更多信息
--line 显示行号
-F [链名] 清空指定链

保存规则(若不进行规则保存,重启iptables或者系统后,规则会重置为操作前的规则)
# service iptables save
或者将规则重定向到/etc/sysconfig/iptables文件中即可。
# iptables-save > /etc/sysconfig/iptables
若是centos7及以上的系统需要单独再安装iptables-service服务
# yum install -y iptables-service
使用iptables-restore命令可以从指定文件中重载规则,示例如下。注:文件中的规则将会覆盖现有规则
# iptables-restore < /etc/sysconfig/iptables

filter表

filter表的链:INPUT(处理进入本机的入向数据包)OUTPUT(处理从本机出去的出向数据包)FORWARD(处理经过本机但目的地不是本机的数据包。例如,路由或桥接的数据包)。

# iptables -t filter -A INPUT -j DROP -s 0.0.0.0/0
-t [表] 指定表
-A [链] 指定链追加规则
-D [链] 指定删除的链规则,可以指定行号删除,可以在[链]后面加数字,意为删除第几行
-I [链] 默认插入到第一条(注:越在前面的链,优先级越高),可以在[链]后面加数字,意为插入到第几条
-R [链] 修改链规则,可以指定行号修改,可以在[链]后面加数字,意为修改第几行规则(注:修改时完整规则不可省略,否则修改的规则中的源地址会自动变为0.0.0.0/0)
-j 指定动作,可选:DROP ACCEPT REJECT(注意动作需要为大写)
-p 指定协议,可选:tcp udp udplite icmp esp ah sctp等

-d [ip] 指定目的地址
# iptables -t filter -A OUTPUT -j DROP -p tcp -d 0.0.0.0
-s [ip] 指定来源地址

--doprt [port] 指定目的端口,使用此参数时,必须事先指定了使用哪种协议;可以指定端口范围,例如指定22到30端口: --dport 22:30
# iptables -t filter -A INPUT -j DROP -p tcp --dport 80
--sport [port] 指定来源端口,使用此参数时,必须事先指定了使用哪种协议;可以指定端口范围,例如指定22到30端口: --dport 22:30
注:若需要指定多个离散的端口,需要使用-m multiport扩展模块,dport和sport理论上都是是用了扩展功能,不进行指定多离散端口时,-m可以省略
# iptables -t filter -A OUTPUT -j DROP -p tcp -m multiport --sport 80,3389,22

-P [链] 修改链的默认规则,链后面跟动作,可选:DROP ACCEPT REJECT

-i [网卡] 当本机有多个网卡时,可以使用 -i 选项去匹配报文是通过哪张网卡流入本机的(注:只能作用于PREROUTING链、INPUT链、FORWARD链)
# iptables -t filter -A INPUT -i eth0 -j DOP
-o [网卡] 当本机有多个网卡时,可以使用 -o 选项去匹配报文是通过哪张网卡流出本机的(注:只能作用于FORWARD链、OUTPUT链、POSTROUTING链)

示例:

-s 用于匹配报文的源地址,可以同时指定多个源地址,每个IP用逗号隔开,也可以指定为网段。!为取反

# iptables -t filter INPUT -s 192.168.0.2,192.168.0.10 -j DROP
# iptables -t filter INPUT -s 192.168.0.0/24 -j ACCEPT
# iptables -t filter INPUT ! -s 192.168.0.0/24 -j ACCEPT

-d 用于匹配报文的目标地址,可以同时指定多个目标地址,每个IP用逗号隔开,也可以指定为一个网段

# iptables -t filter INPUT -d 192.168.0.2,192.168.0.10 -j DROP
# iptables -t filter INPUT -d 192.168.0.0/24 -j ACCEPT
# iptables -t filter INPUT ! -d 192.168.0.0/24 -j ACCEPT

-p 用于匹配报文的协议类型,可匹配的协议类型:tcp udp udplite icmp esp ah sctp

# iptables -t filter -I INPUT -p tcp -s 192.168.0.10 -j ACCEPT
# iptables -t filter -I INPUT -p udp -s 192.168.0.10 -j REJECT

-i 用于匹配报文是从哪张网卡流入本机的,只能作用于PREROUTING链、INPUT链、FORWARD链

# iptables -t filter -I INPUT -p tcp -i eth0 -j DROP

-o 用于匹配报文从哪张网卡流出本机,只能作用于FORWARD链、OUTPUT链、POSTROUTING链

# iptables -t filter -I OUTPUT -p tcp -o eth0 -j DROP

参考文档: iptables详解(4):iptables匹配条件总结之一-朱双印博客 (zsythink.net)

© 版权声明

相关文章