如何定制Squid的Bash Shell认证助手?

Forward Proxy

1 前言

一个问题,一篇文章,一出故事。
笔者需要使用Bash Shell语言为Squid定制一个不一样的验证逻辑,于是整理此文。

2 最佳实践

2.1 环境配置

如何yum部署Squid?

2.2 配置认证助手

2.2.1 创建认证脚本

vim /usr/lib64/squid/squid_helper.sh

加入如下配置,

#!/bin/bash

while read -r line; do
        fields=($line)
        username=$(printf '%b' "${fields[0]//%/\\x}")
        password=$(printf '%b' "${fields[1]//%/\\x}")
        if [[ $username == "user" && $password == "passwd" ]]; then
                echo "OK"
        else
                echo "ERR"
        fi
done

脚本创建后,你需要使用如下命令授予执行权限,

chmod +x /usr/lib64/squid/squid_helper.sh

以上仅仅是范例脚本,你可以根据自己的需求使用不同的语言和不同的业务逻辑,脚本创建后,你可以使用如下命令测试,

/usr/lib64/squid/squid_helper.sh

测试向导如下,

user passwd
OK
user password
ERR

2.2.2 加载认证脚本

vim /etc/squid/squid.conf

加入如下配置,

auth_param basic program /usr/lib64/squid/squid_helper.sh
auth_param basic children 20
auth_param basic realm Username and password
auth_param basic credentialsttl 5 hours
acl AuthenticatedUsers proxy_auth REQUIRED
http_access allow AuthenticatedUsers

加入配置后,你需要检查配置的语法并重载使配置生效,

squid -k check
systemctl reload squid

2.3 测试认证助手

export http_proxy="http://user:passwd@10.168.0.80:3128"
export https_proxy="http://user:passwd@10.168.0.80:3128"
curl http://www.cmdschool.org
curl https://www.cmdschool.org

参阅文档
========================
http://freesoftwaremagazine.com/articles/authentication_with_squid/

没有评论

发表回复

Forward Proxy
如何设置Squid目域名访问控制?

1 前言 一个问题,一篇文章,一出故事。 由于笔者最近不希望某些软件随意访问互联网,于是设置域名的访 …

Forward Proxy
如何熟悉Squid的SSL碰撞II?

1 基础知识 1.1 Squid SSL碰撞的介绍 Squid SSL碰撞本质上是使用CA证书(根证 …

Forward Proxy
如何设置Squid目标地址访问控制?

1 前言 一个问题,一篇文章,一出故事。 由于公司的原本堆叠的正向代理的上层代理费用到期而撤销,原本 …