参数 -p, --protocol
范例 iptables -A INPUT -p tcp
说明 匹配通讯协议类型是否相符,可以使用 ! 运算符进行反向匹配,例如:
-p !tcp
意思是指除 tcp 以外的其它类型,如udp、icmp ...等。
如果要匹配所有类型,则可以使用 all 关键词,例如:
-p all

参数 -s, --src, --source
范例 iptables -A INPUT -s 192.168.1.1
说明 用来匹配封包的来源 IP,可以匹配单机或网络,匹配网络时请用数字来表示 子网掩码,例如:
-s 192.168.0.0/24
匹配 IP 时可以使用 ! 运算符进行反向匹配,例如:
-s !192.168.0.0/24。

参数 -d, --dst, --destination
范例 iptables -A INPUT -d 192.168.1.1
说明 用来匹配封包的目的地 IP,设定方式同上。

参数 -i, --in-interface
范例 iptables -A INPUT -i eth0
说明 用来匹配封包是从哪块网卡进入,可以使用通配字符 + 来做大范围匹配,例如:
-i eth+
表示所有的 ethernet 网卡
也可以使用 ! 运算符进行反向匹配,例如:
-i !eth0

参数 -o, --out-interface
范例 iptables -A FORWARD -o eth0
说明 用来匹配封包要从哪 块网卡送出,设定方式同上。

参数 --sport, --source-port
范例 iptables -A INPUT -p tcp --sport 22
说明 用来匹配封包的源端口,可以匹配单一端口,或是一个范围,例如:
--sport 22:80
表示从 22 到 80 端口之间都算是符合条件,如果要匹配不连续的多个端口,则必须使用 --multiport 参数,详见后文。匹配端口号时,可以使用 ! 运算符进行反向匹配。

参数 --dport, --destination-port
范例 iptables -A INPUT -p tcp --dport 22
说明 用来匹配封包的目的地端口号,设定方式同上

参数 --tcp-flags
范例 iptables -p tcp --tcp-flags SYN,FIN,ACK SYN
说明匹配 TCP 封包的状态标志,参数分为两个部分,第一个部分列举出想 匹配的标志,第二部分则列举前述标志中哪些有被设置,未被列举的标志必须是空的。TCP 状态标志包括:SYN(同步)、ACK(应答)、FIN(结束)、RST(重设)、URG(紧急)
、PSH(强迫推送) 等均可使用于参数中,除此之外还可以使用关键词 ALL 和 NONE 进行匹配。匹配标志时,可以使用 ! 运算符行反向匹配。

参数 --syn
范例 iptables -p tcp --syn
说明 用来表示TCP通信协议中,SYN位被打开,而ACK与FIN位关闭的分组,即TCP的初始连接,与 iptables -p tcp --tcp-flags SYN,FIN,ACK SYN 的作用完全相同,如果使用 !运算符,可用来 匹配非要求连接封包。

参数 -m multiport --source-port
范例 iptables -A INPUT -p tcp -m multiport --source-port
22,53,80,110
说明用来匹配不连续的多个源端口,一次最多可以匹配 15 个端口,可以使用 ! 运算符进行反向匹配。

参数 -m multiport --destination-port
范例 iptables -A INPUT -p tcp -m multiport
--destination-port 22,53,80,110
说明用来 匹配不连续的多个目的地端口号,设定方式同上

参数 -m multiport --port
范例 iptables -A INPUT -p tcp -m multiport --port
22,53,80,110
说明 这个参数比较特殊,用来匹配源端口和目的端口号相同的封包,设定方式同上。注意:在本范例中,如果来源端口号为
80目的地端口号为 110,这种封包并不算符合条件。

参数 --icmp-type
范例 iptables -A INPUT -p icmp --icmp-type 8
说明用来匹配 ICMP 的类型编号,可以使用代码或数字编号来进行 匹配。请打 iptables -p icmp --help 来查看有哪些代码可用。

参数 -m limit --limit
范例 iptables -A INPUT -m limit --limit 3/hour
说明 用来匹配某段时间内封包的平均流量,上面的例子是用来 匹配:每小时平均流量是否超过一次 3 个封包。
除了每小时平均次外,也可以每秒钟、每分钟或每天平均一次,默认值为每小时平均一次,参数如后: /second、 /minute、/day。 除了进行封 包数量的匹配外,设定这个参数也会在条件达成时,暂停封包的匹配动作,以避免因骇客使用洪水攻击法,导致服务被阻断。

参数 --limit-burst
范例 iptables -A INPUT -m limit --limit-burst 5
说明 用来匹配瞬间大量封包的数量,上面的例子是用来匹配一次同时涌入的封包是否超过 5 个(这是默认值),超过此上限的封包将被直接丢弃。使用效果同上。

参数 -m mac --mac-source
范例 iptables -A INPUT -m mac --mac-source
00:00:00:00:00:01
说明 用来匹配封包来源网络接口的硬件地址,这个参数不能用在 OUTPUT 和 POSTROUTING 规则链上,这是因为封包要送到网 卡后,才能由网卡驱动程序透过
ARP 通讯协议查出目的地的 MAC 地址,所以
iptables 在进行封包匹配时,并不知道封包会送到哪个网络接口去。

参数 --mark
范例 iptables -t mangle -A INPUT -m mark --mark 1
说明 用来匹配封包是否被表示某个号码,当封包被 匹配成功时,我们可以透过 MARK 处理动作,将该封包标示一个号码,号码最大不可以超过 4294967296。

参数 -m owner --uid-owner
范例
iptables -A OUTPUT -m owner --uid-owner 500
说明 用来匹配来自本机的封包,是否为某特定使用者所产生的,这样可以避免服务器使用 root 或其它身分将敏感数据传送出,可以降低系统被骇的损失。可惜这个功能无法
匹配出来自其它主机的封包。

