第十九章,配置Squid服务器

一、代理服务器简介

19.1.1:什么是代理服务器

  代理服务器的功能就是代理网络用户去取的网络信息,好比是网络信息的中转站,大多被用来连接互联网和局域网。代理服务器好像一个缓冲区,能够显著提高网页浏览速度和效率;代理服务器是Internet链路级网关所提供的安装全功能,起到防火墙作用;
  代理服务器作为连接Internet与局域网之前的桥梁,在实际应用中发挥着极其重要的作用,他可用于多个目的,最基本的功能是连接,此外还包括安全性、缓存、内容过滤、和访问控制等功能;
  局域网上不能直接上网的主机将上网请求发给代理服务器,然后代理服务器代理完成这个请求,将所要浏览的服务器主页缓存到本地,然后发送给请求者;

19.1.2:代理服务器的功能

  1.充当局域网与外部网络的连接出口:可以将内部的网络状态对外部屏蔽

  2.防火墙功能

  3.网址过滤和访问权限控制:代理服务器可以设置IP过滤,对内部和外界的Internet地址过滤,限制不同用户的访问权限

  4.提高访问速度

  5.节省IP地址开销

19.1.3:代理服务器的类型

  1.标准代理服务器:需要客户机在浏览器中指定代理服务器的地址、端口;

  2.透明代理服务器:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;

  3.反向代理服务器:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

19.1.4:Squid简介

  • Squid与Linux其他代理服务器相比,下载安装简单,配置简单灵活,支持缓存和多种协议。用Squid结合Iptables的解决方案,就可以获得通过缓存高性能的同时能够无缝连的访问Internet

  • Squid接受用户下载请求,并自动处理下载数据;Squid收到申请后,首先与访问控制列表中的访问规则相对照,如果满足规则,则在缓存中查找是否存在需要的信息。如果有,则将缓存中的信息传递给客户端;如果没有则Squid连接到所申请的网页,接着把主页传给用户,同时自己也保留一个备份,当别的用户申请时,Squid直接将备份立即传递给用户

  • Squid支持HTTP、FTP、gopher、SSL和WAIS等协议;与其他代理服务器不同,Squid是一个单独的、非模块化的、I/O驱动的进程来处理所有客户端请求

  • Squid将数据元缓存在内存,同时也将缓存DNS查找结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。

  • Squid的另一个优越性在于他使用访问控制列表(ACL)和访问权限列表(ARL)。

  • Squid主要组成部分

    服务名:squid
    主程序:/usr/sbin/squid
    配置目录:/etc/squid
    主配置文件:/etc/squid/squid.conf
    监听tcp端口号:3128
    默认访问日志文件:/var/log/squid/access.log

二、Squid的安装和配置

19.2.1:安装Squid服务器软件包

  1.yum install squid      # 使用的yum安装

  2.编译安装

    ①下载安装包:http://www.p-pp.cn/app/squid/squid-3.5.23.tar.gz

    ②编译安装

    

[root@Centos6 src]#tar -xvf squid-3.5..tar.gz
[root@Centos6 src]#cd squid-3.5./
[root@Centos6 squid-3.5.]#./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-linux-netfilter --enable-async-io= --enable-default-err-language=Simplify_Chinese --disable-poll --enable-epoll --enable-gnuregex
[root@Centos6 squid-3.5.]#make -j && make install --enable-async-io:异步I/O可以用来提升存储性能。aufs模块使用大量的线程来执行磁盘I/O操作,N_THREADS参数改变Squid使用的线程数量。
--enable-async-io:等同于如下三个选项,用于异步IO,提升存储性能:
--with-pthreads:在编译过程中链接到系统的P线程库,aufs存储模块是Squid中唯一需要使用线程的部分。
--with-aufs-threads=N_THREADS:指定aufs存储机制使用的线程数量。Squid会根据cache目录的数量,自动计算需要使用多少线程。
--enable-storeio=ufs,aufs,diskd, coss, null:告诉Squid编译时使用哪个存储模块,源码中/src/fs下面有所有可用的存储模块
--enable-default-err-language=Simplify_Chinese:错误信息的显示语言
--enable-linux-netfilter:使用内核过滤,目的是对透明模式提供支持
--disable-poll --enable-epoll:关闭默认的poll模式,开启epoll模式提升性能
--enable-gnuregex:允许规则中使用GNU正则表达式 poll是Linux中的字符设备驱动中的一个函数。Linux 2.5.44版本后,poll被epoll取代

    ③优化路径

      [root@Centos6 squid-3.5.23]#ln -s /usr/local/squid/sbin/squid /usr/local/sbin/

      [root@Centos6 squid-3.5.23]#useradd -M -s /sbin/nologin squid 

      [root@Centos6 squid-3.5.23]#chown -R squid:squid /usr/local/squid/va

    ④添加squid的启动脚本

      [root@Centos6 squid-3.5.23]#vim /etc/init.d/squid    # 内容如下Squid启动脚本

