关于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

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