Configuring proxy authentication for squid

From Notes_Wiki

Home > CentOS > CentOS 6.x > Squid proxy server configuration > Configuring proxy authentication for squid

Enabling proxy authentication using ldap

Refer to Squid proxy authentication using ldap


Enabling proxy authentication using custom plugin

Authentication program

For squid authentication a custom program which reads "username password" in endless loop from standard input is required. This program should print OK if authentication is successful or ERR followed by optional error message if authentication fails. Once such program is available then custom authentication can be setup as explained in following sub-section.


Authentication configuration

We can configure a program for basic authentication using lines like:

auth_param basic program /usr/lib64/squid/squid_auth_using_pop3/squid_auth_using_pop3
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

Now we can use acl proxy_authentication like 'acl proxy_authentication proxy_auth'

After this whenever proxy encounters this acl proxy authentication would be forced. Note that we want to enable proxy authentication for all users then we can use

    http_access allow proxy_authentication

But if we want it to be enabled only in combination with other ACL like source address then we can use

    acl hostel_wireless_users src 172.17.0.0/16 172.16.0.0/16
    http_access allow hostel_wireless_users proxy_authentication

Here order of acls, that is first hostel_wireless_users and then proxy_authentication is very important, so that only for hostel_wireless_users proxy_authentication is enforced. If we reverse the order and try

    http_access allow proxy_authentication hostel_wireless_users

then squid will end up trying proxy_authentication for all users and later on will see if users are hostel_wireless_users or not which wont serve the purpose of selective authentication.

Hence ACLs are tried in the order in which they are given. This can be used to optimize ACLs so that rule which is more likely to fail is given higher preference.


Home > CentOS > CentOS 6.x > Squid proxy server configuration > Configuring proxy authentication for squid