squid 代理服务器 用户认证配置实例
第3单元 Squid代理服务的配置与应用

Squid代理服务的安装 Red Hat Enterprise Linux 6安装程序默认没 有安装Squid服务,可以使用下面的命令。
yum install “squid*” rpm -ivh squid-xxxx.rpm
配置文件:/etc/squid/squid.conf 启动脚本:squid 代理Web服务的默认端口为:3128
代理服务器的原理 代理服务器将Internet上主机的回应信息传送给 客户端A。 客户端B向代理服务器提出相同的请求。代理 服务器也首先与访问控制列表中的访问规则相 对照。 如果满足规则,则将缓存中的信息传送给客户 端B。
Squid简介 Squid是Linux和UNIX平台下最为流行的高性能 免费应用层代理服务器,它具有权限管理灵活 、性能高和效率快等特点。 Squid是一个由众多在互联网上的开发人员共同 努力而完成的一款高性能的代理缓冲服务器。 Squid的另一个优越性在于它使用访问控制列表 (ACL)和访问权限列表(ARL)进行权限管 理和内容过滤,这样可阻止特定的网络连接来 减少潜在的Internet非法连接,可以使用这些清 单来确保内部网的主机无法访问有威胁的或限 制访问不适宜的站点。
共享网络 加快访问速度,节约通信带宽 防止内部主机受到攻击 限制用户访问,完善网络管理
代理服务器的理
客户端A向代理服务器提出访问Internet的请求 。 代理服务器接受到请求后,首先与访问控制列 表中的访问规则相对照,如果满足规则,则在 缓存中查找是否存在需要的信息。 如果缓存中存在客户端A需要的信息,则将信 息传送给客户端。如果不存在,代理服务器就 代替客户端向Internet上的主机请求指定的信息 。 Internet上的主机将代理服务器的请求信息发送 到代理服务器中,同时代理服务会将信息存入 缓存中。
自己动手架设代理服务器

自己动手架设代理服务器代理服务器是一种在网络通信中起到中转作用的服务器。
它可以代替客户端向目标服务器发送请求,并将目标服务器的响应返回给客户端。
通过代理服务器,我们可以隐藏真实的客户端IP地址,提高连接速度,并且可以访问一些受限制的内容。
接下来,你需要选择适合的代理服务器软件。
常用的代理服务器软件有Squid、Nginx、Shadowsocks等。
这些软件各有不同的特点和配置方法,你可以根据自己的需求选择合适的软件。
以Squid为例,下面是搭建代理服务器的具体步骤:第二步,启动Squid服务。
在Linux系统上,你可以使用以下命令启动Squid服务:```sudo service squid start```在Windows系统上,你可以在安装目录中找到Squid的启动程序,并双击运行。
第三步,配置客户端代理。
在浏览器中配置代理,让浏览器使用你搭建的代理服务器访问互联网。
通常情况下,你需要设置代理服务器的IP地址和端口号。
具体操作方法可以参考浏览器的帮助文档。
使用代理服务器需要注意以下几点:首先,代理服务器的稳定性和性能是关键。
你需要选择高质量的机器和软件,并且及时进行服务器维护和升级。
其次,代理服务器有可能被滥用,用于非法活动,如攻击其他服务器、传播违法信息等。
所以,你需要设置访问控制策略,限制代理服务器的使用范围,并及时更新代理服务器的黑名单。
最后,代理服务器还可能会受到网络层面的限制,如被运营商封锁。
在使用代理服务器时,你需要留意这些限制,并尝试使用其他代理服务器或更换代理服务器的IP地址。
squid 配置详解

