如何定制Squid的Bash Shell认证助手?
- By : Will
- Category : Forward Proxy
Forward Proxy
1 前言
一个问题,一篇文章,一出故事。
笔者需要使用Bash Shell语言为Squid定制一个不一样的验证逻辑,于是整理此文。
2 最佳实践
2.1 环境配置
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/
没有评论