对链操作:
  建立一个新的链 ( -N)
  删除一个链 ( -X) 
  改变一个内建(默认)规则链 ( -P)
  列出链中的所有规则 ( -L) 
  清除一个链中的所有规则 ( -F)
对规则的基本操作:
  -A 在链尾加一条规则
  -I 插入规则
  -D 删除规则
  -R 替代一条已存在的规则
  -L 列出所有规则
对链与规则的目标动作:
  ACCEPT 接收该数据报
  DROP 丢弃该数据报
  REJECT 拒绝该数据报
对规则的基本匹配条件:
  -p 指定协议 (tcp / udp/ icmp)
  -s 源地址 (IP Address / mask Len)
  -d 目的地址 (IP Address / mask Len)
  -i 数据报输入接口
  -o 数据报输出接口  
  --sport 源端口协议 (tcp / upd / icmp)
  --dport 目的端口协议 (tcp / upd / icmp)  
 附:
 PREROUTING 用于DNAT 只能选择进入接口 ( -i )
 POSTROUTING用于SNAT 只能选择送出接口 ( -o )  
在使用iptables 前装载 NAT 模块
  modprobe iptable_nat (主要模块)
 modprobe ip_contrack
 modprobe ip_contrack_ftp
 modprobe ip_nat_ftp
基本语法:
 iptables -t table -Operation chain -j target
 例:允许所有IP到本机的SMTP port 的连接
 iptables -t filter -A INPUT -p tcp --dport smtp -j ACCEPT
 删除一个规则:
 iptables -t filter/nat/mangle -D INPUT/OUTPUT/FORWARD/… 1/2/3/…
 删除所有规则:
 iptables -t filter/nat/mangle -F
 删除一个外加的链:
 iptables -t filter/nat/mangle -X (外加的链)
 检查当前链状态:
 iptables -L -t filter/nat/mangle or iptables -L (只对filter有效)
 改变一个链的规则:
 iptables -t filter/nat/mangle -P INPUT/OUTPUT/FORWARD/…
 不允许所有电脑ping my server:
 iptables -A INPUT -p icmp -j DROP
 允许内网ssh连server:
 iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport ssh -j ACCEPT
 阻塞外网对内网server的ssh连接:
 iptables -A INPUT -s ! 192.168.0.0/24 -p tcp --dport ssh -j DROP
 阻塞向外网的的telnet连接
 iptables -A OUTPUT -p tcp --dport telnet -j DROP
 禁止192.168.0.4的IP访问所有www:
 iptables -A FORWARD -s 192.168.0.4 -p tcp --dport www -j REJECT
 禁止某NIC’s Address 不能访问所有的www:
 iptables -A FORWARD -p tcp -m mac -- mac-source <mac adderss> -d 0.0.0.0 - --dport www -j DROP
在NAT(-nat)表中加入一条规则,在路由之前(-A PREROUTING) 指向1.2.3.4(-d 1.2.3.4)8080 port (-dport 8080)的tcp包(-p tcp)目标地址 (-j DNAT)被重定向到192.168.0.4的80port(--to 192.168.0.4:80):  
 iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 - - dprot 8080 -j DNAT - - to 192.168.0.4:80  
SNAT的特例为伪装(MASQUERADE)只用于动态分配IP地址的情况(静态IP地址请用SNAT)
伪装所有ppp0送出的东西:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
伪装来源为192.168.0.4的www协议到ppp0送出到202.64.164.247的80端口:
 iptables -t nat -A POSTROUTING -s 192.168.0.4 -p tcp --sport www -o ppp0 -j MASQUERADE --to 202.64.164.247

附内核的编辑:
  /usr/src/kernel’s version/make menuconfig
  /usr/src/kernel’s version/make xconfig
  /usr/src/kernel’s version/make config
  内核配置完后运行:
 make bzImage
 make modules
make modules_install