HLab

Julien Hautefeuille

Squid

Objectif

Mettre en place un proxy HTTP authentifié afin d’outrepasser un filtrage par IP ou par DNS. Cette configuration de Squid est spécifique à cet usage puisque nous ne filtrons rien, nous ne réécrivons rien et nous ne créons aucun fichier de log.

Prérequis

Les outils nécessaires sont Squid et les outils Apache pour pouvoir créer notre base d’utilisateurs.

sudo apt-get install squid3
sudo apt-get install apache2-utils

Créer le fichier des utilisateurs

Nous créons notre fichier à l’aide de l’outil Apache : htpasswd.

truncate -s 0 /etc/squid3/users
chown root:proxy /etc/squid3/users
chmod 0640 /etc/squid3/users

Ajoutons un utilisateur:

htpasswd -m /etc/squid3/users nicolas

Vérifions que Squid comprend notre nouvelle base d’utilisateurs créée :

/usr/lib/squid3/ncsa_auth /etc/squid3/users

Il faut entrer le couple utilisateur, mot de passe sous la forme suivante :

nicolas lemotdepasse

On stoppe le test par la combinaison des touches : CTRL + D.

Configurer Squid

On édite le fichier /etc/squid3/squid.conf :

## Interface et port
http_port 86.98.215.53:9999

## Options
visible_hostname localhost

## Options authentification
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/users
auth_param basic children 10
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

## Definition des hotes
acl Users proxy_auth REQUIRED

## Options de connexion
acl limitusercon maxconn 500
http_access deny limitusercon

## Desactivation icp multicast
icp_port 0
icp_access deny all

## Desactivation ident lookups
ident_lookup_access deny all

## Support fichiers
coredump_dir /tmp
pid_filename /var/log/squid3/squid.pid

## Timeouts
forward_timeout 30 seconds
connect_timeout 30 seconds
read_timeout 30 seconds
request_timeout 30 seconds
persistent_request_timeout 1 minute
client_lifetime 20 hours

# Desactivation des logs
access_log none
cache_store_log none
cache_log /dev/null

## Ports autorises
acl SSL_ports port 443
acl Safe_ports port 80          
acl Safe_ports port 21          
acl Safe_ports port 443         
acl Safe_proto proto HTTP SSL FTP
acl CONNECT method CONNECT

## Acces autorises
http_access allow Users
http_access deny !Safe_ports
http_access deny !Safe_proto
http_access deny CONNECT !SSL_ports
http_access deny all

## Autorise la reponse aux clients
http_reply_access allow Users
http_reply_access deny all

Démarrer Squid

sudo service squid3 start