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
四、启动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和端口
六、squid常用命令
squid -z # 初始化缓存空间
squid start # 启动
squid -s # 后台启动
squid -k shutdown # 停止
squid -k reconfigure # 重新载入配置文件,修改配置文件后可执行此命令
squid -k rotate # 轮循日志
squid -k parse # 分析是否设置有错误。
七、使用代理访问
现在当你使用代理访问页面的时候,会先弹出一个提示框,让你输入用户名密码。然后就可以继续访问了。
附带/etc/squid/squid.conf
完整配置文件及需要注意的问题