iptables NAT网络地址转换及扩展匹配规则
NAT网络地址转换
前提:打开IP转发!
1、SNAT
内网通过防火墙访问公网Web服务器:
SNAT源地址转换:将内网穿过防火墙的数据包进行源地址转换(在路由后进行转换)。
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 202.204.65.1
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE #伪装
2、DNAT
外网通过防火墙访问企业内网Web服务器:
DNAT:将外网穿过防火墙时进行目的地址转换,转换为公司内网的Web服务器地址(在路由前转换)。
# iptables -t nat -A PREROUTING -d 202.204.65.1 -p tcp --dport 80 -j DNAT --to 192.168.1.77
3、iptables扩展的匹配
<1> iprange:匹配ip地址段
# iptables -A INPUT -m iprange --src-range 192.168.1.1-192.168.1.50
# iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.1.1-192.168.1.50 -j SNAT --to 10.1.1.1
<2> ttl:生存周期(不同操作系统的TTL值默认不一样,Linux是64,windows是128)
# echo 100 >/proc/sys/net/ipv4/ip_default_ttl
# iptables -A INPUT -m ttl --ttl-gt 100 -j DROP #数据包大于100就丢弃
<3> state:数据包状态,适用于TCP/UDP
NEW:通信过程中主动发起的第一个数据包
ESTABLISHED:已建立状态,回应给NEW包的数据包
例如:拒绝所有新连接
当某主机ping防火墙时,发起NEW包,防火墙将NEW包丢弃,从而不返回给远程主机;
或者将防火墙返回的的ESTABLISHED自我屏蔽;
# iptables -A INPUT -m state --state NEW -j DROP
或
# iptables -A OUTPUT -m state --state ESTABLISHED -j DROP
INVALID:无效的包
RELATED:关联状态(FTP)
<4> limit:限制数据包的速率(单位时间内的MTU个数)
# iptables -A INPUT -p icmp -m limit --limit 10/m -j ACCEPT #每分钟10个包
# iptables -A INPUT -p icmp -j DROP
例如:限速在30K/s
ifconfig:查看MTU(1500字节),30K/1500B=20个MTU
# iptables -A INPUT -m limit --limit 20/s -j ACCEPT #每秒钟20个包
# iptables -A INPUT -j DROP
# wget 192.168.1.77/down.big #测试下载速率
<5> mac:网卡MAC地址(只用于INPUT、FORWARD链)
例如:禁止局域网的某主机ping
# iptables -A INPUT -m mac --mac-source 00:14:78:28:E3:82 -p icmp -j DROP
<6> owner:防火墙上产生数据包的拥有者(组),只能限制防火墙上向外发数据包的用户,只能用于OUTPUT链;
# iptables -A OUTPUT -m ower --uid-ower $(id -u test) -j DROP
注意:ping命令有suid权限,即使使用上条规则也能ping通
# iptables -A OUTPUT -m ower --gid-ower $(id -g test) -j DROP
<7> mark:标记
因为防火墙先检查PREROUTING链,所以应将标记添加在在PREROUTING链上
# iptables -t mangle -A PREROUTING -s 192.168.1.77 -j MARK --set-mark 1
# iptables -A INPUT -m MARK --mark 1 -p icmp -j DROP
附:
iptables表和链结构:
iptables体系结构图:
iptables语法结构:

http://hi.baidu.com/googleu/blog/item/6919edf8e37dd952252df21e.html
uddtm 2010-03-09
网站地图