Linux 版 (精华区)

发信人: NightOwl (Demon&Daemon), 信区: Linux
标  题: 如何在Linux中设置透明代理(ZZ)
发信站: 哈工大紫丁香 (Fri Jul 28 04:52:17 2000) , 转信

如何在Linux中设置透明代理

发布日期: 2000-7-21 
内容:
------------------------------------------------------------------------------
--
 
来源:中国Linux论坛 <http://www.linuxforum.net>
作者:吴阿亭 [中国Linux论坛应用版版主]


1.什么是透明代理?
如果你问:我如何才能使得用户的浏览器不需要任何代理设置就能使用我的
Squid cache代理服务器上网?,此时你就需要使用透明代理。透明代理让你
的客户端不需设置任何代理,当包经过透时代理服务器时实际上被重定向到
squid代理服务器的代理端口(如8080),即由本地代理服务器向外请求所需
数据然后拷贝给客户端。

2.我需要什么样的环境才能实现透明代理?
a.客户端的windows PC的网关必须设成Squid代理服务器,因为既然你的
browser中没有任何代理设置,你要访问某个站点时,包必须经经过squid
代理服务器才能被重定向,故这是最基本的条件。
b.客户端必须正确设置DNS服务器。因为既然现在不用设置任何代理。则
DNS必须由browser来解析,也就是要由客户端的PC中TCP/IP中设置的DNS
服务器来正确解析出某个站点的IP地址来
c.服务器端可以安装squid代理服务器,1.x or 2.x版本均可。

3.配置Squid代理,启动透明代理功能
Squid-2
  加下面的行到你的/etc/squid/squid.conf中
http_port 8080
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Squid-1.1
加下面的行到/etc/squid.conf

http_port 8080
httpd_accel virtual 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

4. 重启动squid. 用下面的命令:
#/usr/sbin/squid -k reconfigure
如提示内核不支持透明代理。则你需要重新编译内核,enable 透明代理的支持。

下面是你需要启动的内核项目:
        [*] Network firewalls
        [ ] Socket Filtering
        [*] Unix domain sockets
        [*] TCP/IP networking
        [ ] IP: multicasting
        [ ] IP: advanced router
        [ ] IP: kernel level autoconfiguration
        [*] IP: firewalling
        [ ] IP: firewall packet netlink device
        [*] IP: always defragment (required for masquerading)

        [*] IP: transparent proxy support


5. 下面的命令针对Linux 2.2.x内核:
  # Accept all on lookback
    /sbin/ipchains -A input -j ACCEPT -i lo
   #Accept my own IP, to prevent loops (repeat for each interface/alias)
    /sbin/ipchains -A input -j ACCEPT -p tcp -d 192.168.11.1/32 80
   #Send all traffic destined to port 80 to Squid on port 80
    /sbin/ipchains -A input -j REDIRECT 8080  -p tcp -s 192.168.11.0/24 -d 0/0
 80

下面的命令针对Linux 2.0.x内核:

        # Accept all on loopback
        ipfwadm -I -a accept -W lo
        # Accept my own IP, to prevent loops (repeat for each interface/alias)
        ipfwadm -I -a accept -P tcp -D 192.168.11.1/32 80
        # Send all traffic destined to port 80 to Squid on port 3128
        ipfwadm -I -a accept -P tcp -S 192.168.11.0/24 -D 0/0 80 -r 8080

6.应注意的问题:

a. 这种透明代理只能针对http协议,不能针对FTP协议
b. PC的默认网关应设成squid 代理服务器
c. 防火墙重定向规则在其它的input规则的前面,注意顺序。
如:
/etc/rc.d/rc.firewall:


        #!/bin/sh
        # rc.firewall   Linux kernel firewalling rules
        FW=/sbin/ipfwadm

        # Flush rules, for testing purposes
        for i in I O F # A      # If we enabled accounting too
        do
                ${FW} -$i -f
        done

        # Default policies:
        ${FW} -I -p rej         # Incoming policy: reject (quick error)
        ${FW} -O -p acc         # Output policy: accept
        ${FW} -F -p den         # Forwarding policy: deny

        # Input Rules:

        # Loopback-interface (local access, eg, to local nameserver):
        ${FW} -I -a acc -S localhost/32 -D localhost/32

        # Local Ethernet-interface:
    
        # Redirect to Squid proxy server:
        ${FW} -I -a acc -P tcp -D default/0 80 -r 8080


        # Accept packets from local network:
        ${FW} -I -a acc -P all -S localnet/8 -D default/0 -W eth0

        # Only required for other types of traffic (FTP, Telnet):

        # Forward localnet with masquerading (udp and tcp, no icmp!):
        ${FW} -F -a m -P tcp -S localnet/8 -D default/0
        ${FW} -F -a m -P udp -S localnet/8 -D default/0

Here all traffic from the local LAN with any destination gets redirected to th
e
local port 8080. Rules can be viewed like this: 

        IP firewall input rules, default policy: reject
        type  prot source               destination          ports
        acc   all  127.0.0.1            127.0.0.1            n/a
        acc/r tcp  10.0.0.0/8           0.0.0.0/0            * -> 80 => 8080
        acc   all  10.0.0.0/8           0.0.0.0/0            n/a
        acc   tcp  0.0.0.0/0            0.0.0.0/0            * -> *


 



欢迎访问我们的站点http://www.isbase.com/ 
绿色兵团给您安全的保障


--
       @@@@           @@@@
     @@@@@ @@   N   @@ @@@@@
   \ @@@@ @ @@  i  @@ @ @@@@ /
      @@@  @@   g   @@  @@@
        @@@     h     @@@
      \         t         /
※ 来源:.哈工大紫丁香WWW bbs.hit.edu.cn. [FROM: 202.97.255.77] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.493毫秒