I) Introduction :
Le serveur proxy que nous allons apprendre à configurer s’appelle squid. C’est un logiciel largement répandu sous Linux pour les proxy et tout naturellement c’est un logiciel sous licence GPL. Pour rappel, un serveur proxy sert à mettre en cache les pages que vous avez déjà visitées pour éviter de les télécharger à nouveau si vous allez une nouvelle fois les consulter. Cette fonction est donc équivalente au cache de votre navigateur mais le grand avantage est qu’elle permet d’en faire profiter l’ensemble de votre réseau. Pour l’installer, rien de plus simple si vous utilisez une distribution qui gère les dépendances entre paquets comme apt-get sous Debian, sinon utilisez les sources.
II) Configuration :
La configuration est assez simple, tout est réuni dans le fichier /etc/squid.conf. Alors ouvrez-le avec votre éditeur de texte favori nous allons maintenant voir les lignes à configurer.
# Port sur lequel le proxy va écouter les requêtes http. http_port 8080 # Listes d'accès du proxy : acl localhost src 127.0.0.1/255.255.255.255 acl mon_reseau src 192.168.0.0/255.255.255.0 acl SSL_ports port 443 563 # Ports définis comme authorisés, certaines ne sont pas listées ici pour plus de clarté. acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https, snews acl purge method PURGE acl CONNECT method CONNECT # Voyons maintenant les règles d'accès http_access allow localhost # On authorise l'accès au proxy par les machines de notre réseau. http_access allow mon_reseau http_access allow purge localhost http_access deny purge # Les accès sont refusés sur tous les ports sauf sur ceux connus comme sûrs. http_access deny !Safe_ports http_access deny CONNECT !SSL_ports # Et enfin tout le reste est interdit. http_access deny all A la place du réseau 192.168.0.0 vous pouvez tout aussi bien définir des règles pour une seule IP : acl machine_1 src 192.168.0.6/255.255.255.0 http_access allow machine_1 Autre chose d'importance, squid effectue un OU logique entre les lignes du fichier de configuration. Par conséquent : http_access allow mon_reseau http_access deny all Est différent de : http_access deny all http_access allow mon_reseau
Relancez maintenant le proxy :
# /etc/init.d/squid restart
Pour terminer, il ne vous reste plus qu’à paramétrer votre navigateur internet avec l’adresse IP de votre passerelle ou bien si vous avez un DNS, vous pouvez la nommer par un nom comme par exemple proxy.domain.com. Chez moi avec galeon ca donne :
III) Authentification des utilisateurs du proxy :
Il nous faut éditer quelques lignes du fichier de configuration /etc/squid.conf de Squid :
# Cette ligne donne le chemin d'acces du programme d'authentification ainsi que le nom du fichier qui contiendra les mots de passe. authenticate_program /usr/lib/squid/ncsa_auth /usr/lib/squid/passwd # Nombre de processus enfants : authenticate_children 5
Ensuite, on ajoute une règle obligeant les utilisateurs du proxy à s’authentifier :
acl authentification proxy_auth REQUIRED
Si vous avez des lignes de ce type :
acl monreseau src 192.168.0.0/255.255.255.0 http_access allow mon reseau
pour indiquer quels utilisateurs de votre réseau peuvent passer par le proxy, commentez-les à l’aide du symbole dièse car sinon l’authentification ne sera pas demandée.
Pour terminer on accorde l’utilisation du proxy aux utilisateurs autorisés :
http_access allow authentification
Ajout des utilisateurs et test :
On commence par se placer dans le bon répertoire :
# cd /usr/lib/squid
Ensuite, la commande utilisée est htpasswd. Le paramètre -c doit être utilise la première fois afin de créer le fichier de password mais surtout pas ensuite!
Sa syntaxe est : # htpasswd -bc fichier_password nom_utilisateur mot_de_passe
Un exemple de ligne du fichier de mot de passe :
toto:1yobQffUXOZ6c
On redémmare le proxy par la commande : /etc/init.d/squid restart
Et enfin testons pour voir si tout c’est bien passé :