天天看点

squid代理服务器在企业网上的应用

一 、基础知识:

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:

    公司希望通过squid的反向代理实现WEB服务器加速;

  ##重启网络服务: 

3>安装squid代理服务: 

4>配置squid主配置文档:

  ##反向代理端口 

  ##缓存的对端是兄弟还是父亲: 

        页面缓存请求地址指向,指向是父级的主机,父级的端口80,使用3130端口进行访问;

  ##禁用掉阻止所有代理的策略,并允许所有: 

5>启动squid服务: 

    [root@localhost ~]# service squid start 

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

6>web服务器配置:

  ##Web服务器地址配置: 

  ##测试页面: 

  ##web网站ip地址: 

  ##默认首页面格式: 

  ##浏览测试页: 

4 、测试:

  ##客户端ip地址 

  ##通过http协议访问代理服务器的外网接口: 

测试成功!

本文转自 cexpert 51CTO博客,原文链接:http://blog.51cto.com/cexpert/977993

继续阅读