Squid Web Cache Wiki

Squid Web Cache 文档

🔗 使用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

导航:站点搜索站点页面分类🔼 向上