Iptables 8
目录
- NAME iptables - IP包过滤器管理 .SH 总览 iptables -ADC 指定链的规则 [-A 添加 -D 删除 -C 修改] .br iptables - RI .br iptables -D chain rule num[option] .br iptables -LFZ 链名 [选项] .br iptables -[NX] 指定链 .br iptables -P chain target[options] .br iptables -E old-chain-name new-chain-name .SH 说明 Iptalbes 是用来设置、维护和检查Linux内核的IP包过滤规则的。 可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。 每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处 理与之相匹配的包。这被称作'target'(目标),也可以跳向同一个表内的用 户定义的链。 .SH TARGETS 防火墙的规则指定所检查包的特征,和目标。如果包不匹配,将送往该链中 下一条规则检查;如果匹配,那么下一条规则由目标值确定.该目标值可以是 用户定义的链名,或是某个专用值,如ACCEPT[通过], DROP[删除], QUEUE[排队],或者 RETURN[返回]。 .PP .I ACCEPT 表示让这个包通过。 .br .I DROP 表示将这个包丢弃。 .br .I QUEUE 表示把这个包传递到用户空间。 .br .I RETURN 表示停止这条链的匹配,到前一个链的规则重新开始。如果到达了一个内建的 链(的末端),或者遇到内建链的规则是 RETURN,包的命运将由链准则指定的 目标决定。 .SH TABLES 当前有三个表(哪个表是当前表取决于内核配置选项和当前模块)。 .TP .B
- OPTIONS 这些可被iptables识别的选项可以区分不同的种类。 .SS COMMANDS 这些选项指定执行明确的动作:若指令行下没有其他规定,该行只能指定一个选项. 对于长格式的命令和选项名,所用字母长度只要保证iptables能从其他选项中区 分出该指令就行了。 .TP .BR
- 对应的扩展 iptables能够使用一些与模块匹配的扩展包。以下就是含于基本包内的 扩展包,而且他们大多数都可以通过在前面加上!来表示相反的意思。 .SS tcp 当 --protocol tcp 被指定,且其他匹配的扩展未被指定时,这些扩展被装载。它提供以下选项: .TP .BR
- TARGET EXTENSIONS iptables可以使用扩展目标模块:以下都包含在标准版中。 .SS LOG 为匹配的包开启内核记录。当在规则中设置了这一选项后,linux内核会通 过printk()打印一些关于全部匹配包的信息(诸如IP包头字段等)。 .TP .BR
- 诊断 不同的错误信息会打印成标准错误:退出代码0表示正确。类似于不对的或者滥用的命令 行参数错误会返回错误代码2,其他错误返回代码为1。 .SH 臭虫 检查还未完成。 .SH COMPATIBILITY WITH IPCHAINS 与ipchains的兼容性 This iptables is very similar to ipchains by Rusty Russell. The main difference is that the chains INPUT and OUTPUT are only traversed for packets coming into the local host and originating from the local host respectively. Hence every pack only passes through one of the three chains; previously a forwarded packet would pass through all three. The other main difference is that -I refers to input interface; -o refers to the output interface, and both are available for packets entering the FORWARD chain. iptables is a pure packet filter when using the default filter' table, with optional extension modules. This should simplify much of the previous confusion over the combination of IP masquerading and packet filtering seen previously. So the following options are handled differently: -j MASQ -M -S -M -L There are several other chaines in iptables iptables和Rusty Russell的ipchains非常相似。主要区别是INPUT 链只用于进入本 地主机的包,而OUTPUT只用于自本地主机生成的包。因此每个包只经过三个链的 一个;以前转发的包会经过所有三个链。其他主要区别是 -i 引用进入接口;-o引 用输出接口,两者都适用于进入FORWARD链的包。当和可选扩展模块一起使用 默认过滤器表时,iptables是一个纯粹的包过滤器。这能大大减少以前对IP伪装和 包过滤结合使用的混淆,所以以下选项作了不同的处理: -j MASQ -M -S -M -L 在iptables中有几个不同的链。 .SH 参见 iptables-HOWTO有详细的iptables用法,对netfilter-hacking-HOWTO也有详细的本质说明。 .SH 作者 Rusty Russell wrote iptables, in early consultation with Michael Neuling. Marc Boucher made Rusty abandon ipnatctl by lobbying for a generic packet selection framework in iptables, then wrote the mangle table, the owner match, the mark stuff, and ranaround doing cool stuff everywhere. James Morris wrote the TOS target, and tos match. Jozsef Kadlecsik wrote the REJECT target. The Netfilter Core Team is: Marc Boucher, Rusty Russell. .TP Mar 20, 2000 .br .SH
- [中文版最新更新]
- 《中国linux论坛man手册页翻译计划》:
- 跋
Iptables
NAMEæ»è§
说æ
TARGETS
TABLES
OPTIONS
COMMANDS
åæ°
å¶ä»é项
对åºçæ©å±
tcp
udp
icmp
mac
limit
mark
owner
state
unclean
tos
TARGET EXTENSIONS
LOG
MARK
REJECT
TOS
MIRROR
SNAT
MASQUERADE
REDIRECT
è¯æ
èè«
COMPATIBILITY WITH IPCHAINS
åè§
ä½è
[䏿çç»´æ¤äºº]
[ä¸æçææ°æ´æ°]
ãä¸å½linux论åmanæå页翻è¯è®¡åã:
è·
NAME
iptables - IPåè¿æ»¤å¨ç®¡ç
æ»è§
iptables -ADC
æå®é¾çè§å
[-A æ·»å -D
å é¤ -C
ä¿®æ¹]
iptables - RI
iptables -D chain rule num[option]
iptables -LFZ é¾å
[é项]
iptables -[NX] æå®é¾
iptables -P chain target[options]
iptables -E old-chain-name new-chain-name
说æ
Iptalbes æ¯ç¨æ¥è®¾ç½®ãç»´æ¤åæ£æ¥Linuxåæ ¸çIPåè¿æ»¤è§åçã
å¯ä»¥å®ä¹ä¸åçè¡¨ï¼æ¯ä¸ªè¡¨é½åå«å 个åé¨çé¾ï¼ä¹è½åå«ç¨æ·å®ä¹çé¾ã æ¯ä¸ªé¾é½æ¯ä¸ä¸ªè§åå表ï¼å¯¹å¯¹åºçåè¿è¡å¹éï¼æ¯æ¡è§åæå®åºå½å¦ä½å¤ çä¸ä¹ç¸å¹éçåãè¿è¢«ç§°ä½’target’ï¼ç®æ ï¼ï¼ä¹å¯ä»¥è·³ååä¸ä¸ªè¡¨åçç¨ æ·å®ä¹çé¾ã
TARGETS
é²ç«å¢çè§åæå®ææ£æ¥åçç¹å¾ï¼åç®æ ã妿åä¸å¹éï¼å°éå¾è¯¥é¾ä¸ ä¸ä¸æ¡è§åæ£æ¥ï¼å¦æå¹é,é£ä¹ä¸ä¸æ¡è§åç±ç®æ å¼ç¡®å®.è¯¥ç®æ å¼å¯ä»¥æ¯ ç¨æ·å®ä¹çé¾å,ææ¯æä¸ªä¸ç¨å¼,å¦ACCEPT[éè¿], DROP[å é¤], QUEUE[æé],æè RETURN[è¿å]ã
ACCEPT
表示让è¿ä¸ªåéè¿ã
DROP
表示å°è¿ä¸ªå丢å¼ã
QUEUE
表示æè¿ä¸ªåä¼ éå°ç¨æ·ç©ºé´ã
RETURN
è¡¨ç¤ºåæ¢è¿æ¡é¾çå¹éï¼å°åä¸ä¸ªé¾çè§åéæ°å¼å§ã妿å°è¾¾äºä¸ä¸ªå建ç
é¾(çæ«ç«¯)ï¼æèéå°å建é¾çè§åæ¯
RETURNï¼åçå½è¿å°ç±é¾ååæå®ç
ç®æ å³å®ã
TABLES
å½åæä¸ä¸ªè¡¨ï¼åªä¸ªè¡¨æ¯å½å表åå³äºåæ ¸éç½®é项åå½å模å)ã
-t table
è¿ä¸ªé项æå®å½ä»¤è¦æä½çå¹éåç表ãå¦æåæ¸è¢«é置为èªå¨å载模åï¼è¿æ¶ è¥æ¨¡å没æå è½½ï¼(ç³»ç»)å°å°è¯(为该表)å è½½éåçæ¨¡åã
è¿äºè¡¨å¦ä¸ï¼
|
filter |
,è¿æ¯é»è®¤ç表ï¼åå«äºå建çé¾INPUTï¼å¤çè¿å¥çåï¼ãFORWORDï¼å¤çé è¿çåï¼åOUTPUTï¼å¤çæ¬å°çæçåï¼ã | ||
|
nat |
è¿ä¸ªè¡¨è¢«æ¥è¯¢æ¶è¡¨ç¤ºéå°äºäº§çæ°çè¿æ¥çå,ç±ä¸ä¸ªå建ç龿æï¼PREROUTING |
(ä¿®æ¹å°æ¥çå)ãOUTPUTï¼ä¿®æ¹è·¯ç±ä¹åæ¬å°çåï¼ãPOSTROUTING
ï¼ä¿®æ¹åå¤åºå»çåï¼ã
|
mangle |
è¿ä¸ªè¡¨ç¨æ¥å¯¹æå®çåè¿è¡ä¿®æ¹ãå®æä¸¤ä¸ªå建è§åï¼PREROUTINGï¼ä¿®æ¹è·¯ç±ä¹
åè¿å¥çåï¼åOUTPUTï¼ä¿®æ¹è·¯ç±ä¹åæ¬å°çåï¼ã
OPTIONS
è¿äºå¯è¢«iptablesè¯å«çé项å¯ä»¥åºåä¸åçç§ç±»ã
COMMANDS
è¿äºé项æå®æ§è¡æç¡®çå¨ä½ï¼è¥æä»¤è¡ä¸æ²¡æå¶ä»è§å®,该è¡åªè½æå®ä¸ä¸ªé项.
对äºé¿æ ¼å¼çå½ä»¤åé项å,æç¨åæ¯é¿åº¦åªè¦ä¿è¯iptablesè½ä»å¶ä»é项ä¸åº
ååºè¯¥æä»¤å°±è¡äºã
-A -append
卿鿩ç龿«æ·»å 䏿¡ææ´å¤è§åã彿ºï¼å°åï¼æè/ä¸ ç®çï¼å°åï¼è½¬æ¢ 为å¤äºä¸ä¸ª(å¤ä¸ª)å°åæ¶ï¼è¿æ¡è§åä¼å å°ææå¯è½çå°å(ç»å)åé¢ã
-D -delete
仿éé¾ä¸- å é¤ä¸æ¡ææ´å¤è§åãè¿æ¡å½ä»¤å¯ä»¥æä¸¤ç§æ¹æ³ï¼å¯ä»¥æè¢«å é¤è§å æå®ä¸ºé¾ä¸çåºå·(ç¬¬ä¸æ¡åºå·ä¸º1),æèæå®ä¸ºè¦å¹éçè§åã
-R -replace
ä»éä¸çé¾ä¸å代䏿¡è§åã妿æºï¼å°åï¼æè/ä¸ ç®çï¼å°åï¼è¢«è½¬æ¢ä¸ºå¤å° åï¼è¯¥å½ä»¤ä¼å¤±è´¥ãè§ååºå·ä»1å¼å§ã
-I -insert
æ ¹æ®ç»åºçè§ååºå·åæéé¾ä¸æå¥ä¸æ¡ææ´å¤è§åãæä»¥ï¼å¦æè§ååºå·ä¸º1ï¼ è§åä¼è¢«æå¥é¾ç头é¨ãè¿ä¹æ¯ä¸æå®è§ååºå·æ¶çé»è®¤æ¹å¼ã
-L -list
æ¾ç¤ºæéé¾çææè§åãå¦ææ²¡æéæ©é¾ï¼ææé¾å°è¢«æ¾ç¤ºãä¹å¯ä»¥åzé项ä¸èµ· 使ç¨ï¼è¿æ¶é¾ä¼è¢«èªå¨ååºåå½é¶ã精确è¾åºåå¶å®æç»åæ°å½±åã
-F -flush
æ¸ç©ºæéé¾ãè¿çäºæææè§åä¸ä¸ªä¸ªçå é¤ã
--Z -zero
æææé¾çåååèç计æ°å¨æ¸ç©ºãå®å¯ä»¥å -Léå使ç¨ï¼å¨æ¸ç©ºåå¯ç计æ°å¨ï¼è¯·åè§åæã
-N -new-chain
æ ¹æ®ç»åºçå称建ç«ä¸ä¸ªæ°çç¨æ·å®ä¹é¾ãè¿å¿é¡»ä¿è¯æ²¡æååçé¾åå¨ã
-X -delete-chain
å餿å®çç¨æ·èªå®ä¹é¾ãè¿ä¸ªé¾å¿é¡»æ²¡æè¢«å¼ç¨ï¼å¦æè¢«å¼ç¨ï¼å¨åé¤ä¹åä½å¿é¡»å é¤æèæ¿æ¢ä¸ä¹æå³çè§åãå¦ææ²¡æç»åºåæ°ï¼è¿æ¡å½ä»¤å°è¯çå 餿¯ä¸ªé å建çé¾ã
-P -policy
设置é¾çç®æ è§åã
-E -rename-chain
æ ¹æ®ç¨æ·ç»åºçåå- 对æå®é¾è¿è¡éå½åï¼è¿ä»ä»æ¯ä¿®é¥°ï¼å¯¹æ´ä¸ªè¡¨çç»ææ²¡æå½±åã TARGETSåæ°ç»åºä¸ä¸ªåæ³çç®æãåªæéç¨æ·èªå®ä¹é¾å¯ä»¥ä½¿ç¨è§åï¼èä¸å建é¾åç¨ æ·èªå®ä¹é¾é½ä¸è½æ¯è§åçç®æ ã
-h Help.
帮å©ãç»åºå½åå½ä»¤è¯æ³é常ç®çç说æã
åæ°
以ä¸åæ°ææè§å详述ï¼å¦ç¨äºaddãdeleteãreplaceãappend
å checkå½ä»¤ã
-p -protocal [!]protocol
è§åæè忣æ¥(徿£æ¥å)çåè®®ãæå®åè®®å¯ä»¥æ¯tcpãudpãicmpä¸çä¸ä¸ªæ èå¨é¨ï¼ä¹å¯ä»¥æ¯æ°å¼ï¼ä»£è¡¨è¿äºåè®®ä¸- çæä¸ä¸ªãå½ç¶ä¹å¯ä»¥ä½¿ç¨å¨/etc/pro tocolsä¸- å®ä¹çåè®®åãå¨åè®®ååå ä¸"!"表示ç¸åçè§åãæ°å0ç¸å½äºææ allãProtocol allä¼å¹éææåè®®ï¼èä¸è¿æ¯ç¼ºçæ¶çé项ãå¨åcheckå½ä»¤ç»å æ¶ï¼allå¯ä»¥ä¸è¢«ä½¿ç¨ã
-s -source [!] address[/mask]
æå®æºå°åï¼å¯ä»¥æ¯ä¸»æºåãç½ç»å忏æ¥çIPå°åãmask说æå¯ä»¥æ¯ç½ç»æ©ç
ææ¸æ¥çæ°åï¼å¨ç½ç»æ©ç ç左边æå®ç½ç»æ©ç 左边â1âç个æ°ï¼å æ-
¤ï¼mask
å¼ä¸º24ç-
äº255.255.255.0ã卿å®å°ååå ä¸"!"说ææå®äºç¸åçå°åæ®µãæ å¿
--src
æ¯è¿ä¸ªé项çç®åã
-d --destination [!] address[/mask]
æå®ç®æ å°åï¼è¦è·å详ç»è¯´æè¯·åè§ -sæ å¿ç说æãæ å¿ --dst æ¯è¿ä¸ªé项çç®åã
-j --jump target
(-j ç®æ 跳转)æå®è§åçç®æï¼ä¹å°±æ¯è¯´ï¼å¦æåå¹éåºå½åä»ä¹ãç®æå¯ä»¥æ¯ç¨ æ·èªå®ä¹é¾ï¼ä¸æ¯è¿æ¡è§åæå¨çï¼ï¼æä¸ªä¼ç«å³å³å®åçå½è¿çä¸ç¨åå»ºç®æï¼ æèä¸ä¸ªæ©å±ï¼åè§ä¸é¢çEXTENSIONSï¼ã妿è§åçè¿ä¸ªé项被忽ç¥ï¼é£ä¹å¹ éçè¿ç¨ä¸ä¼å¯¹å产çå½±åï¼ä¸è¿è§åç计æ°å¨ä¼å¢å ã
-i -in-interface [!] [name]
(i -è¿å¥çï¼ç½ç»ï¼æ¥å£ [!][åç§°])è¿æ¯åç»ç±è¯¥æ¥å£æ¥æ¶çå¯éçå¥å£åç§°ï¼åéè¿ è¯¥æ¥å£æ¥æ¶ï¼å¨é¾INPUTãFORWORDåPREROUTINGä¸è¿å¥çåï¼ãå½å¨æ¥å£å å使ç¨"!"说æåï¼æçæ¯ç¸åçåç§°ã妿æ¥å£ååé¢å ä¸"+"ï¼åææä»¥æ¤æ¥å£å å¼å¤´çæ¥å£é½ä¼è¢«å¹éã妿è¿ä¸ªé项被忽ç¥ï¼ä¼å设为"+"ï¼é£ä¹å°å¹éä»»ææ¥å£ã
-o --out-interface [!][name]
(-o --è¾åºæ¥å£[åç§°])è¿æ¯åç»ç±è¯¥æ¥å£éåºçå¯éçåºå£åç§°ï¼åéè¿è¯¥å£è¾åºï¼å¨ é¾FORWARDãOUTPUTåPOSTROUTINGä¸éåºçåï¼ãå½å¨æ¥å£åå使ç¨"!"说æ åï¼æçæ¯ç¸åçåç§°ã妿æ¥å£ååé¢å ä¸"+"ï¼åææä»¥æ¤æ¥å£åå¼å¤´çæ¥å£é½ä¼ 被å¹éã妿è¿ä¸ªé项被忽ç¥ï¼ä¼å设为"+"ï¼é£ä¹å°å¹éææä»»ææ¥å£ã
[!] -f, --fragment
( [!] -f --åç)è¿æå³çå¨åççåä¸- ï¼è§ååªè¯¢é®ç¬¬äºå以åççãèªé£ä»¥åç±äºæ æ³å¤æ- è¿ç§æåçæºç«¯å£æç®æ 端å£ï¼æèæ¯ICMPç±»åçï¼ï¼è¿ç±»åå°ä¸è½å¹éä»» 使å®å¯¹ä»ä»¬è¿è¡å¹éçè§åã妿"!"说æç¨å¨äº"-f"æå¿ä¹åï¼è¡¨ç¤ºç¸åçææã TP -c, --set-counters PKTS BYTES This enables the administrater to initialize the packet and byte counters of a rule (during INSERT, APPEND, REPLACE operations)
å¶ä»é项
è¿å¯ä»¥æå®ä¸åéå é项ï¼
-v --verbose
详ç»è¾åºãè¿ä¸ªé项让listå½ä»¤æ¾ç¤ºæ¥å£å°åãè§åé项ï¼å¦ææï¼åTOS ï¼Type of Serviceï¼æ©ç ãåååè计æ°å¨ä¹å°è¢«æ¾ç¤ºï¼åå«ç¨KãMãG (åç¼)表示1000ã1,000,000å1,000,000,000åï¼ä¸è¿è¯·åç-xæå¿æ¹åå®ï¼ï¼ å¯¹äºæ·»å,æå¥,åé¤åæ¿æ¢å½ä»¤ï¼è¿ä¼ä½¿ä¸ä¸ªæå¤ä¸ªè§åçç¸å³è¯¦ç»ä¿¡æ¯è¢«æå°ã
-n --numeric
æ°åè¾åºãIPå°åå端å£ä¼ä»¥æ°åç形弿å°ãé»è®¤æåµä¸ï¼ç¨åºè¯æ¾ 示主æºåãç½ç»åæèæå¡ï¼åªè¦å¯ç¨ï¼ã
-x -exact
æ©å±æ°åãæ¾ç¤ºåååè计æ°å¨ç精确å¼ï¼ä»£æ¿ç¨K,M,G表示ç约æ°ã è¿ä¸ªé项ä»è½ç¨äº -L å½ä»¤ã
--line-numbers
å½å表æ¾ç¤ºè§åæ¶ï¼å¨æ¯ä¸ªè§åçåé¢å ä¸è¡å·ï¼ä¸è¯¥è§åå¨é¾ä¸- çä½ç½®ç¸å¯¹åºã
对åºçæ©å±
iptablesè½å¤ä½¿ç¨ä¸äºä¸æ¨¡åå¹éçæ©å±åã以ä¸å°±æ¯å«äºåºæ¬ååç æ©å±åï¼èä¸ä»ä»¬å¤§å¤æ°é½å¯ä»¥éè¿å¨åé¢å ä¸!æ¥è¡¨ç¤ºç¸åçææã
tcp
å½
--protocol tcp
被æå®,ä¸å¶ä»å¹éçæ©å±æªè¢«æå®æ¶,è¿äºæ©å±è¢«è£è½½ã宿ä¾ä»¥ä¸é项ï¼
--source-port [!] [port[:port]]
æºç«¯å£æç«¯å£èå´æå®ãè¿å¯ä»¥æ¯æå¡åæç«¯å£å·ãä½¿ç¨æ¼å¼ç«¯å£ï¼ç«¯å£ä¹å¯ä»¥ æå®åå«çï¼ç«¯å£ï¼èå´ã妿é¦ç«¯å£å·è¢«å¿½ç¥ï¼é»è®¤æ¯"0"ï¼å¦ææ«ç«¯å£å·è¢«å¿½ ç¥ï¼é»è®¤æ¯"65535"ï¼å¦æç¬¬äº?é¾ä¸è¯¤ç³¯ç¬¥è¯è°æ¡è§¯?æ²æ- ¤?èå²å¤æ¢å¼§ï¼µé£§é²â ç¾æ¢¢åè¤? --sportçå«åã
--destionation-port [!] [port:[port]]
ç®æ ç«¯å£æç«¯å£èå´æå®ãè¿ä¸ªé项å¯ä»¥ä½¿ç¨ --dportå«åæ¥ä»£æ¿ã
--tcp-flags [!] mask comp
å¹éæå®çTCPæè®°ã第ä¸ä¸ªåæ°æ¯æä»¬è¦æ£æ¥çæè®°ï¼ä¸ä¸ªç¨éå·åå¼çå表ï¼
第äºä¸ªåæ°æ¯ç¨éå·åå¼çæ 记表,æ¯å¿é¡»è¢«è®¾ç½®çãæ è®°å¦ä¸ï¼SYN
ACK FIN
RST URG PSH ALL
NONEãå æ¤è¿æ¡å½ä»¤ï¼iptables
-A FORWARD -p tcp --tcp-flags SYN, ACK,
FIN, RST
SYNåªå¹éé£äºSYNæ 记被设置èACKãFINåRSTæ 记没æè®¾ç½®çåã
[!] --syn
åªå¹éé£äºè®¾ç½®äºSYNä½èæ¸é¤äºACKåFINä½çTCPåãè¿äºåç¨äºTCPè¿æ¥åå§ åæ¶ååºè¯·æ±ï¼ä¾å¦ï¼å¤§éçè¿ç§åè¿å¥ä¸ä¸ªæ¥å£åçå µå¡æ¶ä¼é»æ- ¢è¿å¥çTCPè¿æ¥ ï¼èåºå»çTCPè¿æ¥ä¸ä¼åå°å½±åãè¿çäº --tcp-flags SYN, RST, ACK SYNã妿 "--syn"å颿"!"æ è®°ï¼è¡¨ç¤ºç¸åçææã
--tcp-option [!] number
å¹é设置äºTCPé项çã
udp
å½protocol
udp
被æå®,ä¸å¶ä»å¹éçæ©å±æªè¢«æå®æ¶,è¿äºæ©å±è¢«è£è½½,宿ä¾ä»¥ä¸é项ï¼
--source-port [!] [port:[port]]
æºç«¯å£æç«¯å£èå´æå®ãè¯¦è§ TCPæ©å±ç--source-porté项说æã
--destination-port [!] [port:[port]]
ç®æ ç«¯å£æç«¯å£èå´æå®ãè¯¦è§ TCPæ©å±ç--destination-porté项说æã
icmp
å½protocol
icmp被æå®,ä¸å¶ä»å¹éçæ©å±æªè¢«æå®æ¶,该æ©å±è¢«è£è½½ã宿ä¾ä»¥ä¸é项ï¼
--icmp-type [!] typename
è¿ä¸ªé项å许æå®ICMPç±»åï¼å¯ä»¥æ¯ä¸ä¸ªæ°å¼åçICMP?åå?è夿æ£é²æ??
iptables -p icmp -h
ææ¾ç¤ºçICMPç±»ååã
mac
--mac-source [!] address
å¹éç©çå°åãå¿é¡»æ¯XX:XX:XX:XX:XXè¿æ·çæ¼å¼ã注æå®åªå¯¹æ¥èªä»¥å¤ªè®¾å¤å¹¶ è¿å¥PREROUTINGãFORWORDåINPUTé¾çåææã
limit
è¿ä¸ªæ¨¡åå¹éæ å¿ç¨ä¸ä¸ªæ è®°æ¡¶è¿æ»¤å¨ä¸ä¸å®é度è¿è¡å¹é,å®åLOG
ç®æ ç»åä½¿ç¨æ¥ç»åºæéçç»éæ°.å½è¾¾å°è¿ä¸ªæé弿¶,使ç¨è¿ä¸ªæ©å±
åçè§åå°è¿è¡å¹é.(é¤é使ç¨äº
â!âæ è®°)
--limit rate
æå¤§å¹³åå¹ééçï¼å¯èµç弿’/second’, ’/minute’, ’/hour’, or ’/day’è¿æ ·çåä½ï¼é»è®¤æ¯3/hourã
--limit-burst number
å¾å¹éååå§ä¸ªæ°çæå¤§å¼:è¥å颿å®çæéè¿æ²¡è¾¾å°è¿ä¸ªæ°å¼,忦æ°å- å 1.é»è®¤å¼ä¸º5
multiport
è¿ä¸ªæ¨¡åå¹éä¸ç»æºç«¯å£æç®æ 端å£,æå¤å¯ä»¥æå®15个端å£ãåªè½å-p tcp æè -p udp è¿ç使ç¨ã
--source-port [port[, port]]
妿æºç«¯å£æ¯å¶ä¸ä¸ä¸ªç»å®ç«¯å£åå¹é
--destination-port [port[, port]]
å¦æç®æ ç«¯å£æ¯å¶ä¸ä¸ä¸ªç»å®ç«¯å£åå¹é
--port [port[, port]]
è¥æºç«¯å£åç®ç端å£ç¸çå¹¶ä¸æä¸ªç»å®ç«¯å£ç¸ç,åå¹éã
mark
è¿ä¸ªæ¨¡ååä¸netfilterè¿æ»¤å¨æ è®°å-
段å¹éï¼å°±å¯ä»¥å¨ä¸é¢è®¾ç½®ä¸ºä½¿ç¨MARKæ è®°ï¼ã
--mark value [/mask]
å¹éé£äºæç¬¦å·æè®°å¼çåï¼å¦ææå®maskï¼å¨æ¯è¾ä¹åä¼ç»æ©çåä¸é»è¾çæè®°ï¼ã
owner
æ¤æ¨¡åè¯ä¸ºæ¬å°çæåå¹éåå建èçä¸åç¹å¾ã
åªè½ç¨äºOUTPUTé¾ï¼èä¸å³ä½¿è¿æ ·ä¸äºåï¼å¦ICMP
pingåºçï¼è¿
å¯è½æ²¡æææèï¼å æ¤æ°¸è¿ä¸ä¼å¹éã
--uid-owner userid
妿ç»åºææçuser idï¼é£ä¹å¹éå®çè¿ç¨äº§ççåã
--gid-owner groupid
妿ç»åºææçgroup idï¼é£ä¹å¹éå®çè¿ç¨äº§ççåã
--sid-owner seessionid
æ ¹æ®ç»åºçä¼è¯ç»å¹é该è¿ç¨äº§ççåã
state
æ¤æ¨¡åï¼å½ä¸è¿æ¥è·è¸ªç»åä½¿ç¨æ¶ï¼å许访é®åçè¿æ¥è·è¸ªç¶æã
--state state
è¿éstateæ¯ä¸ä¸ªéå·åå²çå¹éè¿æ¥ç¶æå表ãå¯è½çç¶ææ¯:INVALID è¡¨ç¤ºåæ¯æªç¥è¿æ¥ï¼ESTABLISHED表示æ¯ååä¼ éçè¿æ¥ï¼NEW表示å 为æ°çè¿æ¥ï¼å¦åæ¯éååä¼ éçï¼èRELATED表示åç±æ°è¿æ¥å¼å§ï¼ä½ æ¯åä¸ä¸ªå·²åå¨çè¿æ¥å¨ä¸èµ·ï¼å¦FTPæ°æ®ä¼ éï¼æèä¸ä¸ªICMPé误ã
unclean
æ¤æ¨¡å没æå¯é项ï¼ä¸è¿å®è¯çå¹éé£äºå¥æªçãä¸å¸¸è§çåãå¤å¨å®éªä¸ã
tos
æ¤æ¨¡åå¹éIPåé¦é¨ç8ä½tosï¼æå¡ç±»åï¼å段ï¼ä¹å°±æ¯è¯´ï¼åå«å¨ä¼åä½ä¸ï¼ã
--tos tos
è¿ä¸ªåæ°å¯ä»¥æ¯ä¸ä¸ªæ ååç§°ï¼ï¼ç¨iptables -m tos -h å¯ç该å表ï¼ï¼æèæ°å¼ã
TARGET EXTENSIONS
iptableså¯ä»¥ä½¿ç¨æ©å±ç®æ 模åï¼ä»¥ä¸é½åå«å¨æ åçä¸ã
LOG
为å¹éçåå¼å¯åæ ¸è®°å½ãå½å¨è§åä¸è®¾ç½®äºè¿ä¸é项åï¼linuxåæ ¸ä¼é
è¿printk()æå°ä¸äºå³äºå¨é¨å¹éåçä¿¡æ¯ï¼è¯¸å¦IPå头忮µçï¼ã
--log-level level
è®°å½çº§å«ï¼æ°åæåç syslog.conf(5)ï¼ã
--log-prefix prefix
å¨çºªå½ä¿¡æ¯åå ä¸ç¹å®çåç¼ï¼æå¤14ä¸ªåæ¯é¿ï¼ç¨æ¥åè®°å½ä¸- å¶ä»ä¿¡æ¯åºå«ã
--log-tcp-sequence
è®°å½TCPåºåå·ãå¦æè®°å½è½è¢«ç¨æ·è¯»åé£ä¹è¿å°åå¨å®å¨éæ£ã
--log-tcp-options
è®°å½æ¥èªTCPå头é¨çé项ã
--log-ip-options
è®°å½æ¥èªIPå头é¨çé项ã
MARK
ç¨æ¥è®¾ç½®åçnetfilteræ è®°å¼ãåªéç¨äºmangle表ã
--set-mark mark
REJECT
ä½ä¸ºå¯¹å¹éçåçååºï¼è¿åä¸ä¸ªé误çåï¼å¶ä»æåµä¸åDROPç¸åã
æ-
¤ç®æ åªéç¨äºINPUTãFORWARDåOUTPUTé¾ï¼åè°ç¨è¿äºé¾çç¨
æ·èªå®ä¹é¾ãè¿å 个é项æ§å¶è¿åçé误åçç¹æ§ï¼
--reject-with type
Typeå¯ä»¥æ¯icmp-net-unreachableãicmp-host-unreachableãicmp-port-nreachableãicmp-prot
o-unreachableã icmp-net-prohibited æè
icmp-host-prohibitedï¼è¯¥ç±»åä¼è¿åç¸åºçICMPé误信æ¯ï¼é»è®¤æ¯port-unreachableï¼ãé项
echo-reply乿¯å许çï¼å®åªè½ç¨äºæå®ICMP
pingåçè§åä¸ï¼çæpingçååºãæåï¼é项tcp-resetå¯ä»¥ç¨äºå¨INPUTé¾ä¸,æ
èªINPUTé¾è°ç¨çè§åï¼åªå¹éTCPåè®®ï¼å°ååºä¸ä¸ªTCP
RSTåã
TOS
ç¨æ¥è®¾ç½®IPåçé¦é¨å«ä½tosãåªè½ç¨äºmangle表ã
--set-tos tos
ä½ å¯ä»¥ä½¿ç¨ä¸ä¸ªæ°å¼åçTOS å¼ï¼æèç¨iptables -j TOS -h æ¥æ¥çææTOSåå表ã
MIRROR
è¿æ¯ä¸ä¸ªè¯éªç¤ºèç®æ ï¼å¯ç¨äºè½¬æ¢IPé¦é¨å段ä¸çæºå°ååç®æ å°åï¼ åä¼é该å,å¹¶åªéç¨äºINPUTãFORWARDåOUTPUTé¾ï¼ä»¥ååªè°ç¨å®ä»¬çç¨æ·èªå®ä¹é¾ ã
SNAT
è¿ä¸ªç®æ åªéç¨äºnat表çPOSTROUTINGé¾ãå®è§å®ä¿®æ¹åçæºå°
åï¼æ-
¤è¿æ¥ä»¥åææçåé½ä¼è¢«å½±åï¼ï¼åæ¢å¯¹è§åçæ£æ¥ï¼å®åå«é项ï¼
--to-source
<ipaddr>[-<ipaddr>][:port-port]
å¯ä»¥æå®ä¸ä¸ªåä¸çæ°çIPå°åï¼ä¸ä¸ªIPå°åèå´ï¼ä¹å¯ä»¥éåä¸ä¸ªç«¯å£èå´ ï¼åªè½å¨æå®-p tcp æè-p udpçè§åéï¼ãå¦ææªæå®ç«¯å£èå´ï¼æºç«¯å£ä¸ 512以ä¸çï¼ç«¯å£ï¼ä¼è¢«å®ç½®ä¸ºå¶ä»ç512以ä¸ç端å£ï¼512å°1024ä¹é´çç«¯å£ ä¼è¢«å®ç½®ä¸º1024以ä¸çï¼å¶ä»ç«¯å£ä¼è¢«å®ç½®ä¸º1024æä»¥ä¸ã妿å¯è½ï¼ 端å£ä¸ä¼è¢«ä¿®æ¹ã
--to-destiontion <ipaddr>[-<ipaddr>][:port-port]
å¯ä»¥æå®ä¸ä¸ªåä¸çæ°çIPå°åï¼ä¸ä¸ªIPå°åèå´ï¼ä¹å¯ä»¥éåä¸ä¸ªç«¯å£èå´ï¼åªè½å¨æå®-p
tcp æè-p
udpçè§åéï¼ãå¦ææªæå®ç«¯å£èå´ï¼ç®æ 端å£ä¸ä¼è¢«ä¿®æ¹ã
MASQUERADE
åªç¨äºnat表çPOSTROUTINGé¾ãåªè½ç¨äºå¨æè·åIPï¼æ¨å·ï¼è¿æ¥ï¼å¦æä½ æ¥æéæIP
å°åï¼ä½è¦ç¨SNATã伪è£ç¸å½äºç»åååºæ¶æç»è¿æ¥å£çIPå°å设置ä¸ä¸ªæåï¼å½æ¥å£å³
éè¿æ¥ä¼ç»æ-
¢ãè¿æ¯å 为å½ä¸ä¸æ¬¡æ¨å·æ¶æªå¿æ¯ç¸åçæ¥å£å°åï¼ä»¥åææå»ºç«çè¿æ¥é½å°
å³é-
ï¼ã宿ä¸ä¸ªé项ï¼
--to-ports <port>[-port>]
æå®ä½¿ç¨çæºç«¯å£èå´ï¼è¦çé»è®¤çSNATæºå°åéæ©ï¼è§ä¸é¢ï¼ãè¿ä¸ªé项åªéç¨äºæå® äº-p tcpæè-p udpçè§åã
REDIRECT
åªéç¨äºnat表çPREROUTINGåOUTPUTé¾ï¼ååªè°ç¨å®ä»¬çç¨æ·èªå®ä¹é¾ãå®ä¿®æ¹åç
ç®æ IPå°åæ¥åéåå°æºå¨èªèº«ï¼æ¬å°çæçå被å®ç½®ä¸ºå°å127.0.0.1ï¼ãå®åå«ä¸
个é项ï¼
--to-ports <port>[<port>]
æå®ä½¿ç¨çç®çç«¯å£æç«¯å£èå´ï¼ä¸æå®çè¯ï¼ç®æç«¯å£ä¸ä¼è¢«ä¿®æ¹ãåªè½ç¨äºæå®äº-p tcp æ -p udpçè§åã
è¯æ
ä¸åçé误信æ¯ä¼æå°ææ åé误ï¼éåºä»£ç 0表示æ- £ç¡®ã类似äºä¸å¯¹çæè滥ç¨çå½ä»¤ è¡åæ°é误ä¼è¿åé误代ç 2ï¼å¶ä»é误è¿å代ç 为1ã
èè«
æ£æ¥è¿æªå®æã
COMPATIBILITY WITH IPCHAINS
ä¸ipchainsçå¼å®¹æ§
This iptables is
very similar to ipchains by Rusty Russell. The main
difference
is that the chains INPUT and OUTPUT are only traversed for
packets coming into
the local host and originating from the local host
respectively. Hence every
pack only passes through one of the three chains; previously
a forwarded packet
would pass through all three. The other main difference is
that -I refers to
input interface; -o refers to the output interface, and both
are available for
packets entering the FORWARD chain. iptables is a pure
packet filter when using
the default filter’ table, with optional extension
modules. This should
simplify much of the previous confusion over the combination
of IP masquerading
and packet filtering seen previously. So the following
options are handled
differently: -j MASQ -M -S -M -L There are several other
chaines in iptables iptablesåRusty
Russellçipchainsé常ç¸ä¼¼ã主è¦åºå«æ¯INPUT
é¾åªç¨äºè¿å¥æ¬
å°ä¸»æºçå,èOUTPUTåªç¨äºèªæ¬å°ä¸»æºçæçåãå æ-
¤æ¯ä¸ªååªç»è¿ä¸ä¸ªé¾ç
ä¸ä¸ªï¼ä»¥å转åçåä¼ç»è¿ææä¸ä¸ªé¾ãå¶ä»ä¸»è¦åºå«æ¯
-i
å¼ç¨è¿å¥æ¥å£ï¼-oå¼
ç¨è¾åºæ¥å£ï¼ä¸¤èé½éç¨äºè¿å¥FORWARDé¾çåãå½åå¯éæ©å±æ¨¡åä¸èµ·ä½¿ç¨
é»è®¤è¿æ»¤å¨è¡¨æ¶ï¼iptablesæ¯ä¸ä¸ªçº¯ç²¹çåè¿æ»¤å¨ãè¿è½å¤§å¤§åå°ä»¥å对IP伪è£å
åè¿æ»¤ç»å使ç¨çæ··æ·ï¼æä»¥ä»¥ä¸é项ä½äºä¸åçå¤çï¼
-j MASQ -M -S -M -L
å¨iptables䏿å 个ä¸åçé¾ã
åè§
iptables-HOWTOæè¯¦ç»çiptablesç¨æ³,对netfilter-hacking-HOWTOä¹æè¯¦ç»çæ¬è´¨è¯´æã
ä½è
Rusty Russell
wrote iptables, in early consultation with Michael Neuling.
Marc Boucher made Rusty abandon ipnatctl by lobbying for a
generic packet
selection framework in iptables, then wrote the mangle
table, the owner match,
the mark stuff, and ranaround doing cool stuff everywhere.
James Morris wrote the TOS target, and tos match. Jozsef
Kadlecsik wrote the REJECT target. The Netfilter Core Team
is: Marc Boucher, Rusty Russell.
Mar 20, 2000
[䏿çç»´æ¤äºº]
æ¨é¹Â·NetSnake <netsnake@963.net>
[ä¸æçææ°æ´æ°]
2003.11.20
ãä¸å½linux论åmanæå页翻è¯è®¡åã:
http://cmpp.linuxforum.net
è·
æ¬é¡µé¢ä¸æçç±ä¸æ
man
æå页计åæä¾ã
䏿 man
æå页计åï¼https://github.com/man-pages-zh/manpages-zh