本文已参与 ⌈新人创作礼⌋ 活动,一起开启掘金创作之路。\
Squid代理配置
环境说明:
[root@xiancaibang ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@xiancaibang ~]# firewall-cmd --add-port=3128/tcp --permanent
[xupeng@xiancaibang ~]$ getenforce
Enforcing
[xupeng@xiancaibang ~]$ sudo semanage port -l | grep squid
squid_port_t tcp 3128, 3401, 4827
squid_port_t udp 3401, 4827
[xupeng@xiancaibang ~]$
备注1:如果启用了Selinux,需确保squid相关端口是否被放行;
临时关闭Selinux可使用setenforce 0,操作系统重启后将失效;永久关闭方法需要修改相关配置文件/etc/sysconfig/selinux中为SELINUX=disabled。
备注2:/etc/selinux/config 与 /etc/sysconfig/selinux实为通一个文件;二者之间为软链接关系;
开始安装:
sudo yum install squid
sudo yum install httpd-tools(因要使用htpass命令生成账户密码)
主配置文件
sudo vi /etc/squid/squid.conf
默认端口3128;可修改配置文件/etc/squid/squid.conf中的http_port 3128为http_port XXXX 任意不冲突的端口
不配置账户认证,直接使用:
在配置文件中找到http_access allow localhost行,直接增加一行:
http_access allow all
带账户认证
1、执行命令:htpasswd -c /etc/squid/passwd user1 #创建账户user1,并设置密码
2、注释或删除配置文件中http_access allow all
3、修改为以下内容:
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 5 hours
acl auth_user proxy_auth REQUIRED
http_access allow auth_user
(提示: /usr/lib64/squid/basic_ncsa_auth 不同版本的squid中,该路径可能不一样</usr/lib64/squid/ncsa_auth>)
命令解释:
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
#指定认证程序以及账户文件
auth_param basic children 5
#认证程序同时跑的个数
auth_param basic realm xiancaibang Squid
#客户端在使用代理时,输入密码时弹出来的提示框中的描述文字
auth_param basic credentialsttl 5 hours
#认证的持续时间
acl xiancaibang proxy_auth REQUIRED
#允许认证的用户访问
http_access allow xiancaibang
#允许xiancaibang中的成员访问
http_access deny all
#拒绝所有其它访问