Linux怎样设置透明代理
学习啦在线学习网Linux怎样设置透明代理
透明模式的特点就是对用户是透明的(Transparent),即用户意识不到防火墙的存在。那么Linux怎样设置透明代理?今天学习啦小编与大家分享下Linux设置透明代理的具体操作步骤,有需要的朋友不妨了解下。
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 the
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 * -> *
学习啦在线学习网 看过“Linux怎样设置透明代理”的人还看了:
5.mv命令怎么用