#!/bin/bash
#chkconfig:
#discription: /etc/squid.conf
#pidfile: /usr/local/squid/var/run/squid.pid
#description: squid - internet object cache.
PID="usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"
case "$1" in
start)
netstat -anpt | grep squid &>/dev/null
if [ $? -eq ]
then
echo "squid is running"
else
echo "正在启动squid…….."
$CMD
fi
;;
stop)
$CMD -k kill &> /dev/null
rm -rf $PID &> /dev/null
;;
status)
[ -f $PID ] &> /dev/null
if [$? -eq ]
then
netstat -anpt | grep squid
else
echo "squid is not running"
fi
;;
restart)
$ stop &> /dev/null
echo "正在关闭squid……"
$ start &> /dev/null
echo "正在启动squid……"
;;
reload)
$CMD -k reconfigure
;;
check)
$CMD -k parse
;;
*)
echo "用法:$0 {start | stop |restart | reload | check | status}"
;;
esac

squid的启动脚本

      [root@Centos6 squid-3.5.23]#chmod +x /etc/init.d/squid

      [root@Centos6 squid-3.5.23]#chkconfig --add squid

    ⑤检查配置

[root@Centos6 squid-3.5.]## squid -k parse       ##检查配置文件的语法是否正确
[root@Centos6 squid-3.5.]##squid –k reconfigure ##重新加载,相当于reload
[root@Centos6 squid-3.5.]## squid -z ##初始化缓存目录
[root@Centos6 squid-3.5.]## squid ##启动squid服务

19.2.2:/etc/squid/squid.conf文件详解

  该文件由访问控制列表、参数设置和刷新模式条目3部分组成。该文件内容比较简单,可以参考/usr/share/doc/squid-3.5.20/squid.conf.documented 模板文件

  

