用Iptables实现简单的上网和过滤初试

发表于:2007-07-04来源:作者:点击数: 标签:
我们要做的是简单的转址(NAT)和过滤(FILTER) 假定你的 网络 如下: ----------------------------------- [internet] | | [主机] | | [HUB交换机] | | | | [内网机器] []..... ------------------------------------ 其中:主机对外IP为1.2.3.4(eth0),

  我们要做的是简单的转址(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

原文转自:http://www.ltesting.net