如何定制Squid的PHP认证助手?
- By : Will
- Category : Forward Proxy
Forward Proxy
1 前言
一个问题,一篇文章,一出故事。
笔者需要使用PHP语言为Squid定制一个不一样的验证逻辑,于是整理此文。
2 最佳实践
2.1 环境配置
2.1.1 配置Squid环境
2.1.2 配置php运行环境
dnf install php-cli
2.2 配置认证助手
2.2.1 创建认证脚本
vim /usr/lib64/squid/squid_helper.php
加入如下配置,
<?php if (!defined("STDIN")) { defind("STDIN",fopen("php://stdin","r")); } while (!feof(STDIN)) { $line = trim(fgets(STDIN)); $fields = explode(' ',$line); $username = rawurldecode($fields[0]); $password = rawurldecode($fields[1]); if ($username == 'user' and $password == 'passwd') { fwrite(STDOUT,"OK\n"); } else { fwrite(STDOUT,"ERR\n"); } } ?>
以上仅仅是范例脚本,你可以根据自己的需求使用不同的语言和不同的业务逻辑,脚本创建后,你可以使用如下命令测试,
php /usr/lib64/squid/squid_helper.php
测试向导如下,
user passwd OK user password ERR
2.2.2 加载认证脚本
vim /etc/squid/squid.conf
加入如下配置,
auth_param basic program /usr/bin/php /usr/lib64/squid/squid_helper.php 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/
没有评论