#acl all src 0.0.0.0/0.0.0.0 and http_access allow all选项定义了一个访问控制列表。详细情况参见和Squid软件
#携带的文档。这里的访问控制列表允许所有对代理服务的访问,因为这里该代理是加速web服务器。
acl all src 0.0.0.0/0.0.0.0 #允许所有IP访问
acl manager proto http #manager url协议为http
acl localhost src 127.0.0.1/255.255.255.255 #允午本机IP
acl to_localhost dst 127.0.0.1 #允午目的地址为本机IP
acl Safe_ports port # 允许安全更新的端口为80
acl CONNECT method CONNECT #请求方法以CONNECT
http_access allow all #允许所有人使用该代理.因为这里是代理加速web服务器
http_reply_access allow all #允许所有客户端使用该代理 acl OverConnLimit maxconn #限制每个IP最大允许16个连接,防止攻击
http_access deny OverConnLimit icp_access deny all #禁止从邻居服务器缓冲内发送和接收ICP请求.
miss_access allow all #允许直接更新请求
ident_lookup_access deny all #禁止lookup检查DNS
http_port transparent #指定Squid监听浏览器客户请求的端口号。 hierarchy_stoplist cgi-bin ? #用来强制某些特定的对象不被缓存,主要是处于安全的目的。
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY cache_mem GB #这是一个优化选项,增加该内存值有利于缓存。应该注意的是:
#一般来说如果系统有内存,设置该值为(n/)3M。现在是3G 所以这里1G
fqdncache_size #FQDN 高速缓存大小
maximum_object_size_in_memory MB #允许最大的文件载入内存 memory_replacement_policy heap LFUDA #动态使用最小的,移出内存cache
cache_replacement_policy heap LFUDA #动态使用最小的,移出硬盘cache cache_dir ufs /home/cache #高速缓存目录 ufs 类型 使用的缓冲值最大允午1000MB空间,
#32个一级目录,512个二级目录 max_open_disk_fds #允许最大打开文件数量, 无限制
minimum_object_size KB #允午最小文件请求体大小
maximum_object_size MB #允午最大文件请求体大小 cache_swap_low #最小允许使用swap %
cache_swap_high #最多允许使用swap % ipcache_size # IP 地址高速缓存大小 2M
ipcache_low #最小允许ipcache使用swap %
ipcache_high #最大允许ipcache使用swap % access_log /var/log/squid/access.log squid #定义日志存放记录
cache_log /var/log/squid/cache.log squid
cache_store_log none #禁止store日志 emulate_httpd_log on #将使Squid仿照Web服务器的格式创建访问记录。如果希望使用
#Web访问记录分析程序,就需要设置这个参数。 refresh_pattern . % override-expire override-lastmod reload-into-ims ignore-reload #更新cache规则 acl buggy_server url_regex ^http://.... http:// #只允许http的请求
broken_posts allow buggy_server acl apache rep_header Server ^Apache #允许apache的编码
broken_vary_encoding allow apache request_entities off #禁止非http的标分准请求,防止攻击
header_access header allow all #允许所有的http报头
relaxed_header_parser on #不严格分析http报头.
client_lifetime minute #最大客户连接时间 120分钟 cache_mgr sky@test.com #指定当缓冲出现问题时向缓冲管理者发送告警信息的地址信息。 cache_effective_user squid #这里以用户squid的身份Squid服务器
cache_effective_group squid icp_port #指定Squid从邻居服务器缓冲内发送和接收ICP请求的端口号。
#这里设置为0是因为这里配置Squid为内部Web服务器的加速器,
#所以不需要使用邻居服务器的缓冲。0是禁用 # cache_peer 设置允许更新缓存的主机,因是本机所以127.0.0.
cache_peer 127.0.0.1 parent no-query default multicast-responder no-netdb-exchange
cache_peer_domain 127.0.0.1
hostname_aliases 127.0.0.1 error_directory /usr/share/squid/errors/Simplify_Chinese #定义错误路径 always_direct allow all # cache丢失或不存在是允许所有请求直接转发到原始服务器
ignore_unknown_nameservers on #开反DNS查询,当域名地址不相同时候,禁止访问
coredump_dir /var/log/squid #定义dump的目录 max_filedesc #最大打开的文件描述 half_closed_clients off #使Squid在当read不再返回数据时立即关闭客户端的连接。
#有时read不再返回数据是由于某些客户关闭TCP的发送数据
#而仍然保持接收数据。而Squid分辨不出TCP半关闭和完全关闭。 buffered_logs on #若打开选项“buffered_logs”可以稍稍提高加速某些对日志文件的写入,该选项主要是实现优化特性。 #防止天涯盗链,转嫁给百度
acl tianya referer_regex -i tianya
http_access deny tianya
deny_info tianya
#阻止baidu蜘蛛
acl baidu req_header User-Agent Baiduspider
http_access deny baidu
#限制同一IP客户端的最大连接数
acl OverConnLimit maxconn
http_access deny OverConnLimit #防止被人利用为HTTP代理,设置允许访问的IP地址
acl myip dst 222.18.63.37
http_access deny !myip #允许本地管理
acl Manager proto cache_object
acl Localhost src 127.0.0.1 222.18.63.37
http_access allow Manager Localhost
cachemgr_passwd all
http_access deny Manager #仅仅允许80端口的代理
acl all src 0.0.0.0/0.0.0.0
acl Safe_ports port # http
http_access deny !Safe_ports
http_access allow all #Squid信息设置
visible_hostname happy.swjtu.edu.cn
cache_mgr ooopic2008@qq.com #基本设置
cache_effective_user squid
cache_effective_group squid
tcp_recv_bufsize bytes #.6的反向代理加速配置
cache_peer 127.0.0.1 parent no-query originserver #错误文档
error_directory /usr/local/squid/share/errors/Simplify_Chinese #单台使用,不使用该功能
icp_port hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
cache deny QUERY acl apache rep_header Server ^Apache
broken_vary_encoding allow apache refresh_pattern ^ftp: %
refresh_pattern ^gopher: %
refresh_pattern . % cache_store_log none
pid_filename /usr/local/squid/var/logs/squid.pid
emulate_httpd_log on

