iptables防火墙技术

1,四表五链
   四表: filter 表——nat 表——raw 表———mangle 表     

1)  filter: 控制数据包是否允许进出及转发(INPUT、OUTPUT、                     FORWARD),可以控制的链路有input, forward, output
      2) nat:控制数据包中地址转换,可以控制的链路有prerouting, input, output, postrouting
      3)  mangle:修改数据包中的原数据,可以控制的链路有prerouting, input, forward, output, postrouting
      4)  raw:控制nat表中连接追踪机制的启用状况,可以控制的链路有prerouting, output   

五链:PREROUTING,INPUT , FORWARD, OUTPUT,POSTROUTING               PREROUTING, 路由前     

INPUT, 数据包流入口   

FORWARD, 转发数据包   

OUTPUT, 数据包出口   

POSTROUTING, 路由后

2,语法规则:   iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION

默认使用filter, 是指操作的表:filter、nat、mangle或raw,        COMMAND,子命令,定义对规则的管理 ( -A  -I  -D   -R)         

-A, —append  追加新规则于指定链的尾部;    

 -I,—insert  插入新规则于指定链的指定位置,默认为首部;
-R,  —replace  替换指定的规则为新的规则;
-D, –delete  根据规则编号删除规则;
chain, 指链路(INPUT,OUTPUT,FORWARD)  

CRETIRIA, 匹配的条件或标准 [ -s 0.0.0.0/0  -d 0.0.0./0 -p (tcp,udp,icmp     –dport 8080 ) ]  

ACTION,  操作动作(  -j  ACCEPT,REJECT,DROP)

2.1)CRETIRIA, 匹配的条件或标准:

–sport 源端口  

–dport  目的端口

-p 匹配的协议 tcp, udp ,icmp 

-j –targetname 匹配的类型:     

常用:DROP ACCEPT REJECT     

扩展:     

  -DNAT    适用于PREROUTING链      

 -SNAT  适用于OUTROUTOING链  

    —REDIRECTION 重定向 适用于 PREROUTING,OUTROUTING 链
    -m  —matchname 匹配的类型:    

 

1,multiport:以离散或连续的 方式定义多端口匹配条件,最多15个
例如:iptables -I INPUT -d 172.16.0.7 -p tcp -m multiport –dport 22,80,139,445,3306 -j ACCEPT
2,iprange:以连续地址块的方式来指明多IP地址匹配条件;
例如:iptables -I INPUT -d 172.16.0.7 -p tcp -m multiport –dport 22,80,139,445,3306 -m iprange –src-range 172.16.0.61-172.16.0.70 -j REJECT

例如:
iptables -A INPUT -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp –dport 9998 -j REJECT
简写:iptables -A INPUT -p tcp –dport 9998 -j REJECT
iptables -A OUTPUT -s 10.111.196.168/32 -p tcp –sport 10001 -j DROP


3.SNAT 地址转换:
1)固定IP地址转换
iptables -t nat -A POSTROUTING -s 10.111.196.0/16 -o eth0 -j SNAT –to 39.108.114.202
-o out-interface
2)非固定地址转换:
Iptables -t nat POSTROUTING -s 10.111.196.0/16 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
4.DNAT 目的地址转换:
1)全转换:一一映射
iptables -A PREROUTING -i eth0 -d 39.108.114.202 -j DNAT –to-destination 10.111.196.168
2)端口映射
iptables -A PREROUTING -p tcp -d 39.108.114.202 –dport 3030 -j DNAT –to-destination 10.111.196.168:30