我正在使用 squid_passwd 文件和 Mysql 测试身份验证。这是我的配置
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/squid_passwd
# auth_param basic program /usr/lib/squid3/basic_db_auth --dsn "DBI:mysql:database=abc" --user "root" --password "aaa" --table "user" --usercol "User_Name" --passwdcol "Password" --cond "" --plaintext
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 1 minute
auth_param basic casesensitive off
# auth_param basic children 5
# auth_param basic realm Squid proxy-caching web server
# acl blocked dstdomain .google.com.vn .google.com.sg
acl db_auth proxy_auth REQUIRED
# acl restricted_users proxy_auth "/etc/squid3/restrictedusers"
# http_access deny restricted_users blocked
http_access allow db_auth
# And finally deny all other access to this proxy
http_access deny all
这是squid_passwd
a2:$apr1$ovwnKYTS$hashedPassword
a1:$apr1$ovwnKYTS$hashedPassword
当我使用时squid_passwd
,它工作正常(我为 Firefox 设置了代理,然后使用用户名/密码成功登录
但是,当我使用 Mysql 配置(注释掉使用 Mysql 的行squid_passwd
,取消注释使用 Mysql 的行)时,我无法登录到代理服务器,即使测试命令有效
/usr/lib/squid3/basic_db_auth --dsn "DBI:mysql:database=abc" --user "root" --password "aaa" --table "user" --usercol "User_Name" --passwdcol "Password" --cond "" --plaintext
a1 password
OK
(并且cache.log
squid 也表明认证成功)
这是我的用户表
mysql> select User_Name, Password from user;
+-----------+----------+
| User_Name | Password |
+-----------+----------+
| a1 | password |
| a2 | password |
+-----------+----------+
我在这里做错了什么?
答案1
尝试在系统中禁用 SELinux。这将修复该问题。