Squid主文件配置详解

squid常用配置选项

/etc/squid/squid.conf

http_port 3128  (还可以只监听一个IP http_port 192.168.0.1:3128)
hierarchy_stoplist cgi-bin ? #用来强制某些特定的对象不被缓存,主要是处于安全的目的
cache_mem 64MB #缓存占内存大小
maximum_object_size 4096KB #最大缓存块
reply_body_max_size 1024000 allow all #限定下载文件大小
access_log /var/log/squid/access.log #访问日志存放的地方
visible_hostname proxy.test.xom #可见的主机名
cache_dir ufs /var/spool/squid 100 16 256
#ufs:缓存数据的存储格式
#/var/spool/squid 缓存目录
#100:缓存目录占磁盘空间大小(M)
#16:缓存空间一级子目录个数
#256:缓存空间二级子目录个数
cache_mgr webmaster@test.com #定义管理员邮箱
http_access deny all #访问控制

19.2.3:Squid访问控制列表

ACL元素类型

  • src:源地址(即客户机IP地址)
  • dst:目标地址(即服务器IP地址)
  • srcdomain:源名称(即客户机名称)
  • dstdomain:目标名称(即服务器名称)
  • time:一天中的时刻和一周内的一天
  • url_regex:URL规则表达式匹配
  • urlpath_regex:URL-path规则表达式匹配,略去协议和主机名
  • proxy_auth:通过外部程序进行用户验证
  • maxconn:单一IP的最大连接数

匹配模式

^ 匹配数据的开头
$ 匹配数据的结尾
. 匹配任意字符
\ 匹配标点符号
[ab] 匹配一个字符a或b
[a-z] 匹配任意一个小写字母
[a-z 0-9] 匹配任意小写字母或数字

方式举例

# 个人配置
# 设置允许使用代理服务器
acl person_allow src "/etc/squid/person_allow.list"
http_access allow person_allow
# 设置拒绝使用代理服务器
acl person_deny src "/etc/squid/person_deny.list"
http_access deny person_deny
# 屏蔽网站cf.qq.com
acl block_cf dstdomain -i cf.qq.com
http_access deny block_cf
#屏蔽包含"pan"的url路径
acl block_all_pan url_regex -i pan
http_access deny block_all_pan
# 禁止下载gif和rpm文件
acl forbid_gif-rpm urlpath_regex -i \.gif$\.rpm$
http_access deny forbid_gif-rpm
#禁止用户访问端口21、、-
acl forbid_port port -
http_access deny forbid_port
# 限制192.168.9.1只能在周一到周五9.~.00使用代理服务器
acl limit_src src 192.168.9.7
acl limit_time time MTWHF :-:
http_access allow limit_src limit_time
#禁止MAC地址为00:::::10的客户端使用代理服务器
acl block_MAC arp :::::
http_access deny block_MAC

19.2.4:Squid配置实例

  1.打开内核路由转发功能,修改/etc/sysctl.conf ,将net.ipv4.ip_forward的参数设置为1

    net.ipv4.ip_forward=1
    [root@centos7 ~]#sysctl -p    # 让配置内核参数生效  或者/proc/sys/net/ipv4/ip_forward,将这个文件的内容改为1

  2.编辑/etc/squid/squid.conf

    在访问控制列表添加

    

