Iptables
配置
 
iptables  –t  [filter | nat]  –L  –nv
-t  后面接表格 默认为filter    -L 列出目前table的项目
-n  不进行IP与HOSTNAME的反查  –v 显示更详细的信息
iptables  –F  –X   –Z
-F   清除本table中所有定义的规则
-X   清除所有用户自定义的table
-Z   将所有chain的计数清零           
以上操作不会改变table
的默认规则
 
iptables [-t nat] –P [INPUT, OUTPUT, FORWARD] [ACCEPT, DROP]
 -P 定义策略 默认情况不加-t为filter定义默认策略
iptables [- A I
链] [-i o
网络接口] [ -p
协议] [-s
来源IP/
网段] [-d
目标IP/
网段] –j [ACCEPT | DROP | LOG]
-A 在原规则的后面增加一条规则 –I 在原规则的最前面插入一条规则 
链是指INPUT
-i 数据包进入的那个接口,与INPUT链配合使用 -o 传出的接口与OUTPUT链
-p 协议 主要的数据包格式有tcp udp icmp all   
未设置的规定表示完全接受
 
iptables [-AI
链] [-io
网络接口] [-p tcp, udp] [-s
来源IP/
网段] [--sport
端口范围]
              [-d
目标IP/
网段] [--dport
端口范围] –j [ACCEPT | DROP]
       --sport 端口范围:限制来源的端口号码,可以是连续的1024:65535
iptables –A INPUT -m state --state
状态[ -m mac --mac-source
硬件地址]
       -m state 状态模块    mac 网卡硬件地址
       --state INVALID 无效的数据包    ESTABLISHED 已经联机成功的联机状态
              NEW 想要建立联机的数据包状态 RELATED 表示与我们发出的数据包有关
iptables-save > filename   iptables-restore < filename
存储和恢复防火墙规则
 
iptables –A INPUT –i $INIF –j ACCEPT 
让NAT
主机可以接受来自内部LAN
数据包
echo “1” > /proc/sys/net/ipv4/ip_forward  
开启Linux
主机的转发功能
iptables –t nat –A POSTROUTING –s $innet –o $EXTIF –j MASQUERADE
MASQUERADE可以让数据包伪装成 $EXTIF这块网卡上的IP地址
iptables –t nat –A POSTROUTING –o eth1 –j SNAT –to 192.168.200.250
将内网的地址之际修改为192.168.200.250这个IP地址
 
iptables –t nat –A PREROUTING –p tcp –i eth1 - -dport 80 –j DNAT --to 192.168.1.101:80
将连接到eth1接口的端口为89的传送到内部的192.168.1.210主机
iptables –t nat –A PREROUTING –p tcp –i eth1 - -dport 80 –j REDIRECT --to-port 111
定向到本机的其他端口、
 
iptables –A
 INPUT –p icmp –icmp-type
类型 –j ACCEPT
--icmp-type 后面接类型可以用代号 如8代表echo request
 
/proc/sys/net/ipv4/tcp_syncookies
/proc/sys/net/ipv4/icmp_echo_ignore_boradcasts