關於linux下Squid透明代理的試驗

關於linux下Squid透明代理的試驗


[前言]本文主要講述linux環境下的squid作爲代理中的透明代理,試驗準備了兩臺主機,讓我們現在來想象一個聯機狀態,就是你有一整組內部網絡,而這個內部網絡都是透過NAT主機聯機出去的。當客戶經過squid服務器來聯機進入Internet時,假如使用的Internet協議爲80(也就是WWW),那麼就將這個要求交給squid來工作,以達到代理服務器的功能。以下就是本實驗的全部過程:

試驗準備環境:

Centos5.0雙網卡外網ip192.168.42.129

內網ip192.168.10.1

Redhat5.5單網卡ip192.168.10.2

本實驗主要分爲兩個部分

一、有外網的主機服務的安裝與配置

二、測試機的環境設置及測試

具體的步驟如下:

1、首先測試centos與外部的連接

[root@localhost~]#ping-c5www.baidu.com

PINGwww.baidu.com(119.75.217.56)56(84)bytesofdata.

64bytesfrom119.75.217.56:icmp_seq=1ttl=128time=5.39ms

64bytesfrom119.75.217.56:icmp_seq=2ttl=128time=18.4ms

64bytesfrom119.75.217.56:icmp_seq=3ttl=128time=15.1ms

64bytesfrom119.75.217.56:icmp_seq=4ttl=128time=8.31ms

64bytesfrom119.75.217.56:icmp_seq=5ttl=128time=18.8ms

---www.baidu.compingstatistics---

5packetstransmitted,5received,0%packetloss,time4003ms

rttmin/avg/max/mdev=5.395/13.248/18.862/5.455ms

2、修改yum

[[email protected]]#vimCentOS-Media.repo

[c5-media]

name=CentOS-$releasever-Media

baseurl=file:///mnt/cdrom/

#file:///media/CentOS/

#file:///media/cdrom/

#file:///media/cdrecorder/

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-beta

[[email protected]]#mvCentOS-Base.repoCentOS-Base.repo.bak

[[email protected]]#mkdir/mnt/cdrom

掛在光盤

[[email protected]]#mount/dev/cdrom/mnt/cdrom/

mount:blockdevice/dev/cdromiswrite-protected,mountingread-only

3、安裝squid服務及修改其配置文件

cd/mnt/cdrom/CentOS

[root@localhostCentOS]#pwd

[root@localhostCentOS]#rpm-ivhsquid-2.6.STABLE6-3.el5.i386.rpm

Preparing...###########################################[100%]

1:squid###########################################[100%]

[root@localhostCentOS]#vim/etc/squid/squid.conf

修改兩個部分

1)傳輸端口

將http_port3128後面加transparent

2acl權限

http_accessallowlocalhost修改爲允許的其他主機的ip地址或者all(全部)

[root@localhostCentOS]#servicesquidrestart

Stoppingsquid:[FAILED]

init_cache_dir/var/spool/squid...Startingsquid:.[OK]

#因爲安裝之後沒有啓動服務,所以,restart會出出現FAILED

4、開啓nat轉發功能

[root@localhostCentOS]#vim/etc/sysctl.conf

ip_forward=1

使得轉發功能生效

[root@localhostCentOS]#sysctl-p

net.ipv4.ip_forward=1

net.ipv4.conf.default.rp_filter=1

net.ipv4.conf.default.accept_source_route=0

kernel.sysrq=0

kernel.core_uses_pid=1

net.ipv4.tcp_syncookies=1

kernel.msgmnb=65536

kernel.msgmax=65536

kernel.shmmax=4294967295

kernel.shmall=268435456

5、設置dns解析

-t表示一種表格,這裏指nat表格;-A表示要追加一個規則;-p表示一種協議;--dport表示端口號;-o表示out,後面是端口;-j表示要做什麼,MASQUERADE表示是地址僞裝;一般還有個參數是-s表示原地址ip或地址段的,不寫表示默認所有all

[root@localhostCentOS]#iptables-tnat-APOSTROUTING-pudp--dport53-oeth0-jMASQUERADE

80端口的提取,把80端口出現的信息都提取給端口(3128squid代理服務器(就像是端口重定向)

[root@localhostCentOS]#iptables-tnat-APREROUTING-ptcp--dport80-ieth1-jREDIRECT--to-ports3128

查看詳細信息

[root@localhostCentOS]#iptables-tnat-v-L-n

ChainPREROUTING(policyACCEPT0packets,0bytes)

pktsbytestargetprotoptinoutsourcedestination

00REDIRECTtcp--eth1*0.0.0.0/00.0.0.0/0tcpdpt:80redirports3128

ChainPOSTROUTING(policyACCEPT80packets,4800bytes)

pktsbytestargetprotoptinoutsourcedestination

00MASQUERADEudp--*eth00.0.0.0/00.0.0.0/0udpdpt:53

ChainOUTPUT(policyACCEPT80packets,4800bytes)

pktsbytestargetprotoptinoutsourcedestination

6、在客戶機上

[root@lan~]#routeadddefaultgw192.168.10.1

[root@lan~]#vim/etc/resolv.conf

nameserver202.106.0.20

測試:瀏覽器中輸入www.baidu.com

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