# 配置允许192.168.0./
acl client src 192.168.0.0/
http_access allow client # 配置端口
http_port
#用来强制某些特定的对象不被缓存,主要是处于安全的目的。
hierarchy_stoplist cgi-bin ?
# 配置缓存区大小
cache_mem MB
# 配置硬盘缓存,20G,一级目录16个,二级子目录256个
cache_dir ufs /var/spool/squid
# 配置日志路径
cache_log /var/log/squid/cache.log
# 配置访问日志路径
cache_access_log /var/log/squid/access.log
# 配置网页缓存日志路径
cache_store_log /var/log/squid/store.log
# 进程所有者
cache_effective_user squid
# 进程所属组
cache_effective_group squid
# DNS服务器
dns_nameservers 223.5.5.5
# 可见计算机主机名
visible_hostname 192.168.9.7
# 电子邮件地址
cache_mgr root@p-pp.cn

  3.检查配置文件语法

    squid -k parse.

  4.初始化squid

    [root@centos7 ~]# squid -z      # 初始化
    [root@centos7 ~]#ls /var/spool/squid/    # 查看一级目录

19.2.5:控制squid

  Centos 6 service

  Centos 7 systemctl

三、配置客户端

19.3.1:Linux客户端

  

  

   linux也可以编辑/etc/profile文件,使其在终端可以使用代理

HTTP_PROXY=http://172.16.1.111:3128

HTTPS_PROXY=http://172.16.1.111:3128

FTP_PROXY=http://172.16.1.111:3128

NO_PROXY=192.168.1.,192.168.4.

export HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY

四、Squid日志

19.4.1:日志文件简介

  ①Squia服务器的日志文件默认都存在/var/log/squid 目录中,用来记录访问日志,缓存日志,和网页缓存日志;

  ②在/etc/squid/squid.conf配置文件中,可以使用access_log参数指定access.log日志文件,使用cache_log指定cache.log日志文件,使用cache_store_log参数指定store.log日志文件

  ③其中最重要的是访问日志,通过查看访问日志可以知道Squid服务器运行的高峰时段、每个客户端的使用情况等众多信息。Squid访问日志格式可以是原始日志格式和普通日志格式,默认使用原始日志记录,以下是访问日志示例内容

      1553083603.817    116 192.168.9.1 TCP_MISS/200 4701 GET http://www.p-pp.cn/ - HIER_DIRECT/101.132.76.70 text/html

状态信息编码 描述

1553083603.817

客户度端访问时间
 116  处理缓存花费的时间
192.168.9.1 客户端IP地址或是FQDN
TCP_MISS/200 结果信息编码/状态信息编码
4701 缓存字节数
GET HTTP请求方法
http://www.p-pp.cn/ 目的地址的URL
- 默认未使用
HIER_DIRECT/101.132.76.70  缓存级别/目的IP
 text/html 缓存对象类型

19.4.2:使用webalizer时限Squid流量分析

  webalizer是一款高效、免费的服务器日志分析程序。其分析结果以HTML文件格式保存,从而可以方便通过Web服务器进行浏览。

  1安装:[root@Centos6 squid-3.5.23]#yum install webalizer -y

  2.配置

    1)编辑/etc/squid/webalizer_squid.conf

      [root@Centos6 ~]#cp /etc/webalizer.conf /etc/squid/webalizer_squid.conf      # 复制模板文件

      [root@Centos6 ~]#vim /etc/squid/webalizer_squid.conf               # 修改标红的即可

LogFile        /usr/local/squid/var/log/squid/access.log
LogType squid
OutputDir
/var/www/usage_squid
HistoryName /var/lib/webalizer/webalizer.hist
Incremental yes
IncrementalName /var/lib/webalizer/webalizer.current
PageType htm*
PageType cgi
PageType php
PageType shtml
DNSCache /var/lib/webalizer/dns_cache.db
DNSChildren
Quiet yes
FoldSeqErr yes
HideURL *.gif
HideURL *.GIF
HideURL *.jpg
HideURL *.JPG
HideURL *.png
HideURL *.PNG
HideURL *.ra
SearchEngine yahoo.com p=
SearchEngine altavista.com q=
SearchEngine google.com q=
SearchEngine eureka.com q=
SearchEngine lycos.com query=
SearchEngine hotbot.com MT=
SearchEngine msn.com MT=
SearchEngine infoseek.com qt=
SearchEngine webcrawler searchText=
SearchEngine excite search=
SearchEngine netscape.com search=
SearchEngine mamma.com query=
SearchEngine alltheweb.com query=
SearchEngine northernlight.com qr=

    2)创建/var/www/html/usage_squid目录

      [root@Centos6 html]#mkdir /var/www/html/usage_squid

      [root@Centos6 html]#cp /var/www/usage/{msfree,webalizer}.png /var/www/html/usage_squid/

    3)声成统计分析

      [root@Centos6 html]#webalizer -c /etc/squid/webalizer_squid.conf 

  3.访问webalizer

    输入IP/webalizer_squid  即可访问

    

