Squid服务器是基于Linux平台的代理服务器,简单易学,且服务器运行稳定高效,是一款优秀的开源软件。本文深入浅出,介绍Squid的三种工作模式,带大家一起感受下Squid的魅力。重点讲解Squid的三种工作方式:正向代理、透明代理、反向代理,以及它们之间的区别。本文没有涉及到繁杂的Squid访问控制列表,适合新手学习,以后有机会再给大家介绍Squid的高级应用,这篇文章权当抛砖引玉吧!
图1 Squid正向代理和透明代理
图1描述了网络拓扑图,可以看到内网主机需要通过代理服务器才能访问外网,正向代理和透明代理实验环境相同,都用这张图。
图2 Squid服务器IP地址配置情况
图2描述了Squid服务器的IP地址,需要在该主机上添加双网卡,并设置相应IP,其中192.168.0.1作为内网地址,连接内网客户端,60.0.0.1作为外网地址,连接外网服务器。
安装squid指令:yum -y install squid
图3 squid.conf文件
图3描述了Squid服务器的主配置文件,/etc/squid/squid.conf,这里我只修改了一个地方,http_access deny all改为http_access allow all,基于安全原因,Squid代理服务器默认不代理任何客户端,通过以上语句的修改,Squid可以代理所有客户端。
图4 客户端IP地址配置
图4描述了windows7客户端的IP设置情况,注意,windows7本身是不具备上网权限的,我们如何在模拟环境下实现?只需要设置一个IP,并且不加网关就可以了!这里的理解很关键,不添加网关,表明该客户端是无法访问其它网段的,在实际环境中,就表示不能上网,我们只需要保证它有一个IP,并且能够访问到Squid服务器的内网端口就可以了,该主机上网的方式是通过代理服务器实现的。
图5 配置客户端浏览器属性
图5描述了客户端浏览器的配置过程,本案例以IE浏览器为例,指定代理服务器的内网地址(注意必须是内网地址,因为只有这个地址才能被客户端访问到),以及端口(Squid默认的伺服端口是tcp3128)。
图6 访问效果图
图7 squid.conf
图7中,修改http_port 3128,在后面添加“transparent”,开启Squid的透明代理模式
图8 ipables链配置
图8描述了iptables链的配置,这个是透明模式最重要的步骤,配置中,我清空了所有iptables链,添加了一条nat链,将局域网客户端请求80端口的数据包重新定向到3128端口,ens33是内网接口,这个口会接收到内网用户的上网请求(这里我默认上网行为就是访问网站,所以所有的行为目的端口默认定义为tcp80端口);ens36是外网接口,将所有来自局域网内部的数据包(源地址为192.168.0.0/24网段),向外网发送,并隐藏源ip地址(这里可以理解为内网地址是不能上网的,因为是私有地址,所以在出口处,需要把内网地址隐藏,并替换为公网IP)。
图9 客户端IP地址配置
图9是客户端的地址信息,注意和正向代理的区别,这里需要添加网关!表示当客户端需要上网时,数据包先发给网关,网关就是Squid服务器的内网接口IP,由Squid服务器处理上网请求。
图10 访问效果图
实验环境
图11 Squid反向代理
图11描述了Squid服务器反向代理的过程,外网用户直接访问Squid服务器,由Squid服务器代理,最终访问到web服务器。
图12 squid.conf
图12 squid.conf中描述了反向代理配置,其中cache_peer参数指定了内网服务器的IP(172.16.20.23)和访问名(name=nvsc);cache_peer_domain指定了访问该内网服务器的域名(www.nvsc.com),这里客户端是通过域名访问的,所以我还额外配置了DNS服务器。
图13 named.conf
图14 named.rfc
图15 正向文件和反向文件
图13、图14、图15描述了DNS服务器的配置过程,用的是CentOS下的Bind软件,强调客户端通过www.nvsc.com,可以访问到Squid服务器的公网ip:172.20.30.23,限于篇幅,Bind的设置不详细说明了。
图16 重启squid服务
图17 重启named服务
图16、图17描述了在配置完squid和bind之后,将两个服务重启,使其生效,状态都显示active(running)表示配置成功。
图18 内网web服务器地址
图18描述内网web服务器的地址,web服务器的搭建过程略
图19 外网客户端地址
图19描述外网客户端的IP地址,注意这里添加了DNS(该地址是Squid服务器的公网接口IP,模拟环境中,我把DNS和Squid做在同一台主机上了),需要通过域名访问服务器。
图20 访问效果图
图20描述外网用户通过域名访问Squid代理服务器,Squid代理服务器通过反向代理功能,使外网客户端成功访问到内网的web服务器。
本案例中,将Squid三种常见的代理方式做了一一罗列,帮助初学者快速掌握Squid代理服务器的搭建,关于Squid其它部分的知识点,比如访问控制列表的使用,缓存的设置,绑定证书,将在后续文章中再给大家做详细介绍。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。