squid 配置详解+认证在此,我们要配置一个只对内部网络提供代理服务的Proxy Server。
它将用户分为高级用户和普通用户两种,对高级用户采用网卡物理地址识别的方法,普通用户则需要输入用户名和口令才能正常使用。
高级用户没有访问时间和文件类型的限制,而普通用户只在上班时可以访问以及一些其它的限制。
安装可以从Squid站点获取该软件的源代码安装包,包括gz和bz2两种压缩方式。
也可以使用Linux的发行版,如Red Hat提供的RPM包。
RPM方式安装很简单,命令如下:$ rpm -ivh Squid-2.x.STALBx.i386.rpm不过笔者认为,即便是系统中已经默认安装了Squid,也应当先删掉然后安装最新的源代码包。
因为开源软件会不断修正问题、提供更新的功能,使用最新版本可以保证最高的性能及安全,而且源代码方式可以完全定制系统。
不过STABLE稳定版、DEVEL版通常是提供给开发人员测试程序的,假定下载了最新的稳定版squid-2.5.STABLE2.tar.gz,用以下命令解开压缩包:$ tar xvfz squid-2.5.STABLE.tar.gz用bz2方式压缩的包可能体积更小,相应的命令是:$ tar xvfj squid-2.5.STABLE.tar.bz2然后,进入相应目录对源代码进行配置和编译,命令如下:$ cd squid-2.5.STABLE2配置命令configure有很多选项,如果不清楚可先用“-help”查看。
通常情况下,用到的选项有以下几个:--prefix=/web/squid#指定Squid的安装位置,如果只指定这一选项,那么该目录下会有bin、sbin、man、conf等目录,而主要的配置文件此时在conf子目录中。
为便于管理,最好用参数--sysconfdir=/etc把这个文件位置配置为/etc。
--enable-storeio=ufs,null#使用的文件系统通常是默认的ufs,不过如果想要做一个不缓存任何文件的代理服务器,就需要加上null文件系统。
Squid访问控制方法的实例

Squid访问控制方法的实例《Squid访问控制:ACL元素以及访问列表》这篇文章为大家详细讲述了ACL元素以及http_access访问控制列表的语法以及使用过程中需要注意的问题,本文将给出使用这些访问控制方法的实例。
《Squid访问控制:ACL元素以及访问列表》这篇文章为大家详细讲述了ACL元素以及http_access访问控制列表的语法以及使用过程中需要注意的问题,下面给出使用这些访问控制方法的实例:(1)允许网段61.0.3.188/24以及172.190.96.33/24内的所有客户机访问代理服务器,并且允许在文件/etc/squid/guest列出的客户机访问代理服务器,除此之外的客户机将拒绝访问本地代理服务器:acl clients src 61.0.3.188/24 172.190.96.33/24acl guests src “/etc/squid/guest”acl all src 0.0.0.0/0.0.0.0http_access allow clientshttp_access allow guestshttp_access deny all其中,文件“/etc/squid/guest”中的内容为:172.168.10.3/24210.113.24.8/1610.0.1.24/25(2)允许域名为、的两个域访问本地代理服务器,其他的域都将拒绝访问本地代理服务器:acl permitted_domain src acl all src 0.0.0.0/0.0.0.0http_access allow permitted_domainhttp_access deny all(3)使用正则表达式,拒绝客户机通过代理服务器访问包含有诸如“sexy”等关键字的网站:acl deny_url url_regex –i sexyhttp_access deny deny_url(4)拒绝客户机通过代理服务器访问文件中指定IP或者域名的网站,其中文件/etc/squid/ deny_ip中存放有拒绝访问的IP地址,文件/etc/squid/deny_dns中存放有拒绝访问的域名:acl deny_ip dst “etc/squid/deny_ip”acl deny_dns dst “etc/squid/deny_dns”http_access deny deny_iphttp_access deny deny_dns(5)允许和拒绝指定的用户访问指定的网站,其中,允许客户1访问网站http://www.sina. ,而拒绝客户2访问网站:acl client1 src 192.168.0.118acl client1_url url_regex ^acl client2 src 192.168.0.119acl client2_url url_regex ^http_access allow client1 client1_urlhttp_access deny client2 client2_url(6)允许所有的用户在规定的时间内(周一至周四的8:30到20:30)访问代理服务器,只允许特定的用户(系统管理员,其网段为:192.168.10.0/24)在周五下午访问代理服务器,其他的在周五下午一点至六点一律拒绝访问代理服务器:acl allclient src 0.0.0.0/0.0.0.0acl administrator 192.168.10.0/24acl common_time time MTWH 8:30-20:30acl manage_time time F 13:00-18:00http_access allow allclient common_timehttp_access allow administrator manage_timehttp_access deny manage_time(7)/etc/squid.conf,系统软件包提供、推荐的最小化配置如下,用户可以根据实际情况来进行定制acl all src 0.0.0.0/0.0.0.0acl manager proto cache_objectacl localhost src 192.168.10.3/255.255.255.255acl SSL_ports port 443 563acl Safe_ports port 80 # httpacl Safe_ports port 21 # ftpacl Safe_ports port 443 563 # https,snews acl Safe_ports port 70 # gopheracl Safe_ports port 210 # waisacl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmtacl Safe_ports port 488 # gss-httpacl Safe_ports port 591 # filemakeracl Safe_ports port 777 # multiling httpacl Safe_ports port 901 # SWATacl purge method PURGEacl CONNECT method CONNECT(...)# Only allow cachemgr access from localhosthttp_access allow manager localhosthttp_access deny manager# Only allow purge requests from localhosthttp_access allow purge localhosthttp_access deny purge# Deny requests to unknown portshttp_access deny !Safe_ports# Deny CONNECT to other than SSL portshttp_access deny CONNECT !SSL_ports## INSERT YOUR OWN RULE(S)HERE TO ALLOW ACCESS FROM YOUR CLIENTS#http_access allow localhost# And finally deny all other access to this proxyhttp_access deny all#Default:# icp_access deny all##Allow ICP queries from eveyoneicp_access allow all配置带认证的代理服务抑制非法用户使用代理服务默认时,Squid本身不带任何认证程序,但是可以通过外部认证程序来实现用户认证。
Squid代理服务器的搭建

