CentOS-7.2 部署 Squid 服务
一、安装 Squid 代理服务器
1、启动 Squid 服务和设置开机启动
2、详解 Squid 服务器配置文件
默认的/etc/squid/squid.conf 文件内容和文件结构如下,该文件由访问控制列表、参数设置和刷新模式三部分组成,更详细的内容可以参考**/usr/share/doc/squid-*/squid.conf.documented 模板文件**
3、介绍/etc/squid/squid.conf 文件中可添加和修改的主要参数,以下内容为添加、修改内容,
仅作为参考,不作为修改内容,此处仅作介绍,可直接跳过此步骤
1)网络设置 #vi /etc/squid/squid.conf
第 59 行
添加如下内容:icp_port 3130 //设置 Squid 发送/接受 ICP 查询时使用的端口 htcp_port 4827 //设置 Squid 发送/接收 HTCP 查询时使用的端口
2)临近代理设置 cache_peer 192.168.100.20 parent 3128 3130 no-digest no-netdb-exchange //表示指定其他代理服务器,192.168.100.20 为上层服务器,http_port 为 3128,icp_port 为 3130,不发出建立摘要表的请求,不交换管理信息
cache_peer_access example.com allow aclcom //表示用不通的代理服务器获取特定的目标资源,使用 example.com 服务器去访问 aclcom 中定义的目标主机资源,这里的 aclcom 为用户自定义的 ACL 名称
3)缓存设置 cache_mem 256 MB //设置缓存区大小,一般为实际内存的 1/3。
cache_dir ufs /var/spool/squid 100 16 256 //设置磁盘缓存目录和大小,ufs 表示缓存格式,/var/spool/squid 表示目录缓存,100 表示磁盘缓存容量 100MB,16 表示最大 16 个二级子目录,256 表示每个二级子目录最大有 256 个三级子目录
cache_swap_high 95 //设置最高缓存百分比,当实际缓存超过 cache_swap_hig 设置的百分比时,服务器会开始删除缓存直到百分比下降到 cache_swap_low 的设定值
cache_swap_low 90 //设置最高缓存百分比,当实际缓存超过 cache_swap_hig 设置的百分比时,服务器会开始删除缓存数据,直至容量达到 cache_mem 容量的 90%
maxi mum_object_size 4096 KB //设置能缓存的最大单个文件的大小
maximum_object_size_in_memory 8 KB //在内存中单个文件最大缓存大小,超过这个大小将不缓存到内存中
ipcache_size 1024 //设置 IP 地址的最大缓存大小
fqdncache_size 1024 //设置完全合格的域名的最大缓存大小
4)日志文件名设置 cache_log /var/log/squid/cache.log //设置缓存日志文件路径,它记录服务器启动,关闭以及系统相关信息
cache_store_log /var/log/squid/store.log //网页缓存日志文件路径,记录了网页在缓存中的调用情况
access_log /var/log/squid/access.log //设置访问日志文件路径,记录了用户访问 Internet 的详细信息,可以查看每个用户的上网记录,格式由 logformat 参数指定
pid_filename /var/run/squid.pid //设置将 squid 的进程号记录在哪个文件中
5)认证设置 auth_param basic children 5 //设置鉴权程序的进程数
auth_param basic realm Squid proxy-caching web server //定义 Web 浏览器显示认证对话框时的领域名称,即用户输入用户名密码时看到的提示信息
auth_param basic credentialsttl 2 hours //用户通过认证后的有效时间,超出则必须重新认证
auth_param basic casesensitive off //用户名是否需要匹配大小
acl ncsa_users proxy_auth REQUIRED //所有成功鉴权的用户都归于 ncsa_users 组。
http_access allow nsca_uesrs //允许 ncsa_users 组的用户使用 Proxy
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd //指定密码文件和用来验证密码的程序
6)禁止缓存 hierarchy_stoplist cgi-bin ? //出现 cgi-bin 或者?的 URL 不予缓存
hierarchy_stoplist -i ^https://?acl QYERY urlpath_regex -i cgi-bin /? /.asp /.php /.jsp /.cgiacl denyssl urlpath_regex -i ^https://no_cache deny QUERYno_cache deny denyssl 以上几条设置遇到 URL 中包换有 cgi-bin 和以 https://开头的都不要缓存,asp\cgi\php\等动态脚本也不要缓存,。https://开头的不缓存是因为一般我们进行电子商务交易,例如银行付款等都是采用这个,如果把信用卡号等进行缓存是十分危险的!
7)超时设置 connect_timeout 1 minute //设置连接超时时间 peer_connect_timeout 30 seconds //设置与上层服务器之间的连接超市时间。request_timeout 5 minutes //设置建立连接后请求的超时时间 persistent_request_timeout 1 minute //设置持续请求的超时时间
4、详解 Squid 访问控制列表(ACL)1)内容格式 Squid 服务支持访问控制,可以控制客户是否能够连接,以及连接后可以使用的资源,使用 acl 命令对不通性质的客户进行分类赋予名称,然后使用 http_access 命令对某一类客户实施允许还是拒绝的操作,下面给出 Squid 访问控制列表的内容格式,其中类型如下表 1 所示,时间表示方法如表 2 所示,匹配模式如表 3 所示,参数-i 使 Squid 不区分大小写:acl ACL 名称 ACL 类型 [-i] 值|文件 http_access allow|deny ACL 名称
二、配置正向代理服务器
1、Squid 服务器与客户端网卡设置
2、规划代理服务器参数
项目要求:在公司内部配置一台 Squid 服务器,为公司网络内的用户提供代理上网服务,具体参数如下表所示
1、编辑服务器配置文件
修改以添加如下内容:修改并添加添加 acl 规则,允许 192.168.100.0/24 访问,并将 192.168.0.0/16 这行注释掉
2、重启 squid 服务器
3、打开内核转发功能
编辑文件/etc/sysctl.conf,添加如下内容
生效配置
4、本机测试 Squid 服务
停止 squid 服务再次测试
5、配置 Squid 客户端
1)标准正向代理当 Squid 服务程序顺利启动后,默认即可使用标准正向代理模式,在此模式下,Windows 客户端只需设置 IP 地址和子网掩码即可,网关和 DNS 可不设置。在 Win7 中打开浏览器,依次单击”工具”,”Internet 选项”,在“Internet 选项”对话框中单击,“连接”,“局域网设置”,“局域网设置”对话框,填写 Squid 服务器的 IP 地址和端口号,然后尝试访问互联网网站
先确保您的 Squid 服务已重新启动
设置 Win7 的 VM1 的 IP 地址
2)透明正向代理(此处仅作介绍,并不演示)Linux 网关提供透明代理服务,局域网可以通过透明代理访问 Internet 中的网站,在使用透明正向代理服务器时,无需在修改客户端的浏览器选项,但必须将客户端的网关 IP 指向 Squid 服务器,可不设置 DNS,然后尝试访问互联网网站,会发现失败,无法解析目标主机域名,原来 Squid 服务程序是不支持 DNS 解析代理的,这个就需要配置 SNAT
版权声明: 本文为 InfoQ 作者【指剑】的原创文章。
原文链接:【http://xie.infoq.cn/article/4ec101ec4cfae5031e0fc01c5】。文章转载请联系作者。
评论