🔗 使用MySQL数据库配置Squid服务器进行身份验证
作者:Askar Ali Khan
🔗 目录
在此示例中,Squid安装将使用MySQL在用户上网前进行身份验证。
🔗 Squid安装
确保已构建squid_db_auth辅助程序;对于大多数预打包的发行版,通常都是这种情况。如果您自己构建Squid,只要系统上安装了MySQL库,它就会被构建。如果您想确认,请使用选项--enable-basic-auth-helpers=DB构建Squid - 如果由于任何原因无法构建辅助程序,构建将失败。
🔗 创建MySQL数据库/表以存储用户凭据
mysql> create database squid;
mysql> grant select on squid.* to someuser@localhost identified by 'xxxx';
mysql> CREATE TABLE `passwd` (
`user` varchar(32) NOT NULL default '',
`password` varchar(35) NOT NULL default '',
`enabled` tinyint(1) NOT NULL default '1',
`fullname` varchar(60) default NULL,
`comment` varchar(60) default NULL,
PRIMARY KEY (`user`)
);
用一些测试数据填充表,例如:
mysql> insert into passwd values('testuser','test',1,'Test User','for testing purpose');
🔗 Squid 配置文件
示例 squid.conf 部分
auth_param basic program /usr/local/squid/libexec/squid_db_auth \
--user someuser --password xxxx --plaintext --persist
auth_param basic children 5
auth_param basic realm Web-Proxy
auth_param basic credentialsttl 1 minute
auth_param basic casesensitive off
acl db-auth proxy_auth REQUIRED
http_access allow db-auth
http_access allow localhost
http_access deny all
默认情况下,辅助程序连接到本地主机上运行的MySQL数据库。它也可以使用--dsn参数联系远程服务器。
数据源名称(--dsn)参数是传递给Perl DBI模块的选项字符串,用于定位要使用的数据库。
它的语法是"DSN:" <driver> ":" <params>
参数部分取决于数据库驱动程序(类型)。“mysql”驱动程序使用分号分隔的键=值对。所以你可以这样写:
auth_param basic program /path/to/squid_db_auth \
--dsn "DSN:mysql:host=example.com;port=3306;database=squid" \
--user someuser --password xxxx --plaintext --persist
🔗 测试辅助程序
最好从命令行测试squid_db_auth辅助程序,以确保它与MySQL进行身份验证,然后再尝试从浏览器进行身份验证。
/path/to/squid_db_auth --user someuser --password xxxx --plaintext --persist
在同一行输入用户名和密码,用空格分隔。成功身份验证后将显示“OK”,否则显示“ERR login failure”。
⚠️ Disclaimer: Any example presented here is provided "as-is" with no support
or guarantee of suitability. If you have any further questions about
these examples please email the squid-users mailing list.
类别: ConfigExample
导航:站点搜索,站点页面,分类,🔼 向上