Install réalisée sur une ubuntu-hardy amd64.

J'installe le nécessaire :

# apt-get install squid apache2-utils

Puis je sauvegarde sous forme condensée le fichier de config de squid:

# cd /etc/squid
# cat squid.conf |egrep -v '^#|^$' > squid.conf.nocomment

Je conserve une copie de l'original ne serait-ce que pour les infos
# cp squid.conf squid.conf.distrib
# cp squid.conf.nocomment squid.conf

J'applique ensuite les modifs et au résultat j'ai ceci:

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/users
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hour

acl rle dst 192.168.0.23/255.255.255.255
http_access allow rle

acl wan src 192.168.0.0/255.255.255.0
acl users proxy_auth REQUIRED
http_access allow wan users

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443        # https
acl SSL_ports port 563        # snews
acl SSL_ports port 873        # rsync
acl Safe_ports port 80        # http
acl Safe_ports port 21        # ftp
acl Safe_ports port 443        # https
acl Safe_ports port 70        # gopher
acl Safe_ports port 210        # wais
acl Safe_ports port 1025-65535    # unregistered ports
acl Safe_ports port 280        # http-mgmt
acl Safe_ports port 488        # gss-http
acl Safe_ports port 591        # filemaker
acl Safe_ports port 777        # multiling http
acl Safe_ports port 631        # cups
acl Safe_ports port 873        # rsync
acl Safe_ports port 901        # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
icp_access allow all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
refresh_pattern ^ftp:        1440    20%    10080
refresh_pattern ^gopher:    1440    0%    1440
refresh_pattern .        0    20%    4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid




Le fichier des login/pass sera stocké dans /etc/squid/users et sera généré comme ceci:

# cd /etc/squid
# htpasswd -bc users user password
# htpasswd -b users user2 password2

Je vais autoriser l'accès au serveur local d'adresse ip 192.168.0.23 pour tous les pc sur le réseau 192.168.0.0
L'accès à internet nécessitera une authentification.

J'avais une vieille vm avec un windows98 (oui oui) qui trainait dans un coin et j'ai testé depuis celle-ci:


squid http_access

Dans ce cas j'accède à un site dont l'adresse ip est 192.168.0.23 (gérée par un dns local).
Je n'ai pas besoin de m'authentifier.
squid http_access

Dans ce cas j'accède au même site mais en passant par son adresse internet: l'authentification est requise.

Il est également possible d'utiliser d'autres méthodes d'authentification: ldap, ad...

Pour ldap c'est par ici