Squid 代理服务器配置实例
1. 代理服务器工做原理
(1) 客户端发出资源的请求,发送到代理服务器
(2) 代理服务器查看缓存
(3) 若代理服务器中存在则网页的缓存,则发送给客户庙
(4) 若代理服务器没有存在则网页的缓存,则代理服务器将请求发送给远程的主机
(5) 远程主机发送资源,而且代理服务器会保存此资源的缓存
(6) 代理服务器将此资源发送给客户端
2.代理服务器优势
(1) 经过缓存增长访问速度
(2) 能够充当防火墙,提升网络的安全性
(3) 对用户进行访问控制,方便对用户的管理
(4) 节省IP开销
3.代理服务器的分类
(1) 标准代理服务器
标准代理服务器是常被用于缓存静态的网页,它的使用要在客户端的浏览器中进行代理设置,并且客户端要知道代理的存在.
(2) 透明代理服务器
透明代理服务器通常为内网的计算机提供外网的访问服务不须要客户端作任何测试,当客户端的数据包到达出口路由器时,能够被路由器重定向到本地代理服务器的代理商端口,而后由本地代理服务器对数据进行处理
(3) 反向代理服务器
反向代理服务器是可以代理外部网络上的主机访问内部网络,它主机为一个或几个本地网站作缓存,以加快web的访问速度.
4.linux下代理服务器软件:squid
squid是一种快速的代理缓存程序,它扮演着一种中介的角色,从浏览器等客户端进程接受请求,并把它传递给请求的URL所指向 的Internet服务器,而后把返回的数据传给客户端,同时存储一份副本在磁盘缓存中。
1>> squid的安装
[root@localhost Server]# rpm -ivh squid-2.6.STABLE21-3.el5.i386.rpm
Preparing... ########################################### [100%]
1:squid ########################################### [100%]
2>>squid的配置文件分类
主配置文件 : /etc/squid/squid.conf
缓存目录 : /var/spool/squid
主应用文件 : /usr/sbin/squid
日志文件 : /var/log/squid/access.log
3>>squid的开启与关闭
[root@localhost squid]# service squid start|stop|restart
Squid配置实例
实例一:正向代理服务器的配置
1.设备
虚拟机 : virtualbox
代理服务器主机: redhat5.4
桥接 eth0 : 192.168.1.188
eth1 : 192.168.1.189
测试客户端 : windows2003
eth0 : 192.168.1.190
2。要求
能够上外网的时间: 9:00-17:00
防止访问网站: www.sina.com.cn
凡是包含"qq"字符的网页都不能访问
阻止源网段192.168.1.200/32访问外网
3.拓扑图
4. 配置主配置文件
[root@localhost ~]# cd /etc/squid
[root@localhost squid]# vim squid.conf
http_port 3128
cache_dir ufs /var/spool/squid 100 16 256
cache_mem 8 MB
cache_mgr root@root
http_access allow all
acl badclientip src 192.168.1.200/32
acl worktime time MTWFH 9:00-17:00
acl badurl1 url_regex -i www.sina.com.cn
acl badurl2 url_regex -i qq
http_access deny worktime
http_access deny badclientip
http_access deny badurl1
http_access deny badurl2
注:
http_port 3128 //配置代理端口为3128
cache_dir ufs /var/spool/squid 100 16 256 //使用硬盘看成缓冲区,ufs指缓存区的存储类型,/var/spool/squid是硬盘上的存放目录 100表明缓存空间是100M,16与256分别表明第一级子目录及第二级子目录.
cache_mem 8 MB //定义高速缓存,即便用多少内存做为代理服务器的缓存,通常为物理内存的1/3
cache_mgr root@root //设置管理员的e-mail地址
http_access allow all //在http_access deny all前面加上这一句,要否则的话,全部的用户都是被拒绝的
acl badclientip src 192.168.1.200/32 //拒绝此网段登录
acl worktime time MTWFH 9:00-17:00 //拒绝此时间登录
acl badurl1 url_regex -i www.sina.com.cn //拒绝登录此网站
acl badurl2 url_regex -i qq //拒绝登录域名含有此字符的网站
http_access deny worktime //下面的都是对定义ACL进行拒绝操做
http_access deny badclientip
http_access deny badurl1
http_access deny badurl2
5 测试
测试部分就再也不详细说明,只要符合以上各拒绝类型的网站或来源IP都会出现如下状况
实例二:透明代理服务器的配置
拓扑图
1.设备
虚拟机 : virtualbox
代理服务器主机而且做为web服务器: redhat5.4
桥接 eth0 : 192.168.1.188
vnet1 eth1 : 192.168.2.10 (内网)
测试客户端 : windows2003
vnet1 eth0 : 192.168.2.11 (内网)
2.配置
对于透明代理服务器的配置与正向代理服务器的配置很是类似,咱们只须要声明此服务器为透明代理服务器便可
1.修改http_port 3128 为
http_port 3128 transparent
其他的能够按照正向代理服务器来配置
2.对防火墙进行配置,把从网络接口收到的TCP协议目的端口是80的数据包重定向到本机的3128端口,命令以下:
[root@www squid]# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
3.配置透明服务器具有转发功能
[root@www squid]# echo 1 > /proc/sys/net/ipv4/ip_forward
4.测试
配置测试机的IP地址,将客户端的网关设置为透明服务器的对内网的ip地址,而且将浏览器中的代理配置去掉
开始测试
实例三:反向代理服务器的配置
拓扑图
1.设备
虚拟机 : virtualbox
代理服务器主机: redhat5.4
桥接 eth0 : 192.168.1.188 (内网)
vnet1 eth1 : 192.168.2.12 (外网)
web服务器 centos6.2
eth0 : 192.168.1.27(内网)
测试客户端 : windows2003
vnet1 eth0 : 192.168.2.11 (外网)
2.配置
测试仍是创建在正向代理服务器之上,咱们只须要修改必定的属性便可
修改以下
将 http_port 3128
修改成以下
http_port 80 vhost vport
cache_peer 192.168.1.27 parent 80 0 originserver
添加以下acl
acl webserver dst 192.168.2.12
http_access allow webserver
将http_access allow all
修改成
http_access deny all
3.测试
注意:若是前面作过透明代理的话,而且透明代理与web服务器在同一台机器上,在测试反向代理时会出现出现的信息的不正确,最好是更换一下链接内网的ip地址。如个人从2.10更换到2.12。