CentOS 7安装配置带用户认证的squid代理服务器

CentOS 7安装配置带用户认证的squid代理服务器

参考链接:https://www.cnblogs.com/fjping0606/p/6595790.html

一、安装

yum install squid -y
rpm -qa | grep squid
squid-3.5.20-2.el7_3.2.x86_64

二、配置
修改squid的配置文件/etc/squid/squid.conf,主要就是配置一下端口,缓存,日志和访问规则。

1、如果不需要带用户认证,只需在配置文件后面添加以下内容即可(安全性很差

cache_mem 64 MB
maximum_object_size 4 MB
cache_dir ufs /var/spool/squid 100 16 256
access_log /var/log/squid/access.log
http_access allow all
visible_hostname CangLuan.Squid.org

2、带用户认证配置

htpasswd -c /etc/squid/passwd cangluan

添加认证的用户密码,如果找不到htpasswd, 执行以下命令,然后就能使用htpasswd了

yum install httpd -y

在配置文件后台添加以下内容:

cache_mem 128 MB

# 设置缓存目录,缓存大小为100MB,该目录下有16个一级子目录,每个子目录下又有256个二级子目录。
cache_dir ufs /var/spool/squid 100 16 256

# 并在其下面增加一行,注意大小不能超过上面的总大小
cache_mem 64 MB

access_log /var/log/squid/access.log        # 日志所在目录

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd 
                                                                                # 指定认证程序以及账户文件
auth_param basic children 5                         # 认证程序同时跑的个数
auth_param basic realm CangLuan Squid       # 客户端在使用代理时,输入密码时弹出来的提示框中的描述文字
auth_param basic credentialsttl 5 hours # 认证的持续时间
acl cangluan proxy_auth REQUIRED                # 允许认证的用户访问
http_access allow cangluan                          # 允许cangluan中的成员访问
http_access deny all                                        # 拒绝所有其它访问
reply_body_max_size 10 MB               # 禁止下载的超过10MB的文件
maximum_object_size 16 MB                               # 超过16MB的文件不进行缓存
cache_mgr qin@qin.com                       # 管理员邮箱
logfile_rotate 60                               # log轮循 60天
cache_swap_high 95                          # cache目录使用量大于95%时,开始清理旧的cache
cache_swap_low 90                               # cache目录清理到90%时停止。
visible_hostname squid.chao                         # 代理机名字

# 如果你想让 squid 的流量再走二级代理,那只需要加上类似下面这句
# 其中,192.168.9.200 是父级代理的 IP,1234 是父级代理的端口
cache_peer 192.168.9.200 parent 1234 0 no-query no-digest

acl mylan src 192.168.1.0/24 192.168.4.0/24     # 客户机网段
acl worktime time MTWHF 08:30-17:30             # 周一至周五的工作时间段
acl to_host dst 127.0.0.0/8                     # 目标地址
acl mc20  maxconn  20                           # 最大并发连接20
acl blackURL  url_regex -i ^rtsp://  ^ emo://   # 以rtsp://等开头的URL
acl fileURL  urlpath_regex -i \.mp3$ \.mp4$     # 以.mp3、.mp4结尾的URL路径

#当需要限制的同一类型较多时,可以用独立的文件来存放
vim ipblock.list    //建立目标IP地址名单
89.23.12.34
191.12.37.112
171.23.65.0/24

vim dmblock.list    //建立目标域地址名单
.qq.com
.ysf.com
.yang.com

vim /etc/squid.conf            
acl ipblock dst "/etc/squid/ipblock.list"       //调用指定文件的列表内容
acl dmblock dstdomain "/etc/squid/dmblock.list"

常用的ACL列表类型:

src              源地址
dst              目标地址
port             端口
srcdomain        源域
dstdomain        目标域
time             访问时间
maxconn          最大并发连接
url_regex        目标URL地址
urlpath_regex    整个目标URL路径

三、初始化squid

squid -z

CentOS 7安装配置带用户认证的squid代理服务器

四、启动squid

systemctl start squid

# 设置开机启动
systemctl enable squid

# 验证是否启动
netstat -apn | grep 3128

五、开放防火墙

squid默认监听3128端口

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3128 -j ACCEPT 

浏览器配置squid服务器IP和端口

CentOS 7安装配置带用户认证的squid代理服务器

六、squid常用命令

squid -z                            # 初始化缓存空间
squid start                     # 启动
squid -s                            # 后台启动
squid -k shutdown       # 停止
squid -k reconfigure    # 重新载入配置文件,修改配置文件后可执行此命令
squid -k rotate             # 轮循日志
squid -k parse              # 分析是否设置有错误。

七、使用代理访问

现在当你使用代理访问页面的时候,会先弹出一个提示框,让你输入用户名密码。然后就可以继续访问了。

附带/etc/squid/squid.conf完整配置文件及需要注意的问题

CentOS 7安装配置带用户认证的squid代理服务器

CentOS 7安装配置带用户认证的squid代理服务器

上一篇:使用ACL限制FTP访问权限示例


下一篇:ACL配置