代理服務之正向透明代理

正向代理之透明代理

所謂的透明代理,指的是對客戶端來是透明的,它並不知道是通過代理服務器上網的!


外網----[代理服務器]------內網
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

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