19.4.3:安装sarg日志分析

  1.sarg下载地址:http://www.p-pp.cn/app/squid/sarg-2.3.7.tar.gz

    sarg 命令常用选项:
      -l 指定输入日志来源
      -o 指定输出目录
      -z 处理信息
      -d 指定日期

  2.安装依赖包:

    Centos6:gd-devel-2.0.35-11.el6.x86_64.rpm,rpm下载地址:http://www.p-pp.cn/app/squid/gd-devel-2.0.35-11.el6.x86_64.rpm

         [root@Centos6 gd-devel]#yum -y install gd-devel-2.0.35-11.el6.x86_64.rpm

    Centos 7:http://www.p-pp.cn/app/squid/gd-devel.tar.gz,这个是个yum源,解压配置yum源即可安装

  3.编译安装    

[root@Centos6 src]#tar -xf sarg-2.3..tar.gz
[root@Centos6 sarg-2.3.]#./configure --prefix=/usr/local/sarg --sysconfdir=/etc/sarg --enable-extraprotection && make && make install

  4.配置

里面要改的东西较多,可以删掉/etc/sarg/sarg.conf,在创建一个将红色部分的内容复制进去
access_log /usr/local/squid/var/logs/access.log
title "Squid User Access Reports"
output_dir /var/www/html/sarg
user_ip no
topuser_sort_field connect reverse
user_sort_field connect reverse
exclude_hosts /usr/local/sarg/noreport
overwrite_report no
mail_utility mailq.postfix
charset UTF-
weekdays -
hours -,-,-
www_document_root /var/www/html access_log /usr/local/squid/var/logs/access.log
title "Squid User Access Reports"
output_dir /var/www/html/sarg
user_ip no
topuser_sort_field connect reverse
user_sort_field connect reverse
exclude_hosts /usr/local/sarg/noreport
overwrite_report no
mail_utility mailq.postfix
charset UTF-8
weekdays 0-6
hours 9-12,14-16,18-20
www_document_root /var/www/html

    ①setenforce 0    # g关闭SElinux

    ②[root@Centos6 sarg]#touch /usr/local/sarg/noreport    #该文件中添加的域名将不被显示在排序中

    ③[root@Centos6 sarg]#sarg

    ④Ip/sarg    # 访问日志

  

  5.计划任务

    

计划任务
vim /usr/local/sarg/daily.sh
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(DATE -d "1 day ago" +%d/%m/%Y)
/usr/local/sarg/bin/sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/sarg -z -d $YESTERDAY-$TODAY &> /dev/null
exit chmod +x /usr/local/sarg/daily.sh crontab -e
* * * /usr/local/sarg/daily.sh chkconfig crond on

计划任务

 五、缓存代理

19.5.1:

  为了管理和查询Squid服务器的实时情况,在安装squid软件包的同时也一起安装了一个管理工具:cachemgr.cgi。通过Web页面访问cachemgr.cgi,可以查询Squi服务器的缓存活动、内存使用和分配、事件队列、IP地址的缓存状态以及DNS的查询统计‘。

  ①复制cachemgr.cgi文件

    [root@centos7 ~]#cp /usr/lib64/squid/cachemgr.cgi /var/www/cgi-bin

  ②编辑/etc/squid/cachemgr.conf文件

    localhost

  ③编辑/etc/httpd/conf.d/squid.conf  

    安装squid的时候默认已创建该文件,无需修改

  ④l浏览器打开http://192.168.9.7/cgi-bin/cachemgr.cgi,然后直接continue即可

    

19.5.2:Squid安全设置

  可以使用ls /usr/lib64/squid查看目录中的外部认证程序  