Squid代理服务器的搭建实验环境:2台虚拟机,一台linux服务器,具有2块网卡,一块连接内网,一块连接外网,这台linux主机通过外网卡能上网。
在linux 主机上搭建好squid服务,在windows(或者linux)客户机上验证,通过squid代理服务器上网。
1.使用rpm命令确认squid服务器软件包已经安装,并设置开机自动启动2.在/etc/hosts文件中设置linux主机的全名,使用如下命令,需要先使用hostname 给自己的主机起个名3.使用上去squid -z 命令初始化squid服务器的工作目录4.在/etc/squid/squid.conf配置文件中进行如下配置:a)设置缓冲内存的大小为64MBb)设置允许192.168.10.0/24网段的主机访问squid服务器定义ACL应用ACLc)修改squid服务监听的端口号d)使用squid脚本启动squid服务程序5.配置透明代理服务器配置squid.conf文件编写防火墙配置脚本,并应该防火墙策略防火墙脚本内容如下:修改防火墙脚本使之具有可执行权限,并执行这个脚本文件,同时查看应用了防火墙策略的效果使用squid脚本启动squid服务程序6.配置完透明代理服务器后,其他客户机直接添加网关IP为代理服务器IP就可以上网了,但是需要填写DNS服务器地址(DNS服务器ip为ISP提供的服务器IP就可以了),不填写DNS服务器地址还是上不了网。
因为它找不到域名所对应的IP7.当然也可以在windows客户机的IE或者linux客户机里的konqueror浏览器中设置代理服务器IP为squid服务器地址。
这里以IE浏览器为例,具体设置如下:并没有在网关里添加任何IP地址,也没有添加DNS服务器的IP地址,如图:8.在IE中浏览外部网页9.查看squid的日志,具体操作如图:当然可以使用cat命令继续查看cathe.log 和store.log这2个日志文件了解一些信息。
squid

