IP6tables使用方法
更新时间:2024-04-24 06:21:01 阅读量: 综合文库 文档下载
IP6tables使用方法 (man手册)
名称
ip6tables – Ipv6包过滤管理
摘要
ip6tables [-t table] –[AD] chain rule-specification [options] ip6tables [-t table] –I chain [rulenum] rule-specification [options] ip6tables [-t table] –R chain rulenum rule-specification [options] ip6tables [-t table] –D chain rulenum [options] ip6tables [-t table] –[LFZ] [chain] [options] ip6tables [-t table] –N chain ip6tables [-t table] –X [chain]
ip6tables [-t table] –P chain target [options]
ip6tables [-t table] –E old-chain-name new-chain-name
描述
ip6tables通常是用来建立、维护、检查linux内核IPv6包过滤表的。可能定义了几个不同的表。每个表都包含了一些内置的链和用户定义的链。
每个链都是匹配一组包的规则的列表。每个规则都说明了如何匹配一个包。这是一个target的调用,这个target在相同的表中或许会跳转到用户定义的链。
目的
防火墙规则说明了包的规则和目标。如果一个包没有匹配,用链中的下一个规则检查;如果不匹配,下一个规则用target的值说明,target的值可能命名了一条用户定义的链,或者指定了ACCEPT、DROP、QUEUE或RETURN值中的一个。
ACCEPT意思是让包通过,DROP的意思是在底层把包丢弃。QUEUE的意思是把传送到用户空间。RETURN的意思是停止正在遍历的链,返回先前链的下一个规则。如果到达内置链的最后或者匹配上了带RETURN值的target内置链的规则,被链策略指定的target决定了包的命运。
表
目前有两个独立的用于nat的表没有实现。
-t,--table 表名
该选项指出包匹配的表名,该表就是命令操作的那个表。如果内核被配置为自动加载模块,如果这个表不存在,内核就要加载对应于这个表的模块。有如下表: filter:如果没有-t 选项,该表是默认的表。它包含了内置的链INPUT(用于进入防火墙的包)、FORWARD(用于经防火墙转发的包)和OUTPUT(防火墙本地生成的包)
mangle:这个表专门用于包的变化。包含了五个表,INPUT(用于进入防火墙的包)、PREROUTING(用于进入防火墙路由之前变化的包)、OUTPUT(用于本地生成的路由之前变更的包)、FORWARD(用于通过防火墙路由的变更的包)、POSTROUTING(用于差不多要发送出去的变更的包)
raw:该表主要用于配置了NOTRACK的target的免于连接跟踪的情况。在调用nf_conntrack之前以最高优先级注册到netfilter的hooks点上。提供了两个内置的链PREROUTING(用于经过一些网络接口到达的包)和OUTPUT(用于本地进程生成的包)
选项
ip6tables的选项分为以下几个组:
命令组
这个选项指定了要执行的明确的动作。在命令行中只能指定一个,除非有其他规定。 -A,--append chain rule-specification
在选中的链后增加一条或多条规则。当源和/或目的代表了不止一个地址,规 则要增加到每一个可能的地址上。 -D,--delete chain rule-specification -D,--delete chain rulenum 从选中的链中删除一条或多条规则。有两个版本命令可用:可以指定在链中规
则的号码,也可以指定匹配的规则。 -I,--insert
在选中的链中按照给出的规则号码插入一条或多条规则。如果没有规则号码指
定,默认值为1。插入到链的头部。 -R,--replace chain rulenum rule-specification 在指定的链中替换一条规则。如果源和/或目的代表了多个地址,命令失败。
规则号码从1开始。 -L,--list [chain]
列出所有指定链的规则,如果没有指定链,列出所有链的规则。像其他的每一
个命令一样,必须指定应用的表(filter是默认的),因此mangle表的规则通 过命令ip6tables –t mangle –n –L 来显示。-n选项避免长反向DNS查找。-Z选 项将列出的规则值自动清零。如果要查看详细的输出,用ip6tables –L -v -F,--flush [chain] 刷新指定的链(如果没有指定链,刷新这个表的所有链)。相当于删除链的所
有规则 -Z,--zero [chain] 将链中的包数和字节数清零。通常和-L,--list 一起使用。 -N,--new-chain chain 建立一个用户定义的新链,名称不能是target指定的。 -X,--delete-chain [chain]
删除指定的用户定义的链。这个链不能被使用,如果在使用,现删除上面的规
则。如果没有指定参数,删除表中所有非内置链。 -P,--policy chain target 为给定target的链设置策略。target的设置参见“目标”一节。只有内置的链
可以有策略,所有链的都可以有target策略。 -E,--rename-chain old-chain new-chain 改变用户指定链的名称,对表的结构没有影响。 -h 帮助
参数组
下面的参数是建立规则的说明。 -p,--protocol [! ] protocol
规则或包检查的协议。指定的协议可以是tcp,upd,icmpv6,esp中的一个或
全部。也可以是数值,代表这些协议中的某一个。也可以使用/etc/protocols中 的协议名。除了esp外ipv6的扩展头是不允许使用的。在协议名前的“!”表 示相反的规则。数字0相当于所有协议all。协议all会匹配所有的协议,而且 这是缺省的选项。 -s,--source [ ! ] address[/mask] 指定源地址。地址可以是主机名,一个带掩码的ipv6网络地址,或者一个ipv6
地址。掩码可以是网络掩码,也可以是一个数字。地址前面的“!”说明指定 地址相反的情况。--src是这个选项的别名。 -d,--destination [! ] address[/mask] 指定目的地址。语法同上。--dst是这个选项的别名。 -j,--jump target 指定规则的目标。就是如果包匹配了下一步做什么。目标可以是用户自定义的
链(不是这条规则所在的),立即决定包命运的特别内置目标之一,或者一个 扩展(参见下面的EXTENSIONS)。如果规则的这个选项省略,那么匹配的过 程不会对包的命运产生影响,不过规则的计数器会增加。 -i,--in-interface [! ] name 包被接收时经过的接口名称(仅用于包进入INPUT、FORWARD、
PREROUTING链)。接口名称前有“!”时,情况相反。如果接口名称以“+” 结束,任何以该名称开始的接口都匹配。如果该项省略,匹配任何名称接口。 -o,--out-interface [!] name
包发送时经过的接口名称(用于FORWARD、OUTPUT链)。接口名称前有“!”
时,情况相反。如果接口名称以“+”结束,任何以该名称开始的接口都匹配。 如果该项省略,匹配任何名称接口。 -c,--set-counters PKTS BYTES
初始化规则中包和字节的计数器。(在INSERT、APPEND、REPLACE操作时)
其他选项
-v,--verbose
详细输出。这个选项可以让list命令显示接口名称,规则选项(如果有),和
TOS掩码。包和字节计数器也被显示,分别用数字和K、M、G(后缀)表示 1000、1,000,000、1,000,000,000的倍数(-x标志可以改变)。对于添加、插入、 删除、替换命令,能够使一个或多个规则的详细信息打印出来。 -n,--numeric
数字输出。IP地址和端口号以数字形式显示。默认情况下,程序将以主机名
称,网络名称,或者服务(只要合适)显示。 -x,--exact
扩展数字。显示包和字节计数器的精确值,代替用K、M、G显示的约数。这
个选项只能用于-L命令 --line-numbers
当显示规则时,给每个规则前加上编号。这个编号与规则在链中的的位置一致。 --modprobe=command
在链表中添加和插入规则时,用“command”加载所需的模块(目标、匹配扩
展等)。
匹配扩展
ip6tables能够使用与模块匹配的扩展包。有两种加载方式:用-p或--protocol指定, 或者用-m或--match选项,后跟匹配的模块名称。然后,相对于指定模块的各种扩 展的命令行选项可以使用。在一行中可以指定多个匹配的扩展模块。
ah
这个模块匹配IPSec包的认证包头参数。 --ahspi [i] spi[:spi] 匹配SPI --ahlen [i] length 以字节为单位的包头的总长度 --ahres
如果保留位字段都是0,匹配
condition
--condition [!] filename 匹配存储在文件/proc/net/ip6t_condition/filename中的布尔值。
dst
该模块匹配目的地址选项包头参数 --dst-len [!] length
以字节为单位的包头的总长度 --dst-opts type[:length][,type[:length]…] 以字节为单位的选项类型号和选项数据长度
esp
该模块匹配IPSec包的ESP包头的SPIs --espspi [!] spi[:spi] eui64
该模块匹配IPv6地址无状态自动分配的EUI-64部分。它比较来源于以太网帧中 IPv6源地址的低64位的源mac地址的EUI-64。但是“全球/本地”位不比较。该 模块不能匹配其他链路的帧,并且只在PREROUTING、INPUT和FORWARD链 中应用。
frag
该模块匹配分片包头参数 --fragid [i] id[:id] 匹配给定的标识符或者其范围 --fraglen [i] length 该选项不能用在2.6.10或之后版本 --fragres
如果保留位字段都是0,匹配 --fragfirst
匹配第一个分片 [--fragmore]
如果有更多的分片,匹配 [-fraglast]
如果是最后一个分片,匹配
fuzzy
该模块匹配在一个模糊逻辑控制基础上的速率限制 --lower-limit number
指定一个最低限制(每秒包数) --upper-limit number 指定一个最高限制(每秒包数)
hbh
该模块匹配Hop-by-Hop选项头参数 --hbh-len [!] length
以字节为单位的包头的总长度 --hbh-opts type[:length][, type[:length]…]
以字节为单位的选项类型的号码和选项数据的长度
hl
该模块匹配IPv6包头的下一跳字段 --hl-eq [!] value 如果下一跳限制等于value值,匹配 --hl-lq [!] value
如果下一跳限制小于value值,匹配 --hl-gq [!] value 如果下一跳限制大于value值,匹配
icmpv6
--icmpv6-type [!] type[/code] typename
所允许的ICMPv6类型的说明,ICMPv6类型的号码,类型和编码,或者其中
之一的类型名称。通过下面命令显示:ip6tables –p ipv6-icmp -h
ipv6header
该模块匹配Ipv6扩展包头和/或上层协议包头 --header [!] header[, header ...]
并不是所有指定的包头的包都匹配。封装了ESP扩展包头的包就不在其中。
header参数可以是Hop-by-Hop、dst、route、frag、auth、esp、none,或者上 层协议的包头。/etc/protocol文件中的协议名字也可以,也允许数值。255相 当于上层协议包头。 [--soft]
使用参--header指定的所有包头中至少有一个匹配
length
该模块匹配以字节为单位的Ipv6净载荷的长度,或者长度范围。ipv6包头本身不 包括。
--length [!] length[:length] limit
该模块匹配使用令牌桶过滤的一个限制速率。使用这个扩展模块的规则直到速率达 到限制的速率才匹配。可以和LOG目标一起使用, --limit rate
匹配最大的平均速率。 --limit-burst number
匹配最大的初始包数。在没有到达限制时,可以改变限制数。默认为5
mac
--mac-source [!] address
匹配源mac地址。(IPv6是否能用?)只用在PREROUTING、FORWARD和
INPUT链上。
mark
该模块匹配与包有联系的netfilter mark字段(能用下面MARK target设置的包) --mark value[/mask] 用指定的无符号mark值匹配包(如果指定了mask,在比较前用mask进行逻辑 与)
multiport
该模块匹配一组源或目的端口。总共可以指定15个。一个端口范围(port:port) 算两个,但是范围现在不支持。只能使用在-p tcp和-p udp 一起时。 --source-ports [!] port[, port[,port:port ...]]
如果源端口是指定的端口之一,匹配成功。 --sports 是该选项方便的别名。 --destination-ports [!] port[, port[,port:port ...]]
如果目的端口是指定的端口之一,匹配成功。 --dports 是该选项方便的别名。 --ports [!] port[, port[,port:port ...]] 如果源端口和目的端口是指定的端口之一,匹配成功。
nth
(省略)
owner
该模块匹配本地产生的包的各种特征。只应用于OUTPUT链,甚至一些没有owen 的包(ICMPv6 ping的响应包),因此永远无法匹配。 --uid-owner uerid
如果给定用户ID进程产生的包匹配。 --gid-owner groupid
如果给定组ID的进程产生的包匹配 --pid-owner processed
如果给定进程号的进程产生的包匹配 --sid-owner sessionid
如果给定的会话组进程产生的包匹配 注意:如果在SMP情况下pid 和sid不成立
physdev
该模块匹配被桥设备使用的输入和输出的端口。 --physdev-in [!] name 桥端口的名称,经过给端口接收包。(只用于INPUT、FORWARD、
PREROUTING链)。如果接口名称以“+”结束,任何以该名称开头的接口都 匹配
--physdev-out [!] name 桥端口的名称,经过给端口发送包。(只用于OUTPUT、FORWARD、
PPSTROUTING链)。如果接口名称以“+”结束,任何以该名称开头的接口 都匹配 [!] --physdev-is-in
如果进入的包通过桥接口匹配 [!] --physdev-is-out
如果离开的包通过桥接口匹配 [!] --physdev-is-bridged
如果包是桥接的而不是路由的匹配。只用于FORWARD和POSTROUTING链。
policy
该模块匹配IPSec处理包的策略。 --dir in|out 选择是匹配解封策略,还是封装策略。in用于PREROUTING、INPUT和
FORWARD链。out用于POSTROUTING、OUTPUT和FORWARD链 --pol none|ipsec 如果这个包被IPSec处理匹配 --strict
选项是否匹配精确测量,或者给出的策略的任意规则。 --spi spi
匹配SA的SPI --proto ah|esp|ipcomp 匹配封装协议 --mode tunnel|transport 匹配封装模式 --tunnel-src addr[/mask] 匹配一个隧道模式源端点地址。只用在--mode tunnel --tunnel-dst addr[/mask]
匹配一个隧道模式目的端点地址。只用在--mode tunnel --next
从指定策略的下一个开始。只用于--strict
random
该模块随机匹配所有包的某个百分比。
--average percent 匹配指定的百分比。如果省略,默认设置为50%
rt
匹配IPv6路由包头 --rt-type [!] type 匹配类型(号码) --rt-segsleft [!] num[:num] (省略) --rt-len [!] length 匹配包头长度 --rt-0-res
匹配保留字段(type=0) --rt-0-address ADDR[,ADDR …] 匹配type=0的地址(列表) --rt-0-non-strict
列出type=0的地址,而非详细显示
tcp
--source-port [!] port[:port] 指定了源端口或端口范围。可以是服务名或者端口数。通过port:port指定一个
包括一且的范围。第一个端口省略,默认为“0”,最后一个端口省略,默认为 “65535”。 --sport是这个选项的方便别名 --destination-port [!] port[:port]
指定了目的端口或端口范围。--dport是这个选项的方便别名 --tcp-flag [!] mask comp
当我们指定了tcp标志时匹配。标志中的第一个参数作为应该检测的命令分隔
符的列表,第二个参数是必须设置的标志在命令分隔符列表中。标志有:SYN、 ACK、FIN、RST、URG、PSH、ALL、NONE。因此,命令“ ip6tables –A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST SYN ”只匹配带有SYN标志的包。 [!] –syn
只匹配包中含有SYN标志的。前面加“!”情况相反。 --tcp-opton [!] number 如果设置了选项进行匹配
udp
--source-port [!] port[:port] 指定了源端口或端口范围。细节部分描述同TCP。 --destination-port [!] port[:port] 指定了目的端口或端口范围。细节部分描述同TCP。
目标扩展
HL
用来修改IPv6包头中的下一跳限制。该目标只用于mangle表。 --hl-set value 设置跳限的值为value --hl-dec value 减少跳限的值 --hl-inc value 增加跳限的值
LOG
打开内核中匹配包的日志。 --log-level level 记录日志的级别 --log-prefix prefix
给日志加上指定的前缀。总共29个字母长。 --log-tcp-sequence 日志的tcp序列号 --log-tcp-option
记录来自于tcp包头的选项 --log-ip-option
记录来自于Ipv6包头的选项 --log-uid
记录产生包的进程的用户ID
MARK
设置包的netfilter mark值。只用于mangle表。 --set-mark mark
NFQUEUE
该目标作为QUEUE目标的扩展。作为QUEUE的相反项,允许把包放入任意指定 的队列,该队列被16位队列号标示。 --queue-num value 指定使用的队列号。队列号从0到65535,默认是0
REJECT
用来对匹配的包发送一个错误包响应。否则等同于DROP。该目标只能用于INPUT、 FORWARD和OUTPUT链 --reject-with type type可以为icmp6-no-route no-route icmp6-adm-prohibited adm-prohibited
icmp6-addr-unreachable addr-unreach icmp6-port-unreachable port-unreach 返回合适的ICMP6差错报文(默认port-unreach)。最后tcp-reset可以在匹配 TCP协议中的规则应用。
ROUTE
只用于mangle表 --oif ifname
通过指定的网络接口名称路由包 --gw IPv6_address 经过指定的网关路由包 --continue
象没有终止目标一样,继续遍历规则。 --tee
备份包,将备份的包路由的目的地。原包象没有终止目标一样,继续遍历规则。
TRACE
为所有匹配规则的包打开包的跟踪。
IP6tables用法说明:
1. 规则设置的作用是按照先设置的起作用。 2. 支持多端口,最多不能超过15个。例如:
ip6tables –A FORWARD –p TCP –m multiport --dport 21,22,23,24 –j DROP
正在阅读:
IP6tables使用方法04-24
新腹泻病患儿的护理查房05-31
内部控制习题及案例(带答案)10-10
公园的早晨作文600字06-29
DGJ08-93-2002民用建筑电线电缆防火设计规程07-19
税制改革对融资租赁企业税负影响的实证研究06-10
承德至秦皇岛高速公路承德段第21标单位、分部、分项工程划分一览表08-16
只在静下心来才能把事情做好11-03
走进电视台直播间作文350字06-26
2008年度水稻产业技术发展报告01-29
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 使用方法
- IP6tables