[root@centos7 ~]#ls /usr/lib64/squid/
basic_db_auth cachemgr.cgi helper-mux.pl
basic_getpwnam_auth cert_tool log_db_daemon
basic_ldap_auth digest_edirectory_auth log_file_daemon
basic_msnt_multi_domain_auth digest_file_auth negotiate_kerberos_auth
basic_ncsa_auth digest_ldap_auth negotiate_kerberos_auth_test
basic_nis_auth diskd ntlm_fake_auth
basic_pam_auth ext_file_userip_acl ntlm_smb_lm_auth
basic_pop3_auth ext_kerberos_ldap_group_acl ssl_crtd
basic_radius_auth ext_ldap_group_acl storeid_file_rewrite
basic_sasl_auth ext_session_acl unlinkd
basic_smb_auth ext_time_quota_acl url_fake_rewrite
basic_smb_auth.sh ext_unix_group_acl url_fake_rewrite.sh
basic_smb_lm_auth ext_wbinfo_group_acl

  

  1.创建认证账号文件,例如。创建user1和user2

    

[root@centos7 ~]#htpasswd -c /etc/squid/passwd user1
New password:
Re-type new password:
Adding password for user user1
[root@centos7 ~]#htpasswd /etc/squid/passwd user2
New password:
Re-type new password:
Adding password for user user2

  2.无需在系统中创建用户,可以查看/etc/squid/passwd查看已经创建的用户账号

[root@centos7 ~]#cat /etc/squid/passwd
user1:$apr1$qkErpbNC$zzfAIHKck28HcoTlhf4Yu.
user2:$apr1$uCxVK3RL$Wt98QXjqJIUMX1Gp89PBh1

  3.编辑/etc/squid/squid.conf文件

    

[root@centos7 ~]#vim /etc/squid/squid.conf
# 设置认证方式为basic,认证程序路径/usr/lib64/squid/ncsa_auth,认证程序读取的文件/etc/squid/passwdauth_param basic program /usr/lib64/squid/basic_ncsa_auth  /etc/squid/passwd  # 认证程序进程数5个
auth_param basic children # 认证有效期为2小时当认证过期后,需要重新认证
auth_param basic credentialsttl hous # 认证提示内容
auth_param basic realm This is p-pp.cn Squid proxy caching # 设置acl
acl auth_user proxy_auth REQUIRED
http_access allow auth_user

    4.重启Squid:systemctl restart squid

    5.客户端访问

最新文章

  1. [51单片机] 以PWM控制直流电机为例建一个简单的51工程框架
  2. jenkins集成ansible注意事项Failed to connect to the host via ssh.
  3. makefile 简单介绍
  4. asp.net 分页-利用后台直接生成html分页
  5. Eclipse报错 Unable to execute dex: Multiple dex files define Lcom/kenai/jbosh/AbstractAttr
  6. Python基础复习_Unit one
  7. ASP.NET MVC 创建 Area 以及使用
  8. [Luogu2057]善意的投票
  9. OpenBUGS抽样数据基本操作
  10. jmeter javamail 邮件格式再优化(由详情——>改为统计)
  11. Oracle_异常
  12. ES6checker ES6浏览器检测
  13. Direct3D 11 Tutorial 2: Rendering a Triangle_Direct3D 11 教程2:渲染一个三角形
  14. mysql导出CSV格式的文件
  15. 使用Groovy+Spock构建可配置的订单搜索接口测试用例集
  16. 如何在比较1.5 len的次数下,找到整型数组最大最小值
  17. as3 程序域
  18. eclipse在Windows7 64 位下出现Unhandled event loop exception No more handles
  19. JFreeChart的简单使用
  20. AMD,CMD,UMD 三种模块规范 写法格式

热门文章

  1. openERP笔记 自定义模块开发
  2. 记一次ADG备库归档目录满导致的延时处理
  3. 原生JavaScript写select下拉选择后跳转页面
  4. IP地址和子网划分学习笔记之《IP地址详解》
  5. lua常用方法收集
  6. python多线程学习一
  7. javascript DOM 常用方法
  8. 在java中,将String类型字符串s赋值为null后,将字符串与其他字符串拼接后得到结果出现了null字符串与其他字符连接的样式
  9. 怎么让table中的<td>内容向上对齐
  10. 《CSS世界》读书笔记(二)