参数 -m owner --gid-owner
范例 iptables -A OUTPUT -m owner --gid-owner 0
说明 用来匹配来自本机的封包,是否为某特定使用者群组所产生的,使用时机同上。

参数 -m owner --pid-owner
范例
iptables -A OUTPUT -m owner --pid-owner 78
说明 用来匹配来自本机的封包,是否为某特定进程所产生的,使用时机同上。

参数 -m owner --sid-owner
范例
iptables -A OUTPUT -m owner --sid-owner 100
说明 用来匹配来自本机的封包,是否为某特定 连接(Session ID)的响应封包,使用时机同上。

参数 -m state --state
范例
iptables -A INPUT -m state --state RELATED,ESTABLISHED
说明 用来匹配连接状态, 连接状态共有四种:INVALID、ESTABLISHED、NEW 和 RELATED。
INVALID 表示该封包的连接编号(Session ID)无法辨识或编号不正确。
ESTABLISHED 表示该封包属于某个已经建立的连接。
NEW 表示该封包想要起始一个连接(重设连接或将连接重导向)。
RELATED 表示该封包是属于某个已经建立的连接,所建立的新连接。例如:FTP-DATA 连接必定是源自某个 FTP 连接。

iptables [match] 常用封包匹配参数的更多相关文章

  1. Django ORM中常用字段和参数

    一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名,需要在model的Meta类中指定 db_table 参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时. ...

  2. Django框架(九) Django之ORM常用字段和参数

    ORM字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类型,范 ...

  3. Django ORM常用字段和参数

    常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类型,范围 ...

  4. python3开发进阶-Django框架的ORM常用字段和参数

    阅读目录 常用字段 字段合集 自定义字段 字段参数 关系参数 多对多的关联关系的三种方式 一.常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中 ...

  5. Django框架 之 ORM 常用字段和参数

    Django框架 之 ORM 常用字段和参数 浏览目录 常用字段 字段合集 自定义字段 字段参数 DateField和DateTimeField 关系字段 ForeignKey OneToOneFie ...

  6. Django框架(十一)—— 常用字段、参数、元信息、多对多关联关系

    目录 常用字段和参数 一.ORM字段 二.ORM参数 三.关系字段 1.ForeignKey 2.OneToOneFiled 3.ManyToManyField 四.元信息 五.多对多关联关系的三种方 ...

  7. re 模块 常用正则表达式符号 最常用的匹配语法

      常用正则表达式符号1 '.'     默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^'     匹配字符开头,若指定flags MULTILINE, ...

  8. Django框架(十)--常用字段、参数、元信息、多对多关联关系

    一.ORM字段 # AutoField() int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列 # IntegerField() ...

  9. day07 ORM中常用字段和参数

    day07 ORM中常用字段和参数 今日内容 常用字段 关联字段 测试环境准备 查询关键字 查看ORM内部SQL语句 神奇的双下划线查询 多表查询前提准备 常用字段 字段类型 AutoField in ...

随机推荐

  1. laravel-- 在laravel操作redis数据库的数据类型(string、哈希、无序集合、list链表、有序集合)

    安装redis和连接redis数据库 在controller头部引入 一.基本使用 public function RedisdDbOne() { // 清空Redis数据库 Redis::flush ...

  2. GDOI2017第四轮day1总结

    总的来说这场比赛,只能说是勉强正常发挥. 实在是知识水平有限,最后没能突破瓶颈. 有几个做得好的地方: 1.想好了在写题: 2.暴力也会拍 3.适当地放弃题. 要学习的东西: 1.Sg,线性基: 2. ...

  3. Python中输入和输出(打印)数据

    一个程序要进行交互,就需要进行输入,进行输入→处理→输出的过程.所以就需要用到输入和输出功能.同样的,在Python中,怎么实现输入和输出? Python3中的输入方式: Python提供了 inpu ...

  4. 新一代互联网传输协议QUIC浅析

    QUIC(Quick UDP Internet Connection)是谷歌制定的一种互联网传输层协议,它基于UDP传输层协议,同时兼具TCP.TLS.HTTP/2等协议的可靠性与安全性,可以有效减少 ...

  5. TCP keepalive的机理及使用

    TCP 是面向连接的 , 在实际应用中通常都需要检测对端是否还处于连接中.如果已断开连接,主要分为以下几种情况: 1.连接的对端正常关闭,即使用 closesocket 关闭连接. 2.连接的对端非正 ...

  6. Directx11教程(64) tessellation学习(6)-PN Triangles

    原文:Directx11教程(64) tessellation学习(6)-PN Triangles       前面我们用tessellation细分三角形或者四边形,产生的细分点都是在三角形或四边形 ...

  7. Directx教程(23) 简单的光照模型(2)

    原文:Directx教程(23) 简单的光照模型(2)    在工程myTutorialD3D11_16中,我在文件light.vs中定义了一个材质光源属性常量缓冲. //const buffer最好 ...

  8. iOS开发 底层抛析运行循环—— RunLoop

    http://blog.csdn.net/zc639143029/article/details/50012527 一.RunLoop基本概念 概念:程序的运行循环,通俗的来说就是跑圈. 1. 基本作 ...

  9. iOS 9 新特性之实现 3D Touch

    http://www.cocoachina.com/ios/20151027/13812.html 10月19号,周末,起床去吃早餐,吃完回来顺便去沃尔玛逛逛,把晚上的菜给买了,逛着逛着就来到了卖苹果 ...

  10. IDEA-servlet项目创建web项目

    准备:1. 安装jdk1.82. 安装tomcat9.0(idea只支持4.0  9.0的服务器) 一.创建并设置javaweb工程 1.创建javaweb工程File --> New --&g ...