本文主要基于前人的文档总结了下常用的基础命令
基础命令
# 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
© 版权声明
文章版权归作者所有,未经允许请勿转载。