- Configuring a Squid Server to authenticate from MySQL database

Install squid using your distro package management system or using source.
Make sure squid is compiled with --enable-basic-auth-helpers=DB option.

Creating MySQL db/table to hold user credentials
mysql> create database squid;
mysql> grant select on squid.* to someuser@localhost identified by 'your_passwd';

Create table 'passwd' in 'squid' db.
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`)
);
Populate the table with some test data, eg
mysql> insert into passwd values('Nikesh','test',1,'Test User','for testing purpose');
Squid Configuration File
Edit squid.conf so that authentication against MySQL db works

auth_param basic program /usr/local/squid/libexec/squid_db_auth --user someuser --password your_passwd --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

Other squid related articles - here


source:http://linuxpoison.blogspot.com/2010/08/135781677519284.html