iptables之语法初步

Iptables语法概述

  Iptables指令可以划分为两个部份,一个是“Iptables指令参数”,另一个是“规则语法”。
Iptables的参数相当多,这并不代表需要记住所有的参数,实际使用的参数并不是太多,只需要记住几个特定的参数即可,而且Iptables的参数是有规则可循的。如下图所示:

iptables1

截图11

例1:列出Filter表中的所有内容


iptables –t filter –L

截图15

  执行的结果如下图所示。

Image00000

例2:将Filter表中的INPUT Chain内容显示出来


iptables –t filter –L INPUT

截图16

  执行的结果如下图所示。

Image00001

例3:将Filter表中所有内容清空


iptables –t filter –F

截图17

  执行的结果如下图所示。

Image00002

例4:将规则加入到Filter表的INPUT Chain


iptables –t filter –A INPUT –p icmp –j ACCEPT

截图18

  执行的结果如下图所示。

Image00003

例5:将FORWARD链的Default Policy设为DROP


iptables –t filter –P FORWARD DROP

截图19

  执行的结果如下图所示。

Image00004

例6:在INPUT Chain中插入新的规则


iptables –t filter –I INPUT 2 –p tcp –j ACCEPT

截图20

  执行的结果如下图所示。

Image00005

例7:替换INPUT Chain中已存在的规则


iptables –t filter –R INPUT 2 –p tcp –j ACCEPT

截图21

  执行的结果如下图所示。

Image00006

例8:删除INPUT Chain中已存在的规则


iptables –t filter –D INPUT 2

截图22

  执行的结果如上图图所示。

例9:NAT表操作

  如下图所示。

Image00007

Image00008

截图23

例10:managle表操作

  如下图所示。

截图12

截图24

例11:raw表操作

  如下图所示。

截图13

Iptables规则语法

操作命令(-A、-I、-D、-R、-P、-F)

查看命令(-[vnx]L)

一:-A <链名>

  APPEND,追加一条规则(放到最后)

例如:


iptables -t filter -A INPUT -j DROP

  在 filter 表的 INPUT 链里追加一条规则(作为最后一条规则), 匹配所有访问本机 IP 的数据包,匹配到的丢弃。

二:-I <链名> [规则号码]

  INSERT,插入一条规则

例如:


iptables -I INPUT -j DROP

  在 filter 表的 INPUT 链里插入一条规则(插入成第 1 条)。

例如:


iptables -I INPUT 3 -j DROP

  在 filter 表的 INPUT 链里插入一条规则(插入成第 3 条)。

注意:

1、-t filter 可不写,不写则自动默认是 filter 表
2、-I 链名 [规则号码],如果不写规则号码,则默认是 1
3、确保规则号码 ≤ (已有规则数 + 1),否则报错

三:-D <链名> <规则号码 | 具体规则内容>

  DELETE,删除一条规则

例如:


iptables -D INPUT 3

  删除 filter 表 INPUT 链中的第三条规则(不管它的内容是什么)。

例如:


iptables -D INPUT -s 192.168.0.1 -j DROP

  删除 filter 表 INPUT 链中内容为“-s 192.168.0.1 -j DROP”的规则 (不管其位置在哪里)

注意:

1、若规则列表中有多条相同的规则时,按内容匹配只删除序号最小的一条
2、按号码匹配删除时,确保规则号码 ≤ 已有规则数,否则报错
3、按内容匹配删除时,确保规则存在,否则报错

四:-R <链名> <规则号码> <具体规则内容>

  REPLACE,替换一条规则

例如:


iptables -R INPUT 3 -j ACCEPT

  将原来编号为 3 的规则内容替换为“-j ACCEPT”。

五:-P <链名> <动作>

  POLICY,设置某个链的默认规则

例如:


iptables -P INPUT DROP

  设置 filter 表 INPUT 链的默认规则是 DROP。

六:-F [链名]

  FLUSH,清空规则

例如:


iptables -F INPUT

  清空 filter 表 INPUT 链中的所有规则。

例如:


iptables -t nat -F PREROUTING

  清空 nat 表 PREROUTING 链中的所有规则

注意:

1、-F 仅仅是清空链中规则,并不影响 -P 设置的默认规则
2、-P 设置了 DROP 后,使用 -F 一定要小心!!!
3、如果不写链名,默认清空某表里所有链里的所有规则

七:-L [链名]

  LIST,列出规则
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
x:在 v 的基础上,禁止自动单位换算(K、M)
n:只显示 IP 地址和端口号码,不显示域名和服务名称

例如:


iptables -L

  粗略列出 filter 表所有链及所有规则。

例如:


iptables -t nat -vnL

  用详细方式列出 nat 表所有链的所有规则,只显示 IP 地址和端口号

例如:


iptables -t nat -vxnL PREROUTING

  用详细方式列出 nat 表 PREROUTING 链的所有规则以及详细数字,不反解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值