======Mise en place et configuration d'un proxy Squid====== //**Auteur : lonewolf**//\\ //**Date : 14 octobre 2007 **//\\ =====Introduction===== Bonjour, Sur ce tuto, nous allons nous pencher sur l'installation et la configuration d'un proxy du nom de : "Squid". =====1. Définition===== Un serveur Squid est un serveur proxy performant, il est capable d'utiliser les protocoles FTP, HTTP, Gopher, et HTTPS. Contrairement aux serveurs proxy classiques, un serveur Squid gère toutes les requêtes en un seul processus d'entrée/sortie, non bloquant. Squid garde les meta-données et plus particulièrement les données les plus fréquemment accédées en mémoire. Il conserve aussi en mémoire les requêtes DNS, ainsi que les requêtes ayant échouées. Les requêtes DNS sont non bloquantes. Les données mémorisées peuvent être rangées en hiérarchies ou en mailles pour utiliser moins de bande passante. Squid est inspiré du projet Harvest. Il n'est pas compatible avec IPv6. (Définition Wikipedia) Toutes les commandes d'exemple sont executées sur une distribution Ubuntu Feisty Faw 7.04 mais sont facilement transposables sur d'autres distributions. Je vous fait confiance pour pouvoir adapter les quelques commandes spécifiques mises en avant... Oh et puis, y en a tellement peu que je peux vous macher un (tout) petit peu le travail. Alors, la commande debian : sudo apt-get install est par exemple equivalente à urpmi sous Madriva. Allez assez d'indice et un peu plus d'information et de formation. =====2. Installation du proxy===== Les choses sérieuses commencent avec une installation très simple. En effet, il suffit d'utiliser la commande suivante et le proxy est installé : sudo apt-get install squid [u]Detail[/u] : Une erreur va apparaître en fin d'installation faisant référence au nom de serveur. Celle-ci est normale(donc pas d'inquiétude, nous n'avons pas encore fait de bêtise) et va être réglée dans la configuration du proxy. =====3. Configuration du proxy===== Voilà, le serveur est installé, et il faut maintenant le configurer. Pour cela, nous allons éditer le fichier [i]squid.conf[/i] qui se trouve : /etc/squid à l'aide d'un éditeur de texte de votre choix. Pour moi, dans l'exemple, c'est "vim" mais vous pouvez utiliser également "gedit", ou tout autre éditeur de votre choix. Dans la ligne de commande suivante, il vous suffit de remplacer 'vi' par gedit, etc, etc, etc... et blablabla sudo vi /etc/squid/squid.conf Et nous voilà, face à un fichier de configuration très (très )fourni, et il faut bien l'avouer un peu fouillis pour un débutant. Je vous conseille donc d'utiliser la fonction recherche de votre éditeur pour vous faciliter la tâche. =====3. Nommer le proxy===== Alors allons-y. Vous vous rappelez l'erreur que je vous ai annoncée en début de tuto ? Oui, Oui celle faisant référence au nom du serveur ? Non ? Vraiment pas ? Bon, ce n'est pas grave puisque nous allons tout de suite la rectifier en nommant ce serveur. Pour cela, rechercher la ligne contenant :**visible_hostname** et ensuite placer vous en bas du paragraphe et juste en dessous de **default** saisissez : visible_hostname nom_de_votre_pc Voici un exemple : # TAG: visible_hostname # If you want to present a special hostname in error messages, etc, # define this. Otherwise, the return value of gethostname() # will be used. If you have multiple caches in a cluster and # get errors about IP-forwarding you must set them to have individual # names with this setting. # #Default: visible_hostname StephLinux [i]Détail[/i] : Le nom donné n'est pas anodin et ne peut être choisi. Il doit correspondre à celui de votre machine. C'est à dire que si vous ouvrez une console, il apparaît juste après l'@ suivi de votre nom de session comme ceci : loup@StephLinux =====4. Choisir le port===== Le serveur proxy étant nommé, nous allons entrer un peu plus dans la configuration de squid en choisissant le port qui sera en écoute. Par défaut, celui ci est 3128 : http_port 3128 Vous pouvez choisir celui qui vous convient en remplaçnt 3128 par le port de votre choix (souvent le 8080) http_port 8080 =====5. Choisir l'interface===== Par défaut le serveur proxy sera en écoute sur toutes les interfaces. Pour des raisons de sécurité, vous pouvez décider de le mettre en écoute que sur votre réseau local. Par exemple si la carte réseau reliée à votre LAN a l'IP 192.168.1.1, modifiez la ligne: http_port 192.168.1..1:3128 =====6. Choisir qui peut se connecter a votre serveur proyx (Définir les droits d'accès)===== Par défaut, le serveur proxy refuse toutes les connexions. Il est donc essentiel de définir qui aura le droit de s'y connecter. Pour cela, il vous faut déclarer une plage ou encore les PC qui peuvent passer par le proxy. Faites une recherche de la ligne suivante : acl to_localhost et juste en dessous (la localisation de cette ligne est importante sinon le proxy ne fonctionnera pas. Donc bien la placer en dessous de 'acl to localhost dst xxx.x.x.x/x) rajouter la ligne suivante adaptée à votre réseau (dans l'exemple classe C) : acl lanmaison src 192.168.1.0/255.255.255.0 (lanmaison est un nom arbitrairement choisi. Vous pouvez le changer sans difficulté) Ou encore si vous préférez déclarer un ou plusieurs PC directement, vous pouvez utiliser comme exemple la ligne suivante : acl host1 src 192.168.1.20 (host1 étant de nouveau un nom arbitrairement choisi) Exemple : 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 host1 src 192.168.1.20 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 =====7. Autoriser le groupe===== Maintenant que le groupe ou le(s) PC sont définis, nous allons l'autoriser à utiliser le proxy. Repérez grâce à votre fonction de recherche la ligne http_access allow...et ajoutez en dessous (avant la ligne http_access deny all) la ligne suivante adaptée : http_access allow lanmaison pour la plage déclarée en tant que telle. Ou encore : http_access allow host1 pour le ou les PC. =====8. Redémarrer le proxy===== Voilà nous arrivons au terme de ce tuto. Il ne nous reste plus qu'à tester le proxy en le redémarrant grâce à la commande : sudo /etc/init.d/squid restart =====9. Configurer les navigateurs===== Pour passer par le proxy, il vous faut configurer le navigateur du PC. **Sous Firefox, selon la version :** Outils -> Préférences -> Avancées -> Onglet Réseau -> Paramètres -> Configuration du proxy -> et là vous entrez l'IP du serveur ainsi que le port choisi. Édition -> etc identique **Sous IE :** Outils -> Option Internet -> Onglet connexion -> Paramètres réseau -> Se servir d'un proxy et là vous entrez également l'IP du serveur ainsi que le port choisi. [i]Detail[/i] Si vous êtes sous IE, vous devrez redémarrez le navigateur pour que les modifications soient intégrées (ben oui, IE c'est quand même Microsoft) =====10. Détails subsidiaires===== Grâce à Squid vous avez accès a bien d'autres fonctions. Un exemple est la gestion du temps des utilisateurs. Vous pouvez par exemple définir un temps d'utilisation en créant une acl time. Exemple : acl jour time 08:00-17:30 Dans cet exemple, j'ai défini une journée de 8h00 à 17h30. En dehors de cette horaire, le proxy refusera la connexion. Mais pour que cela fonctionne, il vous faudra également indiquer à qui cette restriction s'impose. Exemple, sur l'utilisateur host1 définit tout à l'heure : http_access allow host1 jour Nous avons donc juste rajouté 'jour' à la fin de la ligne d'autorisation créée un peu plus haut. Ce qui nous donne : #http_access allow our_networks http_access allow localhost http_access allow host1 jour http_access deny all =====11. Conclusion===== Voila, j'espère que ce tuto vous permettra de mettre en place facilement et rapidement un proxy. J'espère également avoir été clair et facilement accessible au plus grand nombre (et surtout de ne pas avoir fait trop de fautes d'orthographe). Merci à tous et n'hésitez pas à me contacter par post ou par MP pour toutes questions subsidiaires lonewolf [[http://www.linuxpourlesnuls.org/|source]]