Centos7部署Squid正向代理(带用户认证)

前置操作:

按照命令顺序依次为:关闭防火墙 -> 关闭Selinux -> 添加iptables放行规则(3128端口)
如有需求,可自行开启并调整规则

systemctl stop firewalld
systemctl disable firewald
sudo setenforce 0 && sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3128 -j ACCEPT

一.安装Squid代理需要用的软件;

yum -y install squid
yum -y install httpd

在这里插入图片描述

二.配置Squid的conf文件;

这里我去掉了所有带#的配置信息,输出了在我的配置文件中有效配置信息,并添加了中文注释

acl localnet src 10.0.0.0/8     # RFC1918中允许的内网地址段
acl localnet src 172.16.0.0/12  # RFC1918中允许的内网地址段
acl localnet src 192.168.0.0/16 # RFC1918中允许的内网地址段
acl SSL_ports port 443         # 允许使用端口443的SSL连接
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  # 没有特殊应用的注册端口

acl Safe_ports port 280         # HTTP-MGMT 协议默认端口

acl Safe_ports port 488         # GSS-HTTP 协议默认端口

acl Safe_ports port 591         # FileMaker 6.0 对外开放的端口
acl Safe_ports port 777         # 多语言网站端口
acl CONNECT method CONNECT      # 允许通过CONNECT方法建立网络连接

http_access deny !Safe_ports    # 拒绝访问不安全的端口
http_access deny CONNECT !SSL_ports # 拒绝非安全SSL端口之外的所有端口的CONNECT请求
http_access allow localhost manager # 允许本地主机(127.0.0.1)通过访问cachemgr.cgi来管理缓存服务器
http_access deny manager        # 其他来源的manager访问禁止

acl list1 src 10.115.100.0/24   # 允许此特定IP地址范围内的客户端访问代理服务器
http_access allow list1        # 允许acl list1定义的IP地址范围内的客户端访问代理服务器。

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords  # 指定使用基本身份验证机制所需的程序和密码文件位置。
auth_param basic credentialsttl 5 hours  # 指定Basic身份验证凭据有效期(在此处为5个小时)。
acl ncsa_users proxy_auth REQUIRED  # 要求用户使用basic身份验证机制进行身份验证
http_access allow ncsa_users   # 允许通过Basic身份验证的用户访问

http_access deny all           # 拒绝所有来源的客户端访问

http_port 3128                 # 当前缓存服务器监听的HTTP协议端口号

cache_dir ufs /var/spool/squid 100 16 256  # 缓存目录的存储类型,以及Squid将如何检索和存储缓存数据。

coredump_dir /var/spool/squid   # 程序出现故障时产生的core dump文件存放路径。

refresh_pattern ^ftp:           1440    20%     10080  # 设置FTP文件的刷新模式
refresh_pattern ^gopher:        1440    0%      1440   # 设置Gopher文件的刷新模式
refresh_pattern -i (/cgi-bin/|?) 0     0%      0     # 正则表达式匹配,不允许缓存cgi程序和请求参数
refresh_pattern .               0       20%     4320   # 所有其他类型的对象以20%的可能性更新,最大保留时间为4320分钟

使用squid -z检查配置文件是否正确,这里如果服务是启动的,需要先关闭。

在这里插入图片描述
如果测试没问题可用直接重启服务并设置开机自动运行。

systemctl restart squid
systemctl enable squid

三.添加允许使用代理的用户;

1.这里我添加了一个 netuser01 用户,用户名可自行修改;执行命令后会让你输入2次密码确认;

htpasswd -cd /etc/squid/passwd netuser01

在这里插入图片描述

2.验证用户是否可以认证;这里要注意实际上/etc/squid/目录下是passwords还是passwd,我遇到过不一样的;执行命令后,输入用户名+空格+密码即可验证是否有效。看图操作~

/usr/lib64/squid/basic_ncsa_auth   /etc/squid/passwords

在这里插入图片描述

四.用户端配置测试;

配置浏览器代理,这个设置在internet选项中,如果实在不知道怎么打开,请自行百度,太过简单了;
配置如图:
在这里插入图片描述

然后确定应用后打开浏览器,此时会弹出验证窗口,需要进行用户认证,如图:
在这里插入图片描述

认证完成后即可正常代理上网;
在这里插入图片描述

在服务器端可以提供命令查看代理服务器的访问记录;

tail -f /var/log/squid/access.log

在这里插入图片描述
至此,完成部署,成功应用~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值