Mise en place d’un serveur proxy squid sous CentOS
Définition
Un proxy est une machine qui va faire l’intermédiaire lors d’une communication sur le réseau. Il peut être utilisé de différentes façons :
- Anonymiser sa véritable adresse IP
- Faire du cache
- Chiffrer des communications
- Faire du coverred-channel
- Authentification
Dans ce billet, nous verrons comment configurer le serveur proxy : squid.
Présentation & Installation
Le serveur squid a été étudié pour être installé uniquement sur les systèmes Unix, cependant il peut aussi fonctionner sur les serveurs Windows actuels. Il est gratuit et est distribué sous licence GNU GPL.
Installation
L’installation se déroule sur CentOS :
Démarrage/Arrêt du service :
Configuration
Maintenant, nous allons pouvoir configurer notre serveur proxy, ouvrons le fichier de configuration de squid :
Trouvez la directive : http_port, cette directive contient le port par défaut sur lequel écoute squid (le port 3128) :
Les ACLs
Squid fonctionne avec des ACLs, ces ACLs sont chargées de définir chaque élément d’une communication, par exemple : adresse ip, ports de communication, jour de la communication, adresses MAC etc… les ACLs fonctionnent aussi avec des expressions régulières pour permettre de gérer le plus de cas possibles. Par défaut, les ACLs se présentent de la façon suivante :
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
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 CONNECT method CONNECT
Nous devons par conséquent ajouter une ACL qui prend en charge notre réseau local avec la commande suivante :
Appliquer ces ACLs
Maintenant que nous avons créé les ACLs, il va falloir les appliquer pour cela, nous devons utiliser la directive http_access. Un exemple de la configuration par défaut :
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#Vos règles sont à insérer ici
http_access allow localhost
http_access deny all
Cela signifie que :
- L’ACL manager a le droit d’accéder à localhost uniquement.
- La connexion est interdite vers d’autres ports que ceux définis dans l’ACL Safe_ports
- La directive CONNECT peut être utilisée uniquement via le port SSL
- On autorise l’accès vers l’adresse de notre proxy
- On bloque tout autre type d’accès (à laisser de préférence)
Pour permettre à notre réseau local de communiquer, rajoutez :
Terminer la configuration
Pour appliquer les changements, nous devons redémarrer le service :
Maintenant il ne reste plus qu’à configurer vos applications pour utiliser ce proxy.
Conclusion
Nous avons vu comment mettre en place un serveur proxy squid. Rapide à installer, puissant et fiable il vous permettra de mettre en place un proxy digne de ce nom (à condition que vous le configuriez bien ). Cependant les quelques fonctionnalités présentées ci-dessous ne sont pas les seules de squid, il en existe une multitude : possibilités de bloquer des sites internet, possibilités de mettre en place un système d’authentification … Ces prochaines fonctionnalités feront peut être l’objet d’un autre billet .
Et vous que pensez-vous de squid ? L’avez-vous déjà utilisé ? Préférez-vous un de ses « concurrents » ?