实验案列一:搭建标准的传统代理实验环境:Benet 教学机构有时需要在机房联网为学生上课,为了不让学生也连上网,现需要在网关上做代理服务器,为了加强安全,需要提供身份验证机制。
实验拓扑图:需求描述:教员老师可以通过指定的IP 地址和端口号来联网为了防止学员通过指定的ip 地址和端口号连上网,需要做身份验证实验步骤:1.挂载光盘安装squid 的rpm 包Squid局域网PC 机 192.168.100.1/24eth1:eth0: 173.16.16.1/24中的测试服务器2.在中配置squid代理服务器的主配置文件(因为里面有太多注释,而我们不需要那么多,我们就把它过滤掉)3.启动代理服务器4.在外网安装web服务器,并启动服务5.在内网要联网的的pc上指定代理服务器ip地址和端口6.内网访问外网服务器的web网站7. 为了防止学员通过指定的ip地址和端口号连上网,需要做身份验证◆Squid代理要实现身份验证必须要编译安装apache服务,在路径下创建用户帐号(因为编译安装时间很长,这里我就提起快照)◆在修改squid的主配置文件添加认证◆重新启动服务◆在内网验证实验案列二:搭建透明代理网关服务器实验环境:为了节省网络带宽、提高局域网访问Internet 的速度,需要在网关上搭建代理服务器,为了减少客户端的的重复设置工作,公司决定采用RHEL5服务器作为网关,并结合防火墙策略实现透明代理。
拓扑图如下:需求描述:使用iptables 设置SNAT 策略☐ 使192.168.100.0/24网段的主机通过NA T 方式共享上网 配置squid 代理服务 ☐ 对HTTP 访问进行缓存加速,并结合防火墙策略实现透明代理 在代理服务中进行访问控制 ☐ 禁止局域网用户下载rmvb 、mp3格式的文件 ☐ 对超过3M 大小的文件不做缓存,禁止下载超过8M 的文件 ☐ 禁止用户访问 、 、 等域的网站 ☐ 启用网址过滤,禁止访问包含“sex ”、“adult ”字样的链接Squid局域网PC 机 192.168.100.1/24eth1:eth0: 173.16.16.1/24中的测试服务器实现思路:准备好客户机及Internet测试服务器正确配置各主机的网络参数☐局域网主机将默认网关设为192.168.100.254☐在测试服务器上启动httpd服务修改squid.conf 文件,☐配置透明代理支持、缓存和下载文件大小限制、网址过滤开启路由转发,添加实现透明代理的REDIRECT策略初始化并启动squid服务实现步骤:1. 通过iptables使192.168.100.0/24网段的主机通过NA T方式共享上网2. 在中修改squid的主配置文件,实现对HTTP访问进行缓存加速,并结合防火墙策略实现透明代理,并编写每个需求描述的条件3.在开启路由转发功能4.禁止局域网用户下载rmvb、mp3格式的文件5.对超过3M大小的文件不做缓存,禁止下载超过8M的文件6. 禁止用户访问、、等域的网站7.启用网址过滤,禁止访问包含“sex”、“adult”字样的链接实验案列三:搭建反向代理服务器实验环境:公司的对外网站平台使用两台RHEL5服务器实现镜像负载,为了进一步提高web服务器的响应速度,需要在网关服务器上搭建反向代理服务。
squid 正向代理 访问控制规则

squid 正向代理访问控制规则全文共四篇示例,供读者参考第一篇示例:Squid是一个功能强大的HTTP反向代理和缓存代理服务器软件,它不仅可以用来提高网站的访问速度和性能,还可以用来进行访问控制,限制用户的访问权限。
在Squid中,可以通过配置访问控制规则来对访问请求进行过滤和控制,以确保网络安全和数据保护。
在本文中,我们将重点介绍Squid正向代理的访问控制规则,并为读者详细解释如何配置和管理这些规则。
一、Squid正向代理基本概念正向代理是一种代理服务器的工作方式,它代表客户端向服务器发送请求,并返回服务器的响应给客户端。
在正向代理的场景下,客户端向代理服务器发送请求,代理服务器再把请求发送到目标服务器,并将目标服务器的响应返回给客户端。
在Squid中配置的访问控制规则通常用于控制客户端访问代理服务器的权限和访问目标服务器的权限。
二、Squid访问控制规则的分类在Squid中,访问控制规则主要分为六种类型:acl规则、http_access规则、http_reply_access规则、cache_peer_access规则、icp_access规则和delay_pool_access规则。
acl规则主要用于定义访问控制目标,而http_access规则、http_reply_access规则、cache_peer_access规则、icp_access规则和delay_pool_access规则用于配置具体的访问控制策略。
3、acl规则ACL是Access Control List的缩写,用于定义Squid中的访问控制目标。
在Squid中,可以通过配置ACL规则来对客户端IP地址、URL、HTTP方法等进行匹配,以实现不同类型的访问控制。
可以使用acl规则匹配特定的客户端IP地址,只允许这些IP地址访问代理服务器。
示例1:定义一个acl规则,允许指定的IP地址访问代理服务器acl allowed_clients src 192.168.1.1在上面的示例中,我们使用acl规则定义了allowed_clients,只允许192.168.1.1这个IP地址访问代理服务器。
Squid代理配置

