开启iptables

ehco '1' > /proc/sys/net/ipv4/ip_forward

sysctl -p 

命令行里两步

 

首先开启地址转换

iptables -t nat -A POSTROUTING -s $innet -o $EXTIF -j MASQUERADE 

其中 $innet 代表内网网段, $EXTIF 代表外部连接 如果是ADSL ,通常为 ppp0

然后

设置FORWARD 默认DROP

iptables -P FORWARD DROP

接着

 

iptables -A FORWARD  -i ppp0 -s 0.0.0.0/0 -d 172.16.0.0/16 -j ACCEPT

 

 

 

表示ppp0 可以转发到 172.16.0.0/16的网络上

 

iptables -A FORWARD  -i eth2 -m mac --mac-source 00:0c:29:15:52:92 -j ACCEPT
 
表示在eth2 接口上放行指定的MAC地址。
 
到这步应该基本MAC地址控制上网权限已经搞定了。
 
需要说明的是,在INPUT链上也可以做mac地址过滤,但是只是可以让客户端ping 不通主机,也许还能让客户端访问不了某些服务。但即使drop了,地址转换还是能工作。
 
 
为了简化管理
 
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
 
收工
 
保存 iptables-save > fw
恢复 iptables-restore < fw
 
设置开机启动
 
chkconfig --level 345 iptables on
 
设置 开机自动读取配置信息
 
vim /etc/rc.local
iptables-restore < 绝对路径/配置文件。