Squid代理服务squid代理
代理服务器工作原理:当客户机通过代理请求web页面时,指定的代理服务器首先检查本地的缓存。如果缓存中存在客户机所请求的页面,代理服务器会将页面直接反馈到客户机;如果没有,代理服务器会将请求发送给web服务器,web服务器响应后,代理服务器会将响应的页面保存到本地缓存中,然后发给客户机。由于web请求实际有代理服务器来代替完成,从而起到了隐藏客户机的IP地址的作用。 代理服务器分为传统代理和透明代理,现在一般以透明代理使用居多。传统代理拥有的功能透明代理都有。两者的区别在于透明代理无需在客户机上指定代理服务器的地址、端口,而是透过防火墙策略将web访问重定向,交给代理服务器处理,整个过程客户机并不需要参与,对于客户机的用户来说是“透明”的。需要注意,使用透明代理,dns请求是优先发给dns服务器的。
操作部分 拓扑:
1、首先在web服务器上开启httpd服务,并为80端口(网站)开启例外,允许入站连接。 2、挂载squid的安装盘,解压到/usr/src下,进入/usr/src/squid-.tar.gz中。 3、配置squid。 ##各配置项含义: --prefix:安装目录 --sysconfdir:配置文件目录 --enable-arp-acl:设置通过MAC地质管理防止arp欺骗 --enable-linux-netfilter:使用内和过滤 --enable-linux-tproxy:支持透明模式 --enable-err-language:错误信息显示语言的类型 --enable-underscore:允许url中使用下划线 --enable-poll:poll模式,性能优化 --enable-gnuregex:使用GNU正则表达式 4、make编译和make install安装 5、优化执行路径,并创建squid用户,设置属主:属组。 6、在/etc/init.d/下编辑一个squid的服务脚本,用来控制squid服务(vim /etc/init.d/squid)。 7、为该squid服务脚本添加执行权限,并添加为系统服务。 8、编辑squid的配置文件,vim /etc/squid.conf ##这里需注意visible_hostname为主机名选项,需要填写squid服务器的主机名。最后一行前面本身有“#”,直接删除“#”即可。http_access allow all需要添加在deny all前面,先生效。 9、在本次试验中,我们将squid服务器作为代理服务器的同时,也将其作为网管使用。通过修改/etc/sysctl.conf,开启路由功能。将“net.ipv4.ip_forward = 0”改为“= 1”,执行sysctl -p使配置生效。 10、配置防火墙重定向。该策略可以将80端口的请求转给3128端口 11、配置SNAT实现内网接入internet互联网。 12、配置iptables策略允许3128端口的入站连接。 13、启动squid服务。下面前三个都需要依次敲。最后一个为查看squid的进程,确认是否启动。 14、地址配置,内网客户机192.168.1.2并配置网关为192.168.1.1;外网网站202.1.1.2;squid的eth0网卡192.168.1.1,eth1网卡202.1.1.1。 15、测试。使用内网的客户机登陆202.1.1.2网站。成功登陆网站。 16、验证网页请求是否经过代理服务器。在网站服务器上查看接入的日志。可以看到请求地址为202.1.1.1,也就是squid的外网网卡地址,而不是客户机。 17、另外,squid代理还提供了ACL控制列表。通过修改/etc/squid.conf文件进行ACL访问控制列表的定义。首先将上面做的允许所有的配置删除或者改为注释。 18、定义ACL,如下图 选项解析: acl safeport port 80 443:定义端口为80、443 acl mylan src 192.168.1.0/24:定义源地址池为192.168.1.0网段 acl mediafile urlpath_regex -i .mp4$ .avi$:定义以mp4、avi结尾的url路径 acl working time MWTHF 08:30-16:00定义squid工作时间 http access allow 允许以上定义项 19、第一条限定下载文件的大小;第二条限定最大缓存块。