代理服务之正向透明代理

正向代理之透明代理

所谓的透明代理,指的是对客户端来是透明的,它并不知道是通过代理服务器上网的!


外网----[代理服务器]------内网
eth1 eth0
192.168.3.121 192.168.1.249


作为一个透明代理服务器,有以下特点:
1
、代理服务在GW上配置
2
、用LINUX OS主机做GW --- 打开ip_forward功能
3
GW一般都多块网卡,连接内外网
4
、代理服务器本身可以上网


-------------------
公司中做了这样一个透明代理服务器
1
、代理上网,并缓存加速
2
、做访问控制
8
002200可以上网
不可以上kaixin001.com qzone.com renren.com
不可以下载.mp3 .mp4 .wav .rmvb

代理服务器端:

外网----[代理服务器]------内网
eth1 eth0
192.168.3.121 192.168.1.249

squid
服务器:
1
、安装包
yum -y install squid

2
、按需修改配置文件
]# vim /etc/squid/squid.conf
440 acl worktime time SMTWHFA 08:00-22:00
441 acl baddomain dstdomain .kaixin001.com
442 acl baddomain2 dstdomain .163.com
443 acl baddomain3 dstdomain .qzone.com .qq.com
444 acl bad urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$

580 acl all src 0.0.0.0/0.0.0.0

643 #http_access deny all
如果这行生效,表示所有的src,想通过代理服务器上网,都会被拒绝

643 #http_access deny all
644 http_access deny bad
645 http_access deny baddomain
646 http_access deny baddomain
647 http_access deny baddomain2
648 http_access deny baddomain3
649 http_access allow worktime
650 http_access allow all
允许的应该放到后面

934 http_port 3128 transparent
定义监听端口及透明代理工作模式

3
、启动服务

]# service squid restart



4
、代理服务是配置在网关上的,因而需要打开ip_forward功能

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


5
、通过iptables规则,让代理服务器收到客户端对外80端口的请求后,把请求交给本机的3128端口监听的程序squid)处理
[root@localhost ~]# netstat -tnlp | grep :3128
tcp 0 0 0.0.0.0
:3128 0.0.0.0:* LISTEN 4627/(squid)

]# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 3128

client:
客户端都需要配置:
正确的ip/gw/dns(最好是搭一个DHCP服务器来分配)

其中ipsquid在同一网络
gw
是指向squid
dns
是网络中实际的dns服务器

]# ifconfig eth0 | grep inet
inet addr:192.168.1.254 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::2ee:eeff:fe00:a76/64 Scope:Link


]# route del default
]# route add default gw 192.168.1.249

]# cat /etc/resolv.conf
nameserver 202.106.0.20
nameserver 202.106.46.151

重点:代理服务器只做80端口的代理,客户端需要做DNS解析时,需要通过解析成功
在网关上配置:
]# iptables -t nat -A POSTROUTING -p udp --dport 53 -j SNAT --to 192.168.3.121
(此ip是网关的外网卡IP










squid.conf中重要的字段


/etc/squid/squid.conf
中重要的字段:

http_port 3128
定义默认监听的代理端口
cache_dir ufs /var/spool/squid 100 16 256
reiserfs/ufs
缓存目录 缓存大小多少M 一级目录的个数 二级目录的个数

为了让缓存效率更高,你可以考虑在内存空间充足的情况下,划分出一块内存来当磁盘用。但是请注意,断电内存中缓将丢失
]# mount -t tmpfs tmpfs /var/spool/squid/ -o size=500M


cache_access_log /var/log/squid/access.log
定义缓存访问日志文件
cache_store_log /var/log/squid/store.log
缓存存储日志文件
maximum_object_size 4096K
指定客户端需代理出问题时,可以联系这个代理服务器,或者给这个邮箱发邮件。
visible_hostname squidserver
定义squid服务器的主机名
cache_mgr root@squidserver

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章