iptablesnode
iptables指令用来设置Linux内核的ip过滤规则以及管理nat功能。iptables用于在Linux内核中设置、维护和检查IPv4数据包过滤规则表。能够定义几个不一样的表。每一个表包含许多内置链,也可能包含用户定义的链。每一个链都是一个规则列表,能够匹配一组数据包。每条规则都指定如何处理匹配的数据包。这被称为“目标”,它多是跳转到同一表中的用户定义链。shell
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。后端
1、语法浏览器
iptables [-t table] {-A|-D} chain rule-specification安全
iptables [-t table] -I chain [rulenum] rule-specification服务器
iptables [-t table] -R chain rulenum rule-specification网络
iptables [-t table] -D chain rulenumapp
iptables [-t table] -S [chain [rulenum]]负载均衡
iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...]dom
iptables [-t table] -N chain
iptables [-t table] -X [chain]
iptables [-t table] -P chain target
iptables [-t table] -E old-chain-name new-chain-name rule-specification = [matches...] [target]
match = -m matchname [per-match-options] target = -j targetname [per-target-options]
目前Linux内核支持3个相互独立的表:filter,过滤ip数据包;nat,配置nat功能;mangle,修改ip数据包。
filter是默认表,包含INPUT(发送给本机) 、OUTPUT(本机向外发送)、FORWARD(被路由出去)三个链。
nat表包含PREROUTING(修改刚收到的数据包) 、OUTPUT(在路由以前处理本机产生的数据包) 、POSTROUTING(修改将要发送的数据包)三个链。
mangle表包含PREROUTING(路由以前,修改收到的包) 、OUTPUT(路由以前,修改本机产生的包) 、INPUT(修改发送到本机的包) 、FORWARD (修改路由以后的包) 、POSTROUTING(修改将被本机发送的包)五个链。
Linux系统中的内置目标包括:ACCEPT(容许数据包经过)DROP(丢弃数据包) QUEUE(传递包到用户空间)RETURN(中止向后检测其余的规则,返回以前的条用规则处)
2、选项列表
选项能够按组来区分
命令 |
说明 |
-t table |
指定要管理的表 |
-A | --append chain rule-specification |
追加记录 |
-D | --delete chain rule-specification |
删除记录 |
-I | --insert chain [rulenum] rule-specification |
插入记录 |
-R | --replace chain [rulenum] rule-specification |
替换记录 |
-L | --list [chain] |
列出记录 |
-S | --list-rules [chain] |
列出已选择链的全部规则。若是没有选择任何链,则全部链都打印 |
-F | --flush [chain] |
删除指定的记录 |
-Z | --zero [chain [rulenum]] |
将数据计数和字节计数清零 |
-N | --new-chain chain |
用户自定义新链 |
-X | --delete-chain [chain] |
删除用户自定义链 |
-P | --policy chaintarget |
为指定的链设置策略 |
-E | --rename-chain old new |
重命名链 |
-h |
显示帮助信息 |
参数 |
说明 |
[!] –p | --protocol protocol |
指定协议类型tcp、udp、icmp、all,协议前加!标识否认 |
[!] –s | --sourceaddress[/mask][,… |
源地址 |
[!] –d --destinationaddress[/mask][,… |
目标 |
-j | --jump |
指定跳转的目标 |
-g | --goto chain |
这指定应在用户指定的链中继续处理。与“--jump”选项不一样,返回将再也不在此链中继续处理,而是在经过“--jump”调用咱们的链中继续处理。 |
[!] –i | --in-interface name |
接收数据包的接口名称(仅用于输入、转发和PREROUTING链的数据包)。当“!”参数在接口名称以前使用,意义被倒置。若是接口名以“+”结尾,则以此名称开头的任何接口都将匹配。若是省略此选项,则任何接口名称都将匹配。 |
-o | --out-interfacename |
指定数据包离开的网络接口 |
[!] –f | --fragment |
这意味着该规则仅指分段数据包的第二段和更多的片断。 |
-c | --set-counters packets bytes |
这使管理员可以初始化规则的数据包和字节计数器(在插入、追加、替换操做期间)。 |
其余选项 |
说明 |
-v | --verbose |
冗长的输出,该选项使List命令显示接口名称、规则选项(若是有的话)和TOS掩码。还列出了数据包计数器和字节计数器 |
-n | --numeric |
数字输出IP地址和端口号将以数字格式打印。默认状况下,程序将尝试将它们显示为主机名、网络名称或服务(只要适用)。 |
-x | --exact |
扩大数字。显示数据包和字节计数器的确切值,而不是只显示K‘s(1000倍)M’s(1000 K倍数)或G‘s(1000 m倍数)中的四舍五入数。此选项仅与-L命令相关。 |
--line-numbers |
当列出规则时,将行号添加到每条规则的开头,对应于该规则在链中的位置。 |
--modprobe=command |
在向链中添加或插入规则时,使用命令加载任何须要的模块(目标、匹配扩展等) |
3、匹配扩展
iptable可使用扩展的数据包匹配模块。它们以两种方式加载:隐式地,当指定“-p”或“—protocol”时,或者使用“-m”或“—match”选项,后面跟着匹配的模块名称;以后,根据特定模块的不一样,可使用各类额外的命令行选项。能够在一行中指定多个扩展匹配模块,而且能够在指定模块后使用“-h“或“--help“选项来接收特定于该模块的帮助。
1)addrtype
此模块根据数据包的地址类型匹配数据包。地址类型在内核网络堆栈中使用,并将地址分类为不一样的组。该组的确切定义取决于特定的第三层协议。地址类型能够是如下的几种:
UNSPEC,未指明的地址,例如,0.0.0.0。
UNICAST,单播地址。
LOCAL,本地地址。
BROADCAST,广播地址。
ANYCAST,选播包。
MULTICAST,多播地址。
BLACKHOLE,黑洞地址。
UNREACHABLE,不可达到的地址。
PROHIBIT,被禁止的地址。
THROW,FIXME。
NAT,FIXME。
XRESOLVE,
[!] --src-type type,若是源地址为给定类型,则匹配。
[!] --dst-type type,若是目标地址是给定类型的,则匹配。
--limit-iface-in,地址类型检查能够限制在数据包即将进入的接口上。此选项仅在PREROUTING、INPUT和FORWARD链中有效。它不能用“--limit-iface-out “选项来指定。
--limit-iface-out,地址类型检查能够限制在包将要输出的接口上。此选项仅在POSTROUTING、OUTPUT和FORWARD链中有效。它不能用“--limit-iface-in“选项指定。
2)ah
此模块与IPSec数据包的身份验证头中的Spis匹配。
[!] --ahspi spi[:spi]
3)cluster
容许您部署网关和后端负载共享集群,而不须要负载平衡器。此匹配要求全部节点都看到相同的数据包。所以,集群匹配决定该节点是否必须处理给定如下选项的数据包。
--cluster-total-nodesnum,设置集群中的总节点数。
[!] --cluster-local-nodenum,设置本地节点编号ID。
[!] --cluster-local-nodemaskmask,设置本地节点编号ID掩码。您可使用此选项而不是”--cluster-local-node“。
--cluster-hash-seedvalue,设置Jenkins散列的种子值。
|
下面的命令使全部节点都看到相同的数据包
|
4)comment
容许向任何规则添加注释(最多256个字符)。
--commentcomment
|
5)connbytes
主要用途是检测长时间下载,并在流量控制中使用较低优先级的频带来标记它们。每一个链接传输的字节也能够经过“conntrack -L”查看,并经过ctnetlink访问。
[!] --connbytesfrom[:to],将大于FROM,小于TO的链接中的数据包匹配,“!”用于匹配不在此范围内的数据包。
--connbytes-dir {original|reply|both},要考虑哪些数据包
--connbytes-mode {packets|bytes|avgpkt},是否检查数据包的数量、传输的字节数或到目前为止收到的全部数据包的平均大小(以字节为单位)。请注意,当“both”与“avgpkt”一块儿使用时,并且数据(主要是)只朝一个方向(例如HTTP)进行,平均数据包大小将约为实际数据包的一半。
|
6)connlimit
容许您限制每一个客户端IP地址(或客户地址块)到服务器的并行链接数。
[!] --connlimit-aboven,若是现有链接的数目大于n,则匹配
--connlimit-maskprefix_length,使用前缀长度对主机进行分组。对于IPv 4,这必须是介于(包括)0和32之间的数字。对于IPv 6,在0到128之间。
|
7)connmark
此模块匹配与链接关联的netfilter标记字段(可使用下面的CONNMARK目标进行设置)。
[!] --markvalue[/mask],将链接中的数据包与给定的标记值相匹配(若是指定了掩码,则在比较以前用标记进行逻辑分析)
8)conntrack
此模块与链接跟踪结合时,容许访问此数据包/链接的链接跟踪状态。
[!] --ctstatestatelist,Statelist是要匹配的链接状态的逗号分隔列表。下面列出了可能的状态。
[!] --ctprotol4proto,第4层协议匹配(按号码或名称)
[!] --ctorigsrcaddress[/mask]
[!] --ctorigdstaddress[/mask]
[!] --ctreplsrcaddress[/mask]
[!] --ctrepldstaddress[/mask],与original/reply、source/destination地址匹配。
[!] --ctorigsrcportport
[!] --ctorigdstportport
[!] --ctreplsrcportport
[!] --ctrepldstportport,匹配original/reply、source/destination端口(TCP/UDP/等)或GRE键
[!] --ctstatusstatelis,Statuslist是要匹配的链接状态的逗号分隔列表。下面列出了可能的状态
[!] --ctexpiretime[:time],将剩余生存期(以秒为单位)与给定值或范围(包括)进行匹配。
--ctdir {ORIGINAL|REPLY},匹配按指定方向流动的数据包。若是根本没有指定此标志,则匹配两个方向的数据包。
ctstate的有效值
INVALID,意味着数据包与已知的链接没有关联。
NEW,意味着该数据包已启动一个新链接,或与未在两个方向上看到数据包的链接相关联。
ESTABLISHED,意味着该数据包与看到两个方向的数据包的链接相关联。
RELATED,意味着数据包正在启动新链接,但与现有链接相关联,例如FTP数据传输或ICMP错误。
SNAT,虚拟状态,若是原始源地址与回复目的地不一样,则进行匹配。
DNAT,虚拟状态,若是原始目的地与应答源不一样,则进行匹配。
ctstatus的有效值
NONE,不是下列任何一项。
EXPECTED,这是一个预期的链接。
SEEN_REPLY,ConnTrack在两个方向都看到了数据包。
ASSURED,链接项不该提早过时。
CONFIRMED,确认链接:原始数据包已离开框。
9)dccp
[!] --source-port,--sportport[:port]
[!] --destination-port,--dportport[:port]
[!] --dccp-typesmask,当DCCP数据包类型为“掩码”之一时匹配。“掩码”是以逗号分隔的数据包类型列表。类型能够是:REQUEST、RESPONSE、DATA、ACK、DATAACK、CLOSEREQ、CLOSE、RESET、SYNC、SYNCACK、INVALID。
[!] --dccp-optionnumber,匹配若是设置DCP选项
10)dscp
此模块与IP报头中TOS字段中的6位DSCP字段匹配。Dscp已经取代了IETF中的TOS。
[!] --dscpvalue,匹配数值(十进制或十六进制)值[0-63]
[!] --dscp-classclass,匹配DiffServ类。此值多是BE、EF、AFxx或CSX类中的任何一个。而后,它将被转换为其相应的数值。
11)ecn
这容许您匹配IPv 4和TCP报头的ECN位。ECN是RFC3168中指定的显式拥塞通知机制。
[!] --ecn-tcp-cwr,若是设置了TCP ECN CWR(拥塞窗口接收)位,则匹配。
[!] --ecn-tcp-ece,若是设置了TCP ECN ECE(ECN Echo)位,则匹配。
[!] --ecn-ip-ect num,这与特定的IPv 4 ECT(ECN能力传输)相匹配。你必须在‘0’和‘3’之间指定一个数字。
12)esp
此模块与ipsec数据包的esp报头中的spis匹配。
[!] --espspispi[:spi]
13)hashlimit
哈希限制使用散列桶来表示一组链接的速率限制匹配(如极限匹配),使用单个iptables规则。分组能够完成perhostgroup(源和/或目标地址)和/或每一个端口。它使您可以表达“每组每一个时间量子N个数据包”:
源主机上的匹配:192.168.0.0/16期间每台主机每秒1000个数据包。
源Prot匹配:每项服务每秒100包(192.168.1.1)。
子网的匹配:10.0.0.0/8中每一个/28子网每分钟10000包。
--hashlimit-uptoamount[/second|/minute|/hour|/day],若是速率低于或等于amount/quantum,则匹配。它被指定为一个数字,带有可选的时间量子后缀;默认值是3/小时。
--hashlimit-aboveamount[/second|/minute|/hour|/day],若是速率大于amount/quantum,则匹配
--hashlimit-burstamount,要匹配的数据包的最大初始数量:当未达到上述指定的限制时,该数目将被从新充电一次,最多可达到此数目;默认值为5。
--hashlimit-mode {srcip|srcport|dstip|dstport},...,要考虑的以逗号分隔的对象列表。若是给出了“--hash-limit-mode“选项,hashlimit就像limit同样,可是在进行哈希内务管理时会花费很大的代价。
--hashlimit-srcmaskprefix,当使用“--hashlimit-mode“时,所遇到的全部源地址都将根据给定的前缀长度进行分组,所以建立的子网将受到哈希限制。前缀必须介于(包括)0和32之间。
--hashlimit-dstmaskprefix,相似“--hashlimit-srcmask“,可是对于目标地址。
--hashlimit-namefoo,“/proc/net/ipt_hashlimit/foo“条目的名称。
--hashlimit-htable-sizebuckets,哈希表的桶数。
--hashlimit-htable-maxentries,散列中的最大项。
--hashlimit-htable-expiremsec,在散列条目过时多少毫秒以后。
--hashlimit-htable-gcintervalmsec,垃圾收集间隔之间有多少毫秒。
14)helper
此模块匹配与特定链接辅助程序相关的数据包。
[!] --helperstring,匹配与指定的链接辅助程序相关的数据包。对于默认端口上与ftp会话相关的数据包,字符串能够是“ftp”。对于其余端口,将-portnr附加到值,即。“ftp-2121”
15)icmp
若是指定了“--protocol icmp”,则可使用此扩展。它提供了如下选项
[!] --icmp-type{type[/code]|typename},这容许指定icmp类型,它能够是数值icmp类型、类型/代码对,也能够是命令显示的icmp类型名称之一。
16)iprange
这与给定的任意范围的ip地址匹配。
[!] --src-rangefrom[-to],匹配指定范围内的源IP。
[!] --dst-rangefrom[-to],匹配指定范围内的目标IP。
17)length
此模块将数据包的第3层有效载荷(例如第4层包)的长度与特定值或范围相匹配。
[!] --lengthlength[:length]
18)limit
此模块使用令牌桶过滤器以有限的速度匹配。使用此扩展的规则将匹配,直到达到此限制(除非“!”使用标志)。它能够与日志目标结合使用,提供有限的日志记录。
--limitrate[/second|/minute|/hour|/day],最大平均匹配率:指定为数字,带有可选的‘/秒’、‘/分钟’、‘/小时’或‘/日’后缀;默认值为3/小时
--limit-burstnumber,要匹配的数据包的最大初始数量:当未达到上述指定的限制时,此数字将被从新充电一次,最多可达到此数目;默认值为5。
19)mac
[!] --mac-sourceaddress,匹配源MAC地址。它必须是XX:XX:XX:XX:XX:XX格式。请注意,这只对来自以太网设备并进入PREROUTING、FORWARD或INPUT链的数据包有意义。
20)mark
此模块匹配与数据包关联的netfilter标记字段(可使用下面的标记目标设置该标记)。
[!] --markvalue[/mask],将数据包与给定的无符号标记值匹配(若是指定了掩码,则在进行比较以前,该掩码将与掩码进行逻辑链接)
21)multiport
此模块匹配一组源端口或目标端口。最多可指定15个端口。端口范围(端口:端口)算做两个端口。它只能与“-p tcp“或”-p udp“一块儿使用。
[!] --source-ports,--sportsport[,port|,port:port]...,若是源端口是给定端口之一,则匹配。旗杆运动是这个选项的方便别名。多个端口或端口范围使用逗号分隔,端口范围使用冒号指定。所以,53,1024:65535将匹配端口53,全部端口都是从1024到65535。
[!] --destination-ports,--dportsport[,port|,port:port]..,若是目标端口是给定端口之一,则匹配。标志--dports是此选项的方便别名。
[!] --portsport[,port|,port:port]...,若是源端口或目标端口等于给定端口之一,则匹配。
22)owner
对于本地生成的数据包,此模块试图匹配数据包建立者的各类特征。此匹配仅在OUTPUT链和POSTROUTING链中有效。转发的数据包没有任何与其相关联的套接字。来自内核线程的数据包确实有一个套接字,但一般没有全部者。
[!] --uid-ownerusername
[!] --uid-owneruserid[-userid],若是数据包套接字的文件结构(若是有)是给定用户拥有的,则匹配。您还能够指定数字UID或UID范围。
[!] --gid-ownergroupname
[!] --gid-ownergroupid[-groupid],若是数据包套接字的文件结构属于给定组,则匹配。您还能够指定数字GID或GID范围。
[!] --socket-exists,若是数据包与套接字相关联,则匹配。
23)physdev
该模块在桥端口输入和输出设备上匹配,这些输入和输出设备被奴役到桥接设备上。此模块是支持透明桥接IP防火墙的基础结构的一部分,仅适用于2.5.44版本以上的内核版本。
[!] --physdev-inname,接收数据包的桥端口的名称(仅用于INPUT、FORWARD和PREROUTING链的数据包)。若是接口名以“+“结尾,则以此名称开头的任何接口都将匹配。若是数据包没有经过桥接设备到达,则此数据包将与此选项不匹配,除非“!”被利用了。
[!] --physdev-outname,要发送数据包的桥接端口的名称(用于FORWARD、OUTPUT和POSTROUTING链的数据包)。若是接口名以“+“结尾,则以此名称开头的任何接口都将匹配。注意,在NAT和Magle输出链中,不能在桥输出端口上匹配,可是在过滤器输出链中能够匹配。若是数据包不会由网桥设备离开,或者若是它还不知道输出设备将是什么,那么该数据包将与此选项不匹配,除非‘!’使用。
[!] --physdev-is-in,若是数据包已经过网桥接口输入,则匹配。
[!] --physdev-is-out,若是数据包将经过网桥接口离开,则匹配。。
[!] --physdev-is-bridged,若是数据包正在桥接,所以不被路由,则匹配。这仅在FORWARD链和POSTROUTING链中有用。
24)pkttype
此模块与链路层数据包类型匹配。
[!] --pkt-type {unicast|broadcast|multicast}
25)policy
此模块与IPsec用于处理数据包的策略相匹配。
--dir{in|out},用于选择是否匹配用于解除封装的策略或将用于封装的策略。in在PREROUTING、INPUT、FORWARD链中有效,out在POSTROUTING、OUTPUT、FORWARD链中有效。
--pol {none|ipsec},若是数据包要接受ipsec处理,则匹配。
--strict,选择是否匹配确切的策略,或者若是策略的任何规则与给定的策略匹配,则选择匹配。
[!] --reqidid,匹配策略规则的reqid。可使用setkey(8)指定REQID,使用unique:id做为级别。
[!] --spi spi,匹配SA的SPI。
[!] --proto {ah|esp|ipcomp},匹配封装协议。
[!] --mode {tunnel|transport},匹配封装模式。
[!] --tunnel-srcaddr[/mask],匹配隧道模式sa的源端点地址。只有和“--mode tunnel“一块儿使用有效。
[!] --tunnel-dstaddr[/mask],匹配隧道模式sa的目标端点地址。只有和“--mode tunnel“一块儿使用有效。
--next,启动策略规范中的下一个元素,只有和“--strict.“一块儿使用有效。
26)quota
经过减小每一个数据包的字节计数器来实现网络配额。
--quotabytes,配额(以字节为单位)。
27)rateest
该速率估计器能够与RATEEST目标收集的估计费率相匹配。它支持绝对bps/pps值匹配,比较两种速率估计量,并匹配两种速率估计量之间的差别。
--rateest1name,第一比率估计器的名称。
--rateest2name,第二比率估计器的名称。
--rateest-delta,将差别与给定的比率进行比较
--rateest1-bpsvalue,
--rateest2-bpsvalue,每秒比较字节
--rateest1-ppsvalue,
--rateest2-ppsvalue,每秒比较包
[!] --rateest-lt,若是速率小于给定的速率/估计量,则匹配
[!] --rateest-gt,若是速率大于给定的速率/估计量,则匹配
[!] --rateest-eq,若是速率等于给定的速率/估计量,则匹配
|
28)realm
这与路由领域匹配。路由域用于复杂的路由设置,涉及到诸如BGP这样的动态路由协议。
[!] --realmvalue[/mask],匹配给定的领域号(可选掩码)。若是不是一个数字,则值能够是“/etc/iproute2/rt_realms”中的命名域(在这种状况下不能使用掩码)。
29)recent
容许您动态建立IP地址列表,而后以几种不一样的方式与该列表进行匹配。例如,您能够建立一个“坏蛋”列表,列出试图链接到防火墙上的端口139的人,而后在不考虑这些包的状况下丢弃它们的全部将来数据包。--set、--rcheck、--update、--remove是相互排斥的。
--namename,指定要用于命令的列表。若是没有指定名称,则将使用默认名称。
[!] --set,他将把数据包的源地址添加到列表中。若是源地址已经在列表中,这将更新现有条目。这将永远返回成功(或失败,若是传入!)。
--rsource,匹配/保存最近列表中每一个数据包的源地址。这是默认的
--rdest,匹配/保存最近列表中每一个数据包的目标地址
[!] --rcheck,检查数据包的源地址是否当前在列表中。
[!] --update,相似“--rcheck”,但若是匹配,它将更新“最后一次看到”时间戳。
[!] --remove,检查数据包的源地址是否当前在列表中,若是是,该地址将从列表中删除,规则将返回true。若是找不到地址,则返回false。
--secondsseconds,此选项必须与“--rcheck”或“--update”之一结合使用.使用时,这将缩小匹配范围,仅当地址在列表中并在最后给定的秒内被看到时才发生。
--hitcounthits,此选项必须与“--rcheck”或“--update”之一结合使用。使用时,这将缩小匹配范围,仅当地址在列表中且数据包已接收到大于或等于给定值时才发生。此选项可与“--seconds”一块儿使用,以建立一个更窄的匹配,须要在特定的时间范围内执行必定数量的命中。HitCount参数的最大值由xt_recent内核模块的“ip_pkt_list_tot”参数给出。在命令行中超过此值将致使拒绝该规则。
--rttl,此选项只能与“--rcheck”或“--update”中的一个一块儿使用。当使用时,这将缩小匹配范围,只有当地址在列表中,而且当前数据包的ttl与符合“--set”规则的数据包匹配时才会发生匹配。这多是有用的,若是你有问题的人伪造他们的源地址,以便经过这个模块拒绝其余人访问你的网站经过发送虚假的数据包给你。
|
“/proc/net/xt_new/*”是关于每一个列表中每一个条目的地址和信息的当前列表。能够读取“/proc/net/xt_new/”中的每一个文件来查看当前列表,或者使用如下命令编写两个文件来修改列表:
|
模块自己接受参数,默认显示以下:
ip_list_tot=100,每一个表记住的地址数
ip_pkt_list_tot=20,记住的每一个地址的数据包数
ip_list_hash_size=0,散列表大小。0意味着根据ip_list_tot(默认值:512)计算它。
ip_list_perms=0644,“/proc/net/xt_recent/*”的全新啊
ip_list_uid=0,“/proc/net/xt_recent/*”的拥有者ID。
ip_list_gid=0,“/proc/net/xt_recent/*”的拥有者组ID。
30)sctp
[!] --source-port,--sportport[:port]
[!] --destination-port,--dport port[:port]
[!] --chunk-types {all|any|only} chunktype[:flags] [...],
大写中的标志字母表示若是设置将匹配标志,小写表示匹配(若是未设置)。
Chunk types: DATA INIT INIT_ACK SACK HEARTBEAT HEARTBEAT_ACK ABORT SHUTDOWN SHUTDOWN_ACK ERROR COOKIE_ECHO COOKIE_ACK ECN_ECNE ECN_CWR SHUTDOWN_COMPLETE ASCONF ASCONF_ACK
chunk type:available flags
DATA:U B E u b e
ABORT:T t
SHUTDOWN_COMPLETE:T t
例子
|
31)set
该模块匹配可由ipset(8)定义的IP集。
[!] --match-setsetnameflag[,flag]..,其中flag是用逗号分隔的src或dst规范的列表,其中最多只能有6个。
将匹配数据包,对于这些数据包(若是SET类型为ipportmap),源地址和目标端口对能够在指定的集合中找到。若是指定集的集合类型为单维(例如ipmap),则该命令将匹配在指定集中能够找到源地址的数据包。 |
若是选项与其余扩展的选项不冲突,则能够将选项“--match-set”替换为“--set”。
32)socket
若是能够经过在数据包上执行套接字查找找到打开的套接字,则他的匹配项。
--transparent,忽略非transparent的包。
33)state
当与链接跟踪相结合时,此模块容许访问此数据包的链接跟踪状态。
[!] --statestate,其中状态是要匹配的链接状态的逗号分隔列表。可能的状态是无效的,这意味着因为某些缘由没法识别数据包,其中包括内存不足和ICMP错误,这些错误与任何已知的链接不相对应,这意味着该数据包与一个已经在两个方向上看到数据包的链接相关联,新的意思是该数据包已经启动了一个新链接,或以其余方式与没有在两个方向上看到数据包的链接相关联,以及相关的意思是,该数据包正在启动一个新链接,但与现有链接相关联,例如FTP数据传输或ICMP错误。
34)statistic
该模块基于必定的统计条件对数据包进行匹配。它支持使用“--mode”选项设置的两种不一样的模式。
--modemode,设置匹配规则的匹配模式,所支持的模式为随机模式和nth模式。
--probabilityp,将随机匹配数据包的几率从0设置为1。它只适用于随机模式。
--everyn,每第n包匹配一包。它只适用于nth模式。
--packetp,为nth模式设置初始计数器值(0<=p<=n-1,默认值0)
35)string
该模块经过使用某种模式匹配策略来匹配给定的字符串。它须要一个Linux内核>=2.6.14。
--algo {bm|kmp},选择模式匹配策略(bm=Boyer-Moore, kmp=Knuth-Pratt- Morris)
--fromoffset,设置它开始寻找匹配的偏移量。若是未经过,默认为0。
--tooffset,设置它开始寻找匹配的偏移量。若是未经过,则默认为数据包大小。
[!] --stringpattern,匹配给定的模式。
[!] --hex-string pattern,匹配以十六进制表示的给定模式。
36)tcp
若是指定了“--protocol TCP”,则可使用这些扩展。它提供了如下选项:
[!] --source-port,--sportport[:port],源端口或端口范围规范。这能够是服务名称,也能够是端口号。若是省略第一个端口,则假定为“0”;若是省略最后一个端口,则假定为“65535”。若是第一个端口大于第二个端口,它们将被交换
[!] --destination-port,--dportport[:port],目的端口或端口范围规范。“--dport”的方便别名。
[!] --tcp-flagsmaskcomp,匹配指定的TCP标志。第一个参数掩码是咱们应该检查的标志,写成逗号分隔列表,第二个参数comp是必须设置的以逗号分隔的标志列表。flag能够是SYN ACK FIN RST URG PSH ALL NONE
|
[!] --syn,只匹配设置了SYN位,而且清除了ACK,RST,FIN为的包。等价于“--tcp-flags SYN,RST,ACK,FIN SYN”
[!] --tcp-optionnumber,若是设置了tcp选项就匹配。
37)tcpmss
这与TCP标头的TCPMSS(最大段大小)字段匹配。您只能在TCP SYN或SYN/ACK数据包上使用这一点,由于MSS只在链接启动时的TCP握手期间协商。
[!] --mssvalue[:value],匹配给定的tcp mss值或范围。
38)time
若是数据包到达时间/日期在给定范围内,则匹配。全部选项都是可选的,但在指定的时候都是可选的。
--datestartYYYY[-MM[-DD[Thh[:mm[:ss]]]]]
--datestopYYYY[-MM[-DD[Thh[:mm[:ss]]]]],仅在给定时间内匹配,必须采用ISO 8601“T”表示法。可能的时间范围是1970-01-01T00:00:00到2038-01-19T04:17:07。若是没有指定“--datestart”或“--datestop”,则将分别默认为1970-01-01和2038-01-19。
--timestarthh:mm[:ss]
--timestophh:mm[:ss],只有在指定的白天匹配。可能的时间范围是00:00到23:59:59。容许前导零(例如“06:03”),并正确解释为基数-10。
[!] --monthdaysday[,day...],只在一个月的指定日期匹配。可能值为1到31。请注意,在没有第31天的月份中,指定31固然不匹配;28天或29天的2月也是如此。
[!] --weekdaysday[,day...],只有在给定的工做日匹配。可能的值分别是Mon、Tue、Wed、Thu、Fri、sat、Sun或1到7之间的值。您也可使用两个字符的变体(Mo,Tu等)。
--utc,把给--datestart、--datestop、--timestart、--timestop的时间解释为UTC。
--localtz,把给--datestart、--datestop、--timestart、--timestop的时间解释为本地时间(默认)。
|
39)tos
此模块匹配IPv 4报头中的8位服务类型字段(即包括IPv 6报头中的“优先级”比特)或(也包括8位)优先级字段。
[!] --tos value[/mask],匹配具备给定TOS标记值的数据包。若是指定了mask,则在比较以前使用TOS标记进行逻辑分析。
[!] --tos symbol,在为IPv4使用tos匹配时,您能够指定一个符号名。能够经过使用“-m tos-h”调用iptables来得到已识别的TOS名称的列表。请注意,这意味着掩码为0x3F,即除ECN位外的全部掩码。
40)ttl
此模块匹配ip报头中活动字段的时间。
--ttl-eqttl,若是和给定的ttl值相等,那么就匹配。
--ttl-gtttl,若是大于给定的ttl值,那么就匹配。
--ttl-ltttl,若是小于给定的ttl值,那么就匹配。
41)u32
U32测试从数据包中提取的多达4个字节的数量是否具备指定的值。要提取哪些内容的规范足够通用,能够在给定的偏移量下从tcp报头或有效负载中找到数据。
[!] --u32tests,该参数至关于下面描述的一种小型语言中的程序。
tests := location "=" value | tests "&&" location "=" value value := range | value "," range range := number | number ":" number |
一个单数,n,被解释为n:n。n:m被解释为数的范围>=n和<=m。
location := number | location operator number operator := "&" | "<<" | ">>" | "@" |
操做符‘&’,‘<<’,‘>>‘和‘&&’均与C中相同。‘=’其实是一个集合成员资格运算符,值语法描述了一个集合。‘@’操做符容许进入下一个标头,并在下面进一步描述。目前,对测试的大小有一些人为的实现限制。
*u32参数中“=”不超过10个,“&&”不超过9个;
*每一个值不超过10个范围(和9个逗号);
*每一个地点不超过10个number(和9个操做符);
要描述位置的含义,请想象下面解释它的机器。有三个寄存器:a是char*类型,最初IP报头的地址;B和C是无符号32位整数,最初为零。指令是:
number B = number; C = (*(A+B)<<24) + (*(A+B+1)<<16) + (*(A+B+2)<<8) + *(A+B+3) &number C = C & number << number C = C << number >> number C = C >> number @number A = A + C; |
任何对[SKB->Data,SKB->End]外部内存的访问都会致使匹配失败。不然,计算结果是C的最终值。容许使用空白,但在测试中不须要。可是,出如今其中的字符可能须要shell引用,所以将参数括在引号中是个好主意。
例子代码
|
|
|
42)udp
若是指定了“--protocol udp”,则可使用这些扩展。它提供了如下选项:
[!] --source-port,--sport port[:port],源端口或端口范围规范。
[!] --destination-port,--dportport[:port],目的端口或端口范围规范。
43)unclean
此模块不须要任何选项,而是尝试匹配看起来格式错误或不寻常的数据包。
4、目标扩展
1)AUDIT
此目标容许为到达目标的数据包建立审核记录。它能够用来记录接受、丢弃和拒绝的数据包。
--type {accept|drop|reject},设置审计记录类型。
|
2)CHECKSUM
这个目标容许有选择地处理损坏的/旧的应用程序。它只能在mangle表上使用。
--checksum-fill,计算并填写缺乏校验和的数据包中的校验和。若是您须要处理诸如dhcp客户端之类的旧应用程序,这些应用程序不能很好地处理校验和卸载,但不但愿在设备中禁用校验和卸载,这一点尤为有用。
3)CLASSIFY
该模块容许您设置skb->priority(从而将数据包分类为特定的CBQ类)。
--set-classmajor:minor,设置主类和次要类值。即便没有提供0x前缀,这些值也老是被解释为十六进制。
4)CLUSTERIP
此模块容许您配置一个简单的节点集群,这些节点共享特定的IP和MAC地址,而无需在其前面显式负载均衡器。链接是静态地分布在此集群中的节点之间的。
--new,建立一个新的集群IP。对于给定的集群IP,始终必须在第一条规则上设置这一项。
--hashmodemode,指定hash模式,能够是:sourceip,sourceip-sourceport,sourceip-sourceport-destport。
--clustermacmac,指定集群IP MAC地址。必须是链路层多播地址。
--total-nodesnum,该集群中节点总数的数目。
--local-nodenum,此集群中的本地节点号。
--hash-initrnd,指定用于哈希初始化的随机种子。
5)CONNMARK
此模块设置与链接关联的netfilter标记值。标记宽32位。
--set-xmarkvalue[/mask],将mask定义的为归零,value定义的位和ctmark异或。
--save-mark[--nfmasknfmask] [--ctmask ctmask],使用给定的掩码将数据包标记(Nfmark)复制到链接标记(Ctmark)。新的nfmark值肯定以下:
ctmark = (ctmark & ~ctmask) ^ (nfmark & nfmask)
例如,ctmask定义要清除哪些位,nfmask中要将哪些nfmark为和ctmark进行异或。默认为0xFFFFFFFF。
--restore-mark[--nfmasknfmask] [--ctmask ctmask],只有在mangle表中使用。
--and-markbits,ctmark和bits进行与操做,助记符:--set-xmark 0/invbits。
--or-markbits,ctmark和bits进行或操做,助记符:--set-xmark bits/bits。
--xor-markbits,ctmark和bits进行异或操做,助记符:--set-xmark bits/0。
--set-markvalue[/mask],置位链接标记。若是指定了掩码,则只修改掩码中设置的位。
--save-mark[--maskmask],将nfmark复制到ctmark。若是指定了掩码,则只复制这些位。
--restore-mark[--maskmask],将cctmark复制到nfmark。若是指定了掩码,则仅复制这些位。这在mangle表中是有效的
6)CONNSECMARK
此模块将安全标记从数据包复制到链接(若是没有标记),从链接复制回数据包(也只有在未标记的状况下)。一般与SECMARK一块儿使用,它仅在mangle表中有效。
--save,若是数据包有安全标记,若是未标记链接,请将其复制到链接中。
--restore,若是数据包没有安全标记,而链接有安全标记,则将安全标记从链接复制到数据包。
7)DNAT
此目标仅在nat表、PREROUTING和OUTPUT链以及仅从这些链调用的用户定义链中有效。它指定应修改数据包的目标地址(而且此链接中的全部将来数据包也将被破坏),而且应该中止检查规则。它须要如下一种选择:
--to-destination[ipaddr][-ipaddr][:port[-port]],它能够指定单个新的目标IP地址、包含的IP地址范围以及可选的端口范围(只有在规则还指定“-p tcp”或“-p udp”时才有效)。若是未指定端口范围,则永远不会修改目标端口。若是未指定IP地址,则只修改目标端口。
--random,若是使用选项“--random”,则端口映射将是随机的(内核>=2.6.22)。
--persistent,为每一个链接提供相同的源/目标地址。这取代了同一个目标。对持久映射的支持可从2.6.29-Rc2中得到。
8)DSCP
此目标容许在IPv 4数据包的TOS报头中更改DSCP位的值。因为这操做一个数据包,它只能在mangle表中使用。
--set-dscpvalue,将DSCP字段设置为数字值(能够是十进制或十六进制)。
--set-dscp-classclass,将DSCP字段设置为DiffServ类。
9)ECN
这个目标容许有选择地围绕已知的ECN黑洞工做。它只能在mangle表中使用。
--ecn-tcp-remove,从TCP报头中删除全部ECN位。固然,它只能与“-p tcp”一块儿使用。
10)LOG
打开匹配数据包的内核日志记录。当将此选项设置为规则时,Linux内核将经过内核日志(在其中可使用dmesg或sy d(8)读取)打印全部匹配数据包(如大多数IP报头字段)上的一些信息。这是一个“非终止目标”,即在下一个规则中继续进行规则遍历。所以,若是要记录拒绝的数据包,请使用两个具备相同匹配条件的单独规则,首先使用目标日志,而后删除(或拒绝)。
--log-levellevel,日志记录级别。
--log-prefixprefix,前缀为指定prefix的日志消息;长度可达29个字母,用于区分日志中的消息。
--log-tcp-sequence,记录TCP序列号。若是用户能够读取日志,则这是一种安全风险。
--log-tcp-options,从TCP数据包报头log选项
--log-ip-options,从IP数据包报头log选项
--log-uid,记录生成数据包的进程的userid
11)MARK
此目标用于设置与数据包关联的Netfilter标记值。目标只能在mangle表中使用。例如,它能够与基于fwmark的路由一块儿使用(须要iucte 2)。标记字段宽32位。
--set-xmarkvalue[/mask],将掩码和XOR值给出的位归零到数据包标记(“nfmark”)中。若是省略掩码,则假定为0xFFFFFFFF。
--set-markvalue[/mask],将掩码和OR值给出的位归零到数据包标记(“nfmark”)中。若是省略掩码,则假定为0xFFFFFFFF。
--and-markbits,将nfmark和bits进行与操做,助记符:--set-xmark 0/invbits。
--or-markbits,将nfmark和bits进行或操做,助记符:--set-xmark bits/bits。
--xor-markbits,将nfmark和bits进行异或操做,助记符:--set-xmark bits/0。
12)MASQUERADE
此目标仅在NAT表中的POSTROUTING链中有效。它应该只用于动态分配的IP(拨号)链接:若是您有一个静态IP地址,则应该使用SNAT目标。假装至关于指定一个映射到数据包将要输出的接口的IP地址,但也会致使链接在接口降低时被遗忘。当下一个拨号不太可能具备相同的接口地址时,这是正确的行为(所以,任何已创建的链接不管如何都会丢失)。只有一个选择:
--to-portsport[-port],这指定了要使用的一系列源端口,覆盖默认的SNAT源端口-选择启发式(见上文)。
--random,随机化源端口映射,若是使用选项-随机,则端口映射将是随机的(内核>=2.6.21)。
13)MIRROR
这是一个实验演示目标,它反转IP报头中的源字段和目标字段,并从新传输数据包。它仅在输入链、前向链和PREROUTING链以及仅从这些链调用的用户定义链中有效。请注意,任何数据包过滤链、链接跟踪或NAT都看不到传出数据包,以免循环和其余问题。
14)NETMAP
此目标容许您静态地将整个地址网络映射到另外一个地址网络。它只能从NAT表中的规则中使用。
--toaddress[/mask],要映射到的网络地址。生成的地址将如下方式构造:掩码中的全部位都是重新的“地址”中填充的。掩码中的全部零位都是从原始地址填充的。
15)NFLOG
此目标提供匹配数据包的日志记录。当为规则设置此目标时,Linux内核将数据包传递给加载的日志后端以记录数据包。这一般与nfnetlink_log做为日志后端结合使用,后者将经过NetLink套接字将数据包多播到指定的多播组。一个或多个用户空间进程能够订阅组以接收分组。与日志同样,这是一个不终止的目标,即在下一个规则中继续进行规则遍历。
--nflog-groupnlgroup,数据包所在的NetLink组(1~2^32-1)(仅适用于nfnetlink_log)。默认值为0。
--nflog-prefixprefix,一个前缀字符串,包含在日志消息中,长度可达64个字符,用于区分日志中的消息。
--nflog-rangesize,要复制到用户空间的字节数(仅适用于nfnetlink_log)。nfnetlink_log实例能够指定它们本身的范围,此选项将重写它。
--nflog-thresholdsize,在将数据包发送到用户空间(仅适用于nfnetlink_log)以前,要在内核中排队的数据包数。较高的值会减小每一个数据包的开销,但会增长延迟,直到数据包到达用户空间为止。默认值为1。
16)NFQUEUE
此目标是QUEUE目标的扩展。与QUEUE相反,它容许您将数据包放入任何特定队列中,该队列由其16位队列号标识。它只能与内核版本2.6.14或更高版本一块儿使用,由于它须要nfnetlink_Queue内核支持。队列平衡选项在Linux2.6.31中添加,队列旁路在2.6.39中添加。
--queue-numvalue,这指定要使用的队列号。有效队列号为0至65535。默认值为0。
--queue-balancevalue:value,这指定要使用的队列范围。而后在给定的队列中平衡数据包。
--queue-bypass,默认状况下,若是在NFQUEUE上没有用户空间程序侦听,那么全部要排队的数据包都会被丢弃。当使用此选项时,将悄悄绕过NFQUEUE规则。包将转到下一个规则。
17)NOTRACK
此目标禁用与该规则匹配的全部数据包的链接跟踪,只能在raw表中使用。
18)RATEEST
RATEEST目标收集统计数据,执行速率估计计算,并将结果保存起来,以便使用最优匹配进行之后的评估。
--rateest-namename,将匹配的数据包计数到按名称引用的池中,这是能够自由选择的。
--rateest-intervalamount{s|ms|us},速率测量间隔,以秒、毫秒或微秒为单位。
--rateest-ewmalogvalue,速率测量平均时间常数。
19)REDIRECT
此目标仅在NAT表、PREROUTING和输出链以及仅从这些链调用的用户定义链中有效。它将数据包重定向到机器自己,方法是将目标IP更改成传入接口的主地址(本地生成的数据包映射到127.0.0.1地址)。
--to-ports port[-port],这将指定要使用的目的端口或端口范围:不然,目标端口将永远不会更改。只有配合选项“-p tcp”和“-p udp”才有用。
--random,若是使用选项“--random”,则端口映射将是随机的(内核>=2.6.22)
20)REJECT
这用于响应匹配的数据包发送错误数据包:不然,它等同于丢弃,所以它是一个终止目标,结束规则遍历。此目标仅在输入、前向和输出链以及用户定义的仅从这些链调用的链中有效。如下选项控制返回的错误数据包的性质:
--reject-withtype,type能够是icmp-net-unreachable, icmp-host-unreachabl,icmp-port-unreachable,icmp-proto-unreachable,icmp-net-prohibited,icmp-host-prohibited,icmp-admin-prohibited
21)SAME
相似于SNAT/DNAT,取决于链:它接受一系列地址“--to 1.2.3.4-1.2.3.7”。为每一个链接提供相同的源/目标地址。
--toipaddr[-ipaddr],要将源映射到的地址。能够为多个范围指定不止一次。
--nodst,在选择新的源-ip时,不要在计算中使用目标-ip。
--random,端口映射将强制随机化,以免基于端口预测的攻击(内核>=2.6.21)。
22)SECMARK
这用于设置与数据包关联的安全标记值,以供安全子系统(如SELinux)使用。它只在残缺表中有效。标记宽32位。
--selctxsecurity_context
23)SET
此模块从ip集中添加和/或删除可由ipset(8)定义的项。
--add-setsetnameflag[,flag...],将数据包的地址/端口添加到集合中
--del-setsetnameflag[,flag...],从集合中删除数据包的地址/端口
24)SNAT
此目标仅在NAT表中的POSTROUTING链中有效。它指定应该修改数据包的源地址(而且这个链接中的全部将来数据包也将被破坏),而且应该中止检查规则。它须要一种选择
--to-sourceipaddr[-ipaddr][:port[-port]],它能够指定单个新的源IP地址、包含的IP地址范围以及可选的端口范围(只有在规则还指定-p TCP或-p UDP时才有效)。 若是未指定端口范围,则512如下的源端口将映射到512如下的其余端口:512和1023之间的端口将映射到1024如下的端口,而其余端口将映射到1024或以上端口。若有可能,不会更改端口。
--random,若是使用了选项“--random”,则端口映射将被随机化(内核>=2.6.21)。
--persistent,为每一个链接提供相同的源/目标地址。这取代了同一个目标。对持久映射的支持可从2.6.29-Rc2中得到
25)TCPMMS
此目标容许更改TCP SYN数据包的MSS值,以控制该链接的最大大小(一般将其限制为输出接口的MTU减去40(ipv4)或者减去60(ipv6)。固然,它只能与-p TCP一块儿使用。它仅在mangle表中有效。
该目标用于克服阻碍“ICMP碎片须要”或“ICMPv 6数据包太大”数据包的犯罪行为。这个问题的症状是,Linux防火墙/路由器的全部功能都很好,可是它背后的机器永远不能交换大数据包:Web浏览器链接,而后挂起没有收到的数据;小邮件工做正常,但大型电子邮件挂着;SSH工做正常,但scp在初次握手后挂起。
解决办法:激活此选项并将规则添加到防火墙配置中,如
|
--set-mssvalue,显式地将MSS选项设置为指定的值。若是数据包的MSS已经低于值,则不会增长(从Linux2.6.25开始),以免主机依赖适当的MSS出现更多问题
--clamp-mss-to-pmtu,自动将MSS值夹到(IPv4的PATH_MTU-40;IPv 6的PATH_MTU-60)。
26)TCPOPTSTRIP
此目标将从TCP数据包中删除TCP选项。(它实际上将以无操做代替。)所以,您须要添加“-p tcp”参数。
--strip-optionsoption[,option...],去掉给定的选项。这些选项能够由TCP选项号或符号名称指定。能够经过使用“-j TCPOPTSTRIP -h”调用iptable来得到可识别选项的列表。
27)TOS
此模块在IPv 4报头中设置服务类型字段(包括“优先级”位)或在IPv 6报头中设置优先级字段。注意,TOS与DSCP和ECN共享相同的位。tos目标仅在mangle表中有效。
--set-tosvalue[/mask],将掩码和XOR值给出的位归零到TOS/Priority字段中。若是省略掩码,则假定为0 xff。
--set-tossymbol,在为IPv4使用TOS目标时,能够指定一个符号名。它暗示了0xFF的掩码。能够经过使用“-j TOS -h”调用iptables来得到已识别的TOS名称的列表。
--and-tosbits,bits和TOS执行与操做。(助记符用于“--set-tos 0/invbits”,其中inbit是位的二进制否认。)
--or-tosbits,bits和TOS执行或操做。
--xor-tosbits,bits和TOS执行异或操做。
28)TPROXY
此目标仅在mangle表、PREROUTING链和用户定义链中有效,这些链仅从该链调用。它将数据包重定向到本地套接字,而不以任何方式更改数据包报头。它还能够更改标记值,而后在高级路由规则中使用。它有三个选项:
--on-portport,这指定要使用的目标端口。这是必需的选项,0表示新的目标端口与原始端口相同。这只有在规则还指定“-p tcp“或”-p udp“时才有效。
--on-ipaddress,这指定要使用的目标地址。默认状况下,该地址是传入接口的ip地址。这只有在规则还指定“-p tcp“或”-p udp“时才有效。
--tproxy-markvalue[/mask],用给定的值/掩码标记数据包。这里的fwmark值集能够被高级路由使用。(透明代理工做所必需的:不然这些数据包将被转发,这可能不是您想要的。)
29)TRACE
此目标标记Packes,以便内核在遍历表、链、规则时记录与数据包匹配的每条规则。(日志记录须要ipt_log或ip6t_log模块)。数据包以字符串前缀记录:“TRACE:tablename:chainname:type:ruenum”,其中type能够是普通规则的“rule”,用户定义的链末尾的隐式规则能够是“return”,内置链的策略能够是“policy”。
只能在raw表中使用。
30)TTL
这用于修改IPv 4 TTL头字段。TTL字段肯定数据包能够遍历多少跳(路由器),直到超过生存时间。设置或递增ttl字段可能很是危险,所以应不惜任何代价加以免。不要在离开本地网络的数据包上设置或增长值!
--ttl-setvalue,设置TTL值为value。
--ttl-decvalue,减小TTL的值value次。
--ttl-incvalue,增长TTL的值value次。
31)ULOG
此目标提供匹配数据包的用户空间日志记录。当为规则设置此目标时,Linux内核将经过NetLink套接字对此数据包进行多播。而后,一个或多个用户空间进程能够订阅各类多播组并接收分组。与日志同样,这是一个“不终止的目标”,即在下一个规则中继续进行规则遍历。
--ulog-nlgroupnlgroup,这指定了将数据包发送到的netlink组(1-32)。默认值为1
--ulog-prefixprefix,前缀为指定前缀的日志消息;长度可达32个字符,用于区分日志中的消息。
--ulog-cprangesize,要复制到用户空间的字节数。值为0老是复制整个数据包,而不考虑其大小。默认值为0
--ulog-qthresholdsize,内核中要排队的数据包数。例如,将此值设置为10,在内核内累加10个数据包,并将它们做为一个NetLink多部分消息传输到用户空间。默认值为1(用于向后兼容性)
5、实例
1)显示filter表的记录
|
2)禁止端口135的tcp数据包
|
3)禁止目标地址访问本机
|