Linux中用来实现网络数据控制功能的内核模块netfilter

 
netfilter可以对网络数据进行允许、丢弃、修改操作
 
netfilter支持以下数据分类方式:
 
源、目标IP地址
 
使用接口
 
使用协议(TCP、UDP、ICMP等)
 
端口号
 
TCP连接状态
 
netfilter基本概念:
 
chain(链,也叫过滤点):INPUT、FORWARD、OUTPUT、PREROUTING、POSTROUTING
 
表(功能):filter、nat、mangle
 
用户通过iptables命令来管理netfilter模块
 
iptables通过规则对数据进行访问控制
 
一个规则占用一行
 
规则按顺序排列
 
每个数据包按规则顺序依依匹配,如果有匹配的,则立即执行该规则指定的动作(允许、丢弃)
 
 
 
列出现有iptables规则:
 
iptables -L
 
删除所有iptables规则:
 
iptables -F
 
插入一个iptables规则:
 
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
 
iptables规则保存在配置文件:
/etc/sysconfig/iptables
 
以下命令可以将当前iptables配置保存到配置文件中:
service iptables save
 
 
注意:
     如果是远程管理一个linux主机并修改iptables规则,则必须先创建一条允许来自于客户主机(如果是管理服务器大部分情况是管理人员SSH远程到IDC机房进行操作)的SSH流量确保这是第一条iptables,否则可能会由于配置失误将自己锁在外面。