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 :
[root@localhost ~]# yum -y install squidDémarrage/Arrêt du service :
[root@localhost ~]# service squid [start|stop|restart]Configuration
Maintenant, nous allons pouvoir configurer notre serveur proxy, ouvrons le fichier de configuration de squid :
[root@localhost ~]# vim /etc/squid/squid.confTrouvez la directive : http_port, cette directive contient le port par défaut sur lequel écoute squid (le port 3128) :
http_port 3128Les 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 manager proto cache_objectacl 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 :
acl mon_reseau src [adresse_reseau]/[masque_reseau]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 allow manager localhosthttp_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 :
http_access allow mon_reseauTerminer la configuration
Pour appliquer les changements, nous devons redémarrer le service :
[root@localhost ~]# service squid restartMaintenant 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
Et vous que pensez-vous de squid ? L’avez-vous déjà utilisé ? Préférez-vous un de ses « concurrents » ?