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