Linux IPTables

Netfilter(内核):
    chain(链、过滤点):INPUT、FORWARD、OUTPUT、PREROUTING、POSTROUTING
    表(功能):filter、nat、mangle

用户通过iptables命令来管理netfilter模块
iptables通过规则对数据进行访问控制
一个规则占用一行
规则按顺序排列 (在前面的先生效)
每个数据包按规则顺序依依匹配,如果有匹配的,则立即执行该规则指定的动作(允许、丢弃)

查看当前设置:
    iptables -L  
    service iptables status

插入: -I (TABLE)
删除:  -D (TABLE)

动作(-j):
 ACCEPT
 DROP
 REJECT

筛选:
 基于IP地址
    -s 源IP地址
    -d 目标IP地址
 基于接口
    -i eth0  收接口
    -o eth1  发接口
 基于协议及端口
     -p (tcp\udp\icmp)  --(dport\sport) x
 排除参数  '!' 

NAT:
  进行路由跳转(PREROUNTING) -j DNAT --to-dest xxx.xxx.xxx.xxx
  对出向数据跳转(OUTPUT)    -j DNAT --to-dest xxx.xxx.xxx.xxx
  对数据流伪装(POSTROUNTING) -o eth0 -j MASQUERADE (将数据伪装成eth0的IP,例如公网IP)
  隐藏源IP地址(POSTROUNTING) -j SNAT --to-sources xxx.xxx.xxx.xxx

用iptables命令设置不会永久保存,需要要写入文件

1、iptables规则保存在配置文件:
/etc/sysconfig/iptables

2、以下命令可以将当前iptables配置保存到配置文件中:
service iptables save

IP地址格式 xxx.xxx.xxx.xxx/(子网掩码)

命令示范:

插入一个iptables规则:
iptables -I INPUT 3 -p tcp --dport 80 -s 192.168.1.0/24 -j DROP
iptables -I INPUT 3 -p tcp --dport 80 -s '!' 192.168.1.0/24 -j DROP

删除一个iptables规则:
iptables -D INPUT 3
iptables -D INPUT  -p tcp --dport 80 -s 192.168.1.0/24 -j DROP

配置一个NAT伪装:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

posted @ 2013-08-14 16:28  wuminye  阅读(372)  评论(0编辑  收藏  举报