Squid透明代理应用指南:设置、使用与优化
一、引言
随着互联网的发展,网络安全问题日益突出,代理服务器作为一种网络安全防护手段,受到广泛关注。
Squid是一款流行的开源代理服务器软件,具有高效、稳定、安全等特点。
本文将详细介绍Squid透明代理的设置、使用与优化,帮助读者更好地应用Squid代理服务器。
二、Squid透明代理概述
Squid透明代理是一种网络透明的代理方式,用户无需进行任何配置即可使用代理服务。
通过设置路由器或交换机等网络设备,使得所有网络流量自动通过Squid代理服务器进行转发,从而实现缓存加速、内容过滤等功能。
三、Squid透明代理设置
1. 硬件环境准备
(1)选择高性能的服务器硬件,确保能够处理大量的网络流量。
(2)配置网络接口,确保服务器能够接入网络。
(3)准备足够的存储空间,用于缓存网页内容。
2. 软件环境配置
(1)安装Squid代理服务器软件。
(2)配置Squid软件,包括缓存大小、访问控制等参数。
(3)安装并配置iptables等防火墙软件,确保网络安全。
3. 网络环境配置
(1)设置路由器或交换机,将网络流量重定向到Squid代理服务器。
(2)配置DHCP服务器,自动为客户端分配IP地址。
(3)根据需要配置其他网络设备,如负载均衡器等。
四、Squid透明代理使用
1. 客户端配置
由于采用了透明代理方式,客户端无需进行任何配置即可使用代理服务。
所有网络流量将自动通过Squid代理服务器进行转发。
2. 访问网站
客户端通过浏览器访问网站时,请求将自动被Squid代理服务器拦截并处理。
Squid将检查缓存中是否有请求的网页内容,如果有则直接返回给客户端,否则向目标网站发起请求,并将获取的网页内容缓存到本地。
五、Squid透明代理优化
1. 缓存优化
(1)调整缓存大小:根据服务器硬件配置和网络流量情况,合理配置缓存大小,以提高缓存命中率。
(2)设置缓存策略:选择合适的缓存策略,如LRU算法等,以提高缓存效率。
(3)定期清理缓存:定期清理过期或无效的缓存内容,避免占用存储空间。
2. 性能优化
(1)启用压缩功能:启用Gzip压缩功能,减少网络传输的数据量,提高传输效率。
(2)优化网络连接:合理配置网络连接参数,如并发连接数、TCP窗口大小等,以提高网络性能。
(3)使用负载均衡:通过配置负载均衡器,将网络流量分散到多台Squid代理服务器上,提高整体性能。
3. 安全优化
(1)配置防火墙:通过配置iptables等防火墙软件,过滤非法访问和恶意攻击。
(2)定期更新软件:及时安装软件更新和补丁,修复安全漏洞。
(3)监控日志:定期查看和分析日志信息,了解网络流量和代理服务器运行情况,及时发现并处理安全问题。
六、总结与展望
本文详细介绍了Squid透明代理的设置、使用与优化,包括硬件和软件环境准备、网络环境配置、客户端使用以及性能和安全优化等方面。
通过合理配置和优化Squid代理服务器,可以提高网络性能、加速网页访问、过滤不良内容等。
未来,随着网络技术的不断发展,Squid代理服务器将发挥更加重要的作用,为网络安全和性能提供更好的保障。
red Hat Enterprise linux5 下的squid透明代理怎么实现
一、环境及操作平台xp——(eth1) AS5 (eth0)——Internet192.168.1.0/24 10.0.0.0/8Linux AS5 + squid-2.6(RPM)二、安装安装AS5自带的squid-2.6 rpm包三、配置route add default gw 10.100.100.254 //10.100.100.254 连接Internet Router 地址,添加默认网关。1、squid主配文件:/etc/squid/、http_port 3128 transparent //启用透明模式b、cache_dir ufs /var/spool/squid 1000 16 256c、cache_mem 96Md、visible_hostname localhoste、http_access allow all以上为基本配置2、iptales 配置#!/bin/bash# 1 >/proc/sys/net/ipv4/ip_forward //启用ip forwardIPT=/sbin/iptables################################Clear ip rules#####################$IPT -F -t filter$IPT -X -t filter$IPT -Z -t filter$IPT -F -t nat$IPT -Z -t nat$IPT -X -t nat################################Default policy#####################$IPT -P FORWARD DROP$IPT -P INPUT DROP$IPT -P OUTPUT DROP################################User rules##########################$IPT -t filter -A INPUT -s 127.0.0.1 -j ACCEPT$IPT -t filter -A INPUT -s 10.10.10.254 -p tcp ——dport 22 -j ACCEPT$IPT -t filter -A OUTPUT -d 10.10.10.254 -p tcp ——sport 22 -j ACCEPT$IPT -t filter -A INPUT -s 192.168.1.0/24 -p icmp ——icmp-type 8 -j ACCEPT$IPT -t filter -A OUTPUT -d 192.168.1.0/24 -p icmp ——icmp-type 0 -j ACCEPT$IPT -t filter -A INPUT -s 192.168.1.0/24 -j ACCEPT$IPT -t filter -A INPUT -i eth0 -j ACCEPT$IPT -t filter -A OUTPUT -d 192.168.1.0/24 -j ACCEPT$IPT -t filter -A OUTPUT -o eth0 -j ACCEPT$IPT -t filter -A FORWARD -s 192.168.1.0/24 -i eth1 -o eth0 -j ACCEPT$IPT -t filter -A FORWARD -i eth0 -o eth1 -j ACCEPT$IPT -A FORWARD -m state ——state ESTABLISHED,RELATED -j ACCEPT$IPT -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT ——to-source 10.10.10.249$IPT -t nat -A PREROUTING -s 192.168.1.0/24 -i eth1 -p tcp ——dport 80 -j REDIRECT ——to-ports 3128四、启动squid1、# squid -k parse //检测squid语法2、# squid -z //初始化squid,建立缓存3、# /etc/init.d/squid start4、# ps -ef|grep squid
用iptables+squid有什么好处
用iptables+squid有什么好处?用iptables+squid实现透明代理/用pwebstats进行squid日志分析我是用redhat9默认安装的squid2.5,如果事先没有安装的话可以用下载tar来安装1.设置squidvi /etc/squid/_port 3128—————这是squid侦听的端口,默认cache_mem 16 MB———–按照squid的官方网站上说16M最佳,我也没试过cache_swap_low 75cache_swap_high 85——-这个功能就比较好了,意思是你的cache目录如果容量达到总容量的85%时,就会删除旧文件降低容量到75%maximum_object_size 4096 KB—–这个是保存文件cache的最大容量,可以自己设定maximum_object_size_in_memory 8 KB—–这个是内存上保存文件cache的最大容量,一般默认好了ipcache_size 1024ipcache_low 90ipcache_high 95fqdncache_size 1024——这些是关于ip地址和域名缓存的,默认cache_dir ufs /var/spool/squid 1000 16 256——在/var/spool/squid下建立缓存目录,预设大小是1G,并且在这下面建立16个子目录,在每个子目录下又建立256个子目录cache_access_log /var/log/squid/_log /var/log/squid/——–这些都是日志文件的路径pid_filename /var/run/_netmask 255.255.255.0auth_param basic children 5auth_param basic realm Squid proxy-caching web serverauth_param basic credentialsttl 2 hours——上面关于认证的3行请注释掉吧,因为我们用了透明代理,这些关于认证的也不起作用了acl our_networks src 192.168.1.0/24http_access allow our_networkshttp_access allow localhosthttp_access deny all————这几行配合起来就是对代理客户机实现控制,只允许192.168.1.0这个网段使用代理cache_mgr your_emailcache_effective_user squidcache_effective_group squid——这是关于squid的用户和组,我是用默认的,所以存在squid这个用户和组,如果是用tar安装的,可以设成,不过不要忘了把刚才那个cache目录的权限也设置成_accel__accel_port 80———-如果你没有域名的话,可以设定virtual,端口是0httpd_accel_with_proxy onhttpd_accel_uses_host_header on——-这几行是实现透明代理的关键保存后,启动squid:/etc/iniit.d/squid start2.设定iptables规则/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 –dport 80 -j REDIRECT –to-ports 3128/sbin/iptables -t nat -A POSTROUTING -o eth0-s 192.168.1.0/24 -j MASQUERADE———我的外网卡是eth0,内网卡是eth1,注意这两行的次序不能搞错了,否则你的squid将不起作用现在你的内网客户机就可以通过代理访问www了,而其他服务都通过nat3.安装配置pwebstats来分析squid日志文件,给出分析报告下载在配置pwebstats前先要下载fly,然后编译一下生成一个二进制文件,拷到/usr/local/bin中,我这里已经有一个编译好了的,如果谁要可以给我发信,我发给你,不过不要忘了gzip -d ,chmod 755 fly ,mv fly /usr/local/bin一下下面执行:cd /usr/localtar -xvf/tmp/-1.3.8 pwebstatscd pwebstatsvi pwebstats将#!/usr/local/bin/perl改为#!/usr/bin/perl—————因为我的perl执行文件在这个路径下保存,退出mkdir /var/www/html/pwebstatsvi conf/_header:My_Proxy_Server—–这是分析报告网页的标题logfile:/var/log/squid/——-你的squid日志文件路径outdir:/var/www/html/pwebstats—–报告输出目录,明白我们前面为什么在html下建立这个目录了吧interval:daily———-输出的是日分析报告fly_prog:/usr/local/bin/fly———-fly这个文件的路径保存退出,rotate一下日志/usr/sbin/squid -k rotate/usr/local/pwebstats/pwebstats -c\ >; /usr/local/pwebstats/conf/ 好了,现在你打入就可以看到分析报告了你也可以做成一个scripts,然后在crontab中设定每日统计一下vi /root/#!/bin/bash /usr/sbin/squid -k rotate sync; sleep 5s /usr/local/pwebstats/pwebstats \>; -c /usr/local/pwebstats/conf/ 保存退出chmod 744 /root/ /etc/crontab59 23 * * * root /root/保存退出,然后重启一下crond:/etc/init.d/crond reload好,大功告成,现在已经能够使内网通过squid访问www,其他服务由nat来做,而且可以定时产生日志分析报告,告诉你的代理的流量状况
squid 怎样配置https透明代理
squid是所有服务里面最简单的我觉得以RHEL7为例,它分成了正向代理和反向代理,正向代理里又分“标准正向代理”,“ACL访问控制”以及“透明正向代理”。
下面是标准正向代理16.3 正向代理16.3.1 标准正向代理Squid服务程序软件包在正确安装并启动后默认就已经可以为用户提供标准正向代理模式服务了,而不需要单独再去修改配置文件或者其他操作,咱们可以立即在Windows7系统的客户端主机上面打开任意一款浏览器,然后点击Internet选项标签,如图16-4所示:[root@linuxprobe ~]# systemctl restart squid[root@linuxprobe ~]# systemctl enable squidln -s /usr/lib/systemd/system/ /etc/systemd/system//用户要想使用Squid服务程序提供的标准正向代理模式服务就必须在浏览器中填写服务器的IP地址以及端口号信息,因此咱们还需要依次点击连接标签后点击局域网设置选项,如图16-5与图16-6所示填写服务器信息后保存退出配置向导。
用户只需要在浏览器中简单的填写配置信息就可以开始享用Squid服务程序提供的代理服务了,此时作为一个网卡为仅主机模式(Hostonly)的虚拟机,开始也奇迹般的能够上网浏览了,这一切都是托代理服务器转发的功劳哦~如此公开而没有密码验证的代理服务终归觉得不放心,万一有其他人也来“蹭网”咱们的代理服务怎么办呢?Squid服务程序默认的会占用3128、3401与4827等端口号,咱们可以将默认占用的端口号修改成其他值,这样应该能起到一定的保护作用吧~同学们都知道在Linux系统配置服务程序就是在修改该服务的配置文件,因此直接在/etc目录中找到和squid服务程序同名目录中的配置文件,把其中http_port参数后面原有3128修改为,这样即是将Squid服务程序的代理服务端口修改成了新值,当然最后不要忘记再重启下服务程序哦~:[root@linuxprobe ~]# vim /etc/squid/………………省略部分输出信息………………45 #46 # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS47 #48 49 # Example rule allowing access from your local networks.50 # Adapt localnet in the ACL section to list your (internal) IP networks51 # from where browsing should be allowed52 http_access allow localnet53 http_access allow localhost54 55 # And finally deny all other access to this proxy56 http_access deny all57 58 # Squid normally listens to port http_port http_port ………………省略部分输出信息………………[root@linuxprobe ~]# systemctl restart squid [root@linuxprobe ~]# systemctl enable squidln -s /usr/lib/systemd/system/ /etc/systemd/system//同学们有没有突然觉得这一幕似曾相识?在前面的第十章10.5.3小节咱们学习过基于端口号来部署httpd服务程序的虚拟主机功能,当时在编辑完配置文件后重启服务程序时被直接提示报错了,虽然现在重启服务程序并没有直接报错,但其实客户并不能使用代理服务呢,SElinux安全子系统认为Squid服务程序使用3128端口号是理所应当的,默认策略规则中也是允许的,但现在却在尝试使用新的端口号,这是原本并不属于Squid服务程序应该使用的系统资源,因此咱们需要手动把新的端口号添加到squid服务程序在SElinux域的允许列表中即可:[root@linuxprobe ~]# semanage port -l | grep -w -i squid_port_tsquid_port_ttcp 3128, 3401, 4827squid_port_tudp 3401, 4827[root@linuxprobe ~]# semanage port -a -t squid_port_t -p tcp [root@linuxprobe ~]# semanage port -l | grep -w -i squid_port_tsquid_port_ttcp , 3128, 3401, 4827squid_port_tudp 3401, 4827更多的图文信息以及透明代理方式的实验你可以看下网页链接,讲的非常详细,相信能解决你的问题