基于Linux内核的透明代理配置方案

来源:21IC 作者:—— 时间:2011-11-07 15:50

  OK,squid设置结束了,下面我们开始配置iptables

  可以用前面所提到的配置工具,但是我没有试过,所以是直接用iptables命令来做的。

  可以man iptables来查看帮助

  我们把iptables的设置命令存在一个脚本文件中,假设脚本文件名为firewall,然后将此文件存放在/etc/init.d中,并且在启动文件中运行此脚本。以下为操作步骤

  1、touch /etc/init.d

  2、vi /etc/init.d

  加入以下内容:

  #!/bin/sh

  echo "Enabling IP Forwarding..."

  echo 1 > /proc/sys/net/ipv4/ip_forward

  echo "Starting iptables rules..."

  #Refresh all chains

  /sbin/iptables -F -t nat

  iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp

  --dport 80 -j REDIRECT --to-ports 3128

  iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o

  ppp0 -j MASQUERADE

  对于以上命令的解释如下:

  /proc/sys/net/ipv4/ip_forward必须设置为1(默认是0)才可以使用路由功能。

  /sbin/iptables -F -t nat将nat table中的所有现存规则清空。

  eth0:为Linux机器中的网卡。

  3128:为squid中默认的监听端口。

  ppp0:为linux中的ADSL设备(在SuSE中为ppp0,在redhat中可能是dsl0)。

  MASQUERADE:适用于拨号上网的服务器,因为没有静态IP地址,对于有静态IP的服务器,可以用SNAT --to-source ipadress来替代。

  注:以上的命令没有涉及防火墙,请自行参考配置,以上命令也没有删除filter table中的规则,也就是如果以前设置过防火墙,那么不会受到影响。

  3、chmod u+x firewall,更改文件属性,使其可以被执行

  4、编辑/etc/init.d/boot.local文件,在最后加上/etc/init.d/firewall这一句,确保开机就执行此脚本。

  注:SuSE中是boot.local,对于redhat,则需要编辑/etc/rc.d/rc.local文件。

  5、运行firewall,规则立刻生效。

  到此为止,所有配置结束。

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子