我们要做的是简单的转址(NAT)和过滤(FILTER)
假定你的网络如下:
-----------------------------------
[internet]
|
|
[主机]
|
|
[HUB交换机]
| |
| |
[内网机器] [].....
------------------------------------
其中:主机对外IP为1.2.3.4(eth0), 对内192.168.0.1(eth1), 内网为192.168.8.0/24
一、设定LINUX主机,使内网其它机器通过这台主机上网
如果主机是拨号上网:
#iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
如果主机通过实体IP上网:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1
/proc/sys/net/ipv4/ip_forward
二、设定LINUX主机,限制内部对外部的访问,和外部对内部的访问
# 我们用最常用的策略,先关闭一切,然后打开必要的,再然后用什么打开什么iptables -P FORWARD DROP;
iptables -A FORWARD -f -j ACCEPT;
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT;
# 内到外,我们只让他们通过浏览器上网
iptables -A FORWARD -p tcp --dport www -i eth1 -0 eth0 -j ACCEPT
# 迫于“压力”,又开放了MSN
IPTABLES -A FORWARD -p TCP --dport 1863 -j ACCEPT
IPTABLES -A FORWARD -p TCP --dport 7801:7825 -j ACCEPT
IPTABLES -A FORWARD -p TCP --dport 6891:6900 -j ACCEPT
iptables -A FORWARD -d 64.4.13.0/24 -j ACCEPT