squid基本功能:提供对http和ftp协议的代理服务;缓存代理的内容,提高客户端访问网站的速度,并节约网络流量;对客户端地址进行访问控制,限制允许访问squid服务器的客服机;对目标地址进行访问控制,限制客户端允许访问的网站;根据时间进行访问控制,限定客户端可以使用代理服务器的时间等。
squid有三种代理方式
普通代理:需要客户机在浏览器中指定代理服务器的地址、端口。 (通常被透明代理取代)
透明代理:通过iptables将客户机的web访问数据转交给代理服务程序处理,客户机不需要指定代理服务器地址、端口等信息。(适用于企业的网关主机)
反向代理:反过来的普通代理。外部用户访问公司网站需要先经过squid代理。(适用于互联网企业加速自己的网站)
ACL(Access Control List)访问控制列表
可以从客户机的ip地址、请求访问的url/域名/文件类型、访问时间、并发请求数等各方面进行控制
acl 列表名称 列表类型 列表内容
http_access allow或deny 列表名 (列表名可以多个联合)
没有设置任何规则,则拒绝所有客户端的访问请求
有规则但找不到匹配项时,将采用与最后一条规则相反的权限
1 2 3 4 5 6 7 8 9 10 |
//安装squid yum -y install squid* //squid配置文件 /etc/squid/squid.conf //启动/重启/停止squid服务 service squid start/restart/stop //重新加载配置文件 squid -k reconfig //日志文件目录 /var/log/squid/ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
//普通代理 //windows客户端设置ip为192.168.10.2并把浏览器设置代理服务器为192.168.10.1 端口为3128 //web服务器设置ip为200.168.10.2并在网站根目录放一个index.php 里面输出hello squid //squid服务器需要设置2个ip分别为192.168.10.1和200.168.10.1 //squid.conf配置 http_port 192.168.10.1:3128 visible_hostname 192.168.10.1 acl innet src 192.168.56.0/24 acl all src 0.0.0.0/0.0.0.0 http_access allow innet http_access deny all //此时,普通代理服务器就配置完成了 //透明代理 //前提:客户机的web访问数据要能经过防火墙;代理服务构建在网关主机中 //配置要求:代理服务器程序能够支持透明代理;配置iptables将客户机的web请求转发到squid代理端口 //修改squid服务器的squid.conf http_port 192.168.10.1:3128 transparent //重新加载配置 squid -k reconfig //添加iptables规则,把内部的http请求重定向到3128端口 iptables -t nat -I PREROUTING -i eth0 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to 3128 //查看iptables配置情况 iptables -t nat -L //windows客户端浏览器设置不需要代理 //此时,透明代理服务器就配置完成了 //反向代理 //将windows客户机ip配置为200.168.10.1 //将web服务器ip配置为192.168.10.1 //squid服务器关闭iptables service iptables stop //配置squid的ip地址 内网:192.168.10.2 外网:200.168.10.2 //关闭squid服务器的nginx,释放80端口 /etc/init.d/nginx stop //配置squid.conf http_port 200.168.10.2:80 vhost visible_hostname 200.168.10.2 cache_peer 192.168.10.1 parent 80 0 originserver acl all src 0.0.0.0/0.0.0.0 http_access allow all //重启squid服务器 service squid restart //此时,反向代理服务器就配置完成了 |