Squid透明代理手记1,首先从下载squid-2.6.STABLE10-20070315.tar.gz最新版2,解压配置编译参数:./configure --prefix=/usr/local/squid #指定squid安装目录--mandir=/usr/share/man #指定man的安装目录--enable-async-io=20 #采用同步io提高性能,负载高可设大点--disable-icmp #禁止icmp协议代理(默认不允许)--enable-delay-pools #允许延迟限止带宽--enable-cache-digests #允许缓存摘要,可以加快请求缓冲内容的速度(集群用)--enable-snmp #允许snmp协议支持(如用mrtg进行流量监控等)--disable-ident-lookups #禁止使用RFC931识别--enable-epoll #支持epoll的IO模式,2.6以上内核才具有--enable-basic-auth-helpers="NCSA" #允许带密码验证,NCSA 风格的用户名和密码档--enable-linux-netfilter #允许透明代理--enable-arp-acl #允许基于MAC地址的存取过滤--enable-err-language="Simplify_Chinese" #支持的错误语言--enable-default-err-language="Simplify_Chinese" #指定默认的错误语言3,编译安装:make && make install4,添加squid启动用户和组:groupadd squiduseradd -g squid squid -s /sbin/nologin #根据cache_effective_user指定缓冲管理的用户mkdir var/cache #根据cache_dir指定chown -R squid:squid /usr/local/squid #更改目录所有者和组为squid连同子目录5,配置squid.conf首先生成干净的配置文件:mv squid.conf squid.conf.bakcat squid.conf.bak | grep -v "#" | grep -v "^$" > squid.conf#定义服务器地址和端口(做Proxy时最好用lan的ip来设定绑定端口,transparent表示支持透明代理)http_port 192.168.1.253:3128 transparent#定义服务器的名字visible_hostname ProxyServer#定义管理员邮件地址(在访问发生错误时,visible_hostname和cache_mgr这两个选项的值显示在错误提示页面内的相关位置)cache_mgr webmaster@#定义缓存内存空间cache_mem 32MBcache_swap_low 90cache_swap_high 95#定义缓冲最大值的内容maximum_object_size 4096 KB#定义缓存目录cache_dir ufs /usr/local/squid/var/cache 200 16 256#定义不缓冲的内容hierarchy_stoplist cgi-bin ?hierarchy_stoplist -i ^https:\\ ?acl QUERY urlpath_regex -i cgi-bin \? \.asp \.php \.jsp \.cgiacl denyssl urlpath_regex -i ^https:\\no_cache deny QUERYno_cache deny denysslipcache_size 1024ipcache_low 90ipcache_high 95fqdncache_size 1024#日志access_log /usr/local/squid/var/logs/access.log squidcache_log /usr/local/squid/var/logs/cache.log#cache_store_log /usr/local/squid/var/logs/store.logcache_store_log none#Dns服务器dns_nameservers 202.96.128.86 61.144.56.101#缓冲存取用户和组cache_effective_user squid squid#定义ACL#sexurl.txt列出要过滤网站地址的关键字,每个关键字占一行,如(取sina)即可#maclist.txt列出允许上网的主机的MAC地址,每个地址占一行,如00:50:56:C0:00:08acl all src 0.0.0.0/0.0.0.0 #定义所有的地址acl allow_lan src 192.168.1.0/24 #允许局域网lan访问的acl acl sexurl url_regex "/usr/local/squid/sexurl.txt" #定义色情网站过滤acl virurl url_regex "/usr/local/squid/virurl.txt" #定义病毒网站过滤#acl allowedmac arp "/etc/squid/maclist.txt"#定义访问策略http_access deny sexurl #拒绝色情网站http_access deny virurl #拒绝病毒网站http_access allow allow_lan #允许局域网ip访问http_access deny all #拒绝其它未定义的规则#http_access allow allowedmac#定义可缓冲的文件名:5,运行SQUID:sbin/squid -z #初始化生成缓冲目录sbin/squid -NCd1 #前台运行(显示很多运行日志)squid #直接运行bin/RunCache & #不间断运行启动步骤:squid -zsquid -NsYD /usr/local/squid/conf/squid.conf > squid.out 2>&1监控缓冲日志:tail -f /usr/local/squid/var/logs/access.log------------------------------------------------------------------------------------------6,操作系统优化:(1)加大系统的文件描述符限制:ulimit -n默认为1024增大为65536:ulimit -n 65536查看所有的系统限制:ulimit -a(2)加速回收TIME_WAIT的sockets:sysctl -a|grep net.ipv4.tcp_twsysctl -w net.ipv4.tcp_tw_reuse=1sysctl -w net.ipv4.tcp_tw_recycle =1(3)加大临时端口的范围(默认是1024-4999):echo "1024 40000" > /proc/sys/net/ipv4/ip_local_port_range(4)如果还做NAT的话,增加NAT表的限制:echo "65535" > /proc/sys/net/ipv4/ip_conntrack_max----------------------------------------------------------------------------------7,squidclient使用简介:查看帮助:./squidclient -h 192.168.1.123 -p 3128 mgr:/usr/local/squid/squidclientsquidclient -h 192.168.1.123 -p 3128 mgr:client_list //查看客户端列表squidclient -h 192.168.1.123 -p 3128 mgr:objects //取得已缓存的列表squidclient -h 192.168.1.123 -p 3128 mgr:info //取得运行状态经验技巧:打开一个网址,访问一下,看看有没有Cache到squidclient -h 192.168.1.123 -p 3128 mgr:objects | grep GET | grep 统计cache到的总数哈:squidclient -h 192.168.1.123 -p 3128 mgr:objects | grep GET | wc -l---------------------------------------------------------透明代理:iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-ports 3128-----------------------------------------------------------------------------------错误FAQ:FATAL: ipcache_init: DNS name lookup tests failed.有3种方法解决这个问题1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
squid 代理服务器用户认证配置实例
如果你以前没有加过认证,那么不必重新安装,只需把你下载的squid文件重新编译下
下面附安装实例:
我这里安装的是最新的squid 3.0
进入下载的squid源码目录,重新编译squid,并声明支持NCSA认证
./configure --enable-basic-auth-helpers="NCSA"
make
然后进入下面这个目录
cd helpers/basic_auth/NCSA
拷贝生成的执行文件ncsa_auth到/usr/local/squid/bin目录
cp ./ncsa_auth /usr/local/squid/bin
编辑squid.conf
加入
auth_param basic program /usr/local/squid/bin/ncsa_auth
/usr/local/squid/etc/passwd
aclpasswderproxy_auth REQUIRED
http_access allow passwder
http_access deny all
如果不想进行用户认证,去掉上述四行,换成
http_access allow all
利用apache携带的工具软件htpasswd在/usr/local/squid/etc下生成密码文件并添加相应的用户信息
/usr/local/bin/htpasswd -c /usr/local/squid/etc/passwd squid
输入密码并确认
如果你的htpasswd不在这个目录,那你进入/etc/local
使用 find . -name htpasswd 查询一下你的文件在那里啦
一切进行后,启动squid 应该是squid -s 吧。