一 、基础知识:
1 、Squide代理服务器:
Squid代理服务器是一个缓存Internet数据的软件,可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议,提高用户下载页面的速度,并设置过滤。使用Squid可以通过访问控制特性来灵活的控制用户访问时间、站点等限制。这些可以通过Squid ACL和访问列表来轻松实现。
2 、代理服务器:
代理服务器是介于浏览器和Web服务器之间的另一台服务器。有了该服务器之后,浏览器发出的信息会先送到代理服务器,由代理服务器来取回网页内容并传送给客户的浏览器。平时我们提到代理服务器,主要是终端用户如何寻找自己需要的代理;而本专题所介绍的,则是服务器端的架设、配置等方面。对企业网络而言,代理服务器可以起到控制网络访问并屏蔽不安全信息,以及网络加速的目的。
3 、代理服务器的类型:
正向代理:【内网--->外网】内网访问外网;相当于snat;
反向代理:【外网--->内网】服务器发布;相当于dnat;
4 、代理服务器的特点:
设置用户验证和记账功能;
对用户进行分级管理;
增加缓存器,提高访问速度;
连接内网与Internet,充当防火墙;
节省ip开销;
5 、代理服务器的优缺点;
优势:控制力度比较强,能够控制网络层参数【地址】,控制传输层参数【协议、端口号】 应用层参数【应用层协议、参数(帐号网址参数)】
缺点:支持的应用少【支持:http ftp少部分协议】
6 、代理服务器平台:
Window平台:wingate、sygate、winroute、proxy—>isa
Linux平台:squid
7 、代理服务器的作用:
共享网络;
可以对页面进行缓存,加快访问速度;
在网络中出现拥挤或故障时,可以通过代理服务器访问网络资源;
防止攻击;
突破限制;
掩藏身份;
提高下载速度;
8 、代理服务器原理:
Window代理常用端口:8080
Squid代理默认端口:3128
9 、反向代理
反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。
二 、案例1:
1 、实验要求:
公司希望通过代理服务器实现透明代理,要求上班时间只允许技术部通过网页来访问Internet;而市场部不可以在上班时间访问Internet;
技术部的地址(192.1683.10.10-192.168.10.100/24)在工作中能够访问网页;
市场部的地址(192.1683.10.10-192.168.10.100/24)在工作中不能访问网络;
在下班时间中都能访问网络;
2 、拓扑图:
3 、实验步骤:
1>配置代理服务器的网络:
##配置网卡地址:
由于是出于内网中进行测试,所以代理服务器的外网接口使用的私有ip,并且配置了网关指向;
##配置DNS指向:
##重启网路服务:
2>挂载光盘:
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]#
3>安装squid服务:
[root@localhost ~]# cd /mnt/cdrom/Server/
[root@localhost Server]# rpm -ivh squid-2.6.STABLE21-3.el5.i386.rpm
Preparing... ########################################### [100%]
1:squid ########################################### [100%]
[root@localhost Server]#
4>编辑squid主配置文档:
[root@localhost ~]# vim /etc/squid/squid.conf
##设置代理监听端口:
监听端口指定为代理服务器内网卡地址的3128端口,是为了不通过外网卡进行代理服务,保证代理服务器的正确性;
transparent表示开启代理服务器的透明代理;
##设置visible hostname内容:
当访问的页面被拒绝时,代理服务器会返回拒绝者是谁。
5>编写acl控制策略:
注意顺序,注意逻辑;在做策略控制时笔者很纠结!
6>打开代理服务器的数据包转发功能:
[root@localhost ~]# vim /etc/sysctl.conf
7>使用iptable实现dns的转发:用于实现内网的dns解析:
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -p udp --dport 53 -o eth0 -j MASQUERADE
8>通过iptable的nat转换实现端口转发,来实现【端口重定向】
[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j REDIRECT --to-ports 3128
4 、实验测试:
1 、技术部测试PC的地址
##处于上班时间:
##技术部可以通过80(http)或443(https)访问网络:
##处于下班时间:
##这时市场部能够访问网络:
2 、市场部测试PC地址:
##处于上班时间是:
##市场部的主机不能通过浏览器访问网络:
##在下班时间:
##市场部能够访问网络:
三、案例2:
1 、实验要求:
公司希望通过squid的反向代理实现WEB服务器加速;
2 、拓扑图:
3 、实验步骤:
1>配置代理服务器的网络:
##配置网卡地址:
##重启网络服务:
2>挂载光盘:
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]#
3>安装squid代理服务:
[root@localhost ~]# cd /mnt/cdrom/Server/
[root@localhost Server]# rpm -ivh squid-2.6.STABLE21-3.el5.i386.rpm
Preparing... ########################################### [100%]
1:squid ########################################### [100%]
[root@localhost Server]#
4>配置squid主配置文档:
##反向代理端口
##缓存的对端是兄弟还是父亲:
页面缓存请求地址指向,指向是父级的主机,父级的端口80,使用3130端口进行访问;
##禁用掉阻止所有代理的策略,并允许所有:
5>启动squid服务:
[root@localhost ~]# service squid start
init_cache_dir /var/spool/squid... Starting squid: ........[ OK ]
[root@localhost ~]#
6>web服务器配置:
##Web服务器地址配置:
##测试页面:
##web网站ip地址:
##默认首页面格式:
##浏览测试页:
4 、测试:
##客户端ip地址
##通过http协议访问代理服务器的外网接口:
测试成功!