CentOS-7.2部署Squid服务

简介: CentOS-7.2部署Squid服务

一、安装Squid代理服务器

#yum -y install squid

在这里插入图片描述

1、启动Squid服务和设置开机启动

#systemctl start squid
#systemctl enable squid

在这里插入图片描述

2、详解Squid服务器配置文件

默认的/etc/squid/squid.conf文件内容和文件结构如下,该文件由访问控制列表、参数设置和刷新模式三部分组成,更详细的内容可以参考/usr/share/doc/squid-*/squid.conf.documented模板文件

[root@fl ~]# more /etc/squid/squid.conf

第一部分:访问控制列表

acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines

acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
#http_access deny to_localhost
http_access allow localnet
http_access allow localhost
http_access deny all


第二部分:参数设置

http_port 128
#cache_dir ufs /var/spool/squid 100 16 256
coredump_dir /var/spool/squid

第三部分:刷新条目

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

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 /.cgi
acl denyssl urlpath_regex -i ^https://
no_cache deny QUERY
no_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、编辑服务器配置文件

#vi /etc/squid/squid.conf

修改以添加如下内容:
修改并添加
添加acl规则,允许192.168.100.0/24访问,并将 192.168.0.0/16这行注释掉
在这里插入图片描述

http_port 3128   //此处为修改内容,第59行
cache_mem 512 MB
cache_dir ufs /var/spool/squid 20480 16 256
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_access_log /var/log/squid/access.log
cache_mgr root@fl.com
cache_effective_user squid
cache_effective_group squid
dns_nameservers 8.8.8.8
visible_hostname prox.fl.com

在这里插入图片描述

2、重启squid服务器

#systemctl restart squid 

在这里插入图片描述

3、打开内核转发功能

编辑文件/etc/sysctl.conf,添加如下内容

net.ipv4.ip_forward=1

在这里插入图片描述

生效配置

#sysctl -p

在这里插入图片描述

4、本机测试Squid服务

#curl -x 192.168.100.10:3128 www.baidu.com  //注意此处192.168.200.20为外网网卡

在这里插入图片描述

停止squid服务再次测试

#systemctl stop squid
#curl -x 192.168.100.20:3128 www.baidu.com

在这里插入图片描述

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

目录
相关文章
|
2月前
|
Java Linux Shell
linux自动部署jar包,注册系统服务(基于Centos7)
linux自动部署jar包,注册系统服务(基于Centos7)
89 0
|
3月前
|
Linux
CentOS7.9服务器一键脚本部署FRP内网穿透服务端与客户端
CentOS7.9服务器一键脚本部署FRP内网穿透服务端与客户端
225 0
|
2月前
|
JavaScript Java 应用服务中间件
centos部署vue项目(java,tomcat环境的搭建)
centos部署vue项目(java,tomcat环境的搭建)
43 0
|
3月前
|
监控 安全 Linux
CentOS7下部署ARL资产侦察灯塔系统
CentOS7下部署ARL资产侦察灯塔系统
172 3
|
1月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
99 1
|
2月前
|
存储 NoSQL Linux
centos7部署redis以及多实例
centos7部署redis以及多实例
55 0
|
2天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置PXE服务
PXE是Intel开发的预启动执行环境,允许工作站通过网络从远程服务器启动操作系统。它依赖DHCP分配IP,DNS服务分配主机名,TFTP提供引导程序,HTTP/FTP/NFS提供安装源。要部署PXE服务器,需关闭selinux和防火墙,安装dhcpd、httpd、tftp、xinetd及相关服务,配置引导文件和Centos7安装源。最后,通过syslinux安装引导文件,并创建pxelinux.cfg/default配置文件来定义启动参数。
5 0
|
2天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置postfix服务
安装CentOS7的Postfix和Dovecot,配置Postfix的`main.cf`文件,包括修改完全域名、允许所有IP、启用邮箱等。然后,配置Dovecot的多个配置文件以启用auth服务和调整相关设置。重启Postfix和Dovecot,设置开机自启,并关闭防火墙进行测试。最后,创建邮箱账户并在Windows邮箱客户端中添加账户设置。
9 0
|
2天前
|
Linux 网络安全
Centos6.5安装并配置NFS服务
该内容描述了在Linux系统中设置NFS服务的步骤。首先挂载yum源,然后安装NFS服务,并编辑配置文件。接着,重启rpcbind和NFS服务,可能需要重复此过程以解决初始可能出现的问题。此外,关闭防火墙策略,并再次重启服务。最终,根目录被共享,特定IP网段被允许访问。
9 0
|
10天前
|
JavaScript Linux 数据安全/隐私保护
如何在CentOS7部署Wiki.js知识库并实现分享好友公网远程使用【内网穿透】
如何在CentOS7部署Wiki.js知识库并实现分享好友公网远程使用【内网穿透】