功能:用于过滤IP包,实现NAT。常用的表和链有两种:filter和nat。每个表包含多个链,每个链是一个规则序列。过滤表包括INPUT、FORWARD、OUTPUTchain.nat表包含PREROUTING、OUTPUT、POSTROUTING链。接收数据包的过程。当本机收到数据包后,会先进行nat.PREROUTING处理;如果数据包的目的地址是本机,则交给filter.INPUT进一步处理;然后将数据包交给本地的上层协议栈。如果数据包的目的地址不是本机,则交给filter.FORWARD做进一步处理;然后交给nat.POSTROUTING处理。发送数据包的处理数据包依次经过nat.OUTPUT和filter.OUTPUT处理;然后由nat.POSTROUTING处理。常用选项-t:指定处理哪个表,默认为filter。-n:以数字形式显示地址和端口号。规则组成-pprotocol:指定协议,可以抓取为tcp,udp,icmp.[!]-saddress[/mask]:指定源地址,可以是主机名、网络名和IP地址。'!'表示否定.[!]-daddress[/mask]:指定目的地址,可以是主机名、网络名和IP地址。[!]-i[名称]:传入网络接口。[!]-o[名称]:传出网络接口。[!]--sportport[:port]:指定源端口范围。[!]--dportport[:port]:指定目的端口范围。1.列出规则[root@controller~]#iptables-tnat-LPOSTROUTING-n--line-numberChainPOSTROUTING(policyACCEPT)numtargetprotoptsourcedestination1RETURNall--192.168.122.0/24224.0.0.0/242全部返回--192.168.122.0/24255.255.255.2553MASQUERADEtcp--192.168.122.0/24!192.168.122.0/24masqports:1024-655354MASQUERADEudp--192.168.122.0/24!192.168.122.0/24masqports:1024-655354MASQUERADEudp--192.168.122.0/24!192.168.122.0/24masqports:102RA8UE25DE.16all--51RA835DE.16122.0/24!192.168.122.0/246POSTROUTING_direct所有--0.0.0.0/00.0.0.0/07POSTROUTING_ZONES_SOURCE所有--0.0.0.0/00.0.0.0/08POSTROUTING_ZONES所有--0.0.0.0/00/0.0。0-L:列出指定链中包含的规则。--line-number:显示每个规则在链中的位置(行号)。2.创建链[root@localhost~]#iptables-tfilter-Nchain1-N:创建指定名称的链。3.追加规则[root@localhost~]#iptables-Achain1-ptcp--dport22-jDROP-A:追加规则到指定链的末尾。--dport:匹配指定的目的端口号。-jDROP:如果匹配到规则,则丢弃数据包。4.插入规则[root@localhost~]#iptables-IINPUT1-s116.56.140.61-d192.168.122.132-jchain1-I:插入指定规则到指定链的指定位置,这里是开头插入链的(编号1)。-jchain1:如果规则匹配,则跳转到chain1链继续匹配。5.替换规则[root@localhost~]#iptables-RINPUT1-s192.168.122.1-d192.168.122.132-jchain1-R:将指定的链规则替换为新的然后,在这里替换第一条规则。6.删除规则[root@localhost~]#iptables-DINPUT1-D:删除指定链上的指定规则,这里删除第一条规则。7、清除规则[root@localhost~]#iptables-Fchain1-F:清除指定链上的所有规则。8.重命名自定义链[root@localhost~]#iptables-Echain1CHAIN1-E:Renamechain1toCHAIN1.9.删除自定义链[root@localhost~]#iptables-XCHAIN1-X:删除指定的自定义链,需要保证没有其他链引用要删除的链。10.设置内置链的默认目标规则[root@localhost~]#iptables-PINPUTACCEPT-P:设置指定链的默认目标规则(需要是内置链),这里的意思,如果所有规则都不匹配,则接受数据包。11.SNAT注意:主机需要先开启转发功能:临时的[root@localhost~]#echo"1">/proc/sys/net/ipv4/ip_forward永久的:#/etc/sysctl.confnet.ipv4。ip_forward=1[root@localhost~]#sysctl-p[root@localhost~]#iptables-tnat-APOSTROUTING-s10.10.177.0/24-oeth0-jSNAT--to-source10.10.188.232--to-source:data包的源地址替换为指定地址。[root@localhost~]#iptables-tnat-APOSTROUTING-s192.168.10.0/24-jMASQUERADE-jMASQUERADE:自动替换源具有适当地址的数据包地址。12.DNAT[root@localhost~]#iptables-tnat-APREROUTING-d192.168.31.168-ptcp--dport80-ieth0-jDNAT--to-destination192.168.31.167:8080--to-destination:将数据包的目的地址替换为指定的地址。
