Le X-Man sans le X, épisode 2 : ce n'est finalement pas si compliqué, premier petit pas, squid
Par Cyrille BORNE le mercredi, mars 17 2010, 20:50 - Linux - Lien permanent
Je pense que ce qu'il faut avant tout c'est tenir un fil conducteur. Hier par exemple, j'expliquais comment faire la prise de contrôle à distance, aujourd'hui je m'intéresse à un sujet qui me tient à cœur, l'installation de squid et de squidguard, l'idée c'est de comprendre, enfin de saisir plutôt les rudiments des outils que j'utilise au quotidien sans nécessairement les remplacer, et je m'en explique rapidement. Par exemple, la page signalant que vous êtes un vilain qui veut consulter une page interdite, elle est réalisée en quelques clics de souris à partir de l'interface d'Ipfire ou d'Ipcop, la réaliser soit même n'est pas bien compliqué c'est surtout plus long et finalement sans intérêt, je ne cherche pas nécessairement un niveau de connaissance aussi fin dans un premier temps. Ce qui est plus important c'est de comprendre le gros oeuvre pour au besoin mettre les mains dedans. A noter qu'au départ j'avais installé webmin par solution de facilité, mais il semblerait que ce ne soit pas la solution miracle, si bien qu'il faille vraiment tenir le cap et éditer les fichiers de conf à la main, cet intermédiaire de plus pourrait finalement poser plus de problèmes qu''apporter des solutions. Je fais juste une parenthèse pour dire que je suis passé au lycée vérifier si le déblocage des sites tels facebook a eu lieu à l'heure dite, aucun soucis, Ipfire marque décidément de plus en plus de points. Encore une parenthèse, j'ai fait un essai à distance pour faire du ssh sur mon PC ce qui va rendre fou de joie Olivier qui me réclame un accès ssh depuis deux ans pour faire les tests sur les fichiers litigieux ou directement mon DVD, Le paramétrage de la neuf box se fait de la façon suivante. Il suffit tout simplement de rediriger le port 22 externe vers le port 22 de la machine.
J'ai rajouté un supplément bonus avec un domaine dyndns.com qui permet en fait d'associer votre adresse ip changeante avec un nom de domaine type roger.homelinux.com, ce qui permet de faire du ssh root@roger.homelinux.com plutôt que ssh root@ip qui va bien à un moment donné mais pas dix minutes plus tard
Avec ce qui précède, j'ai déjà la trame pour faire de l'hébergement d'un site web ou d'un ftp, passons à squid. Comme on me l'a conseillé l'une des documentations de référence est l'internet rapide et permanent. C'est propre, ça va relativement droit au but sans noyer les gens sous des explications techniques. On peut faire encore plus court. Le principe du proxy c'est de positionner une machine entre vous et l'internet pour de multiples raisons, celle qui m'intéresse bien sûr c'est de filtrer certains sites interdits. Le guide précédent propose l'installation de squid3, la documentation d'ubuntu celle de squid tout court, j'ai donc bien évidemment installé squid3. apt-get install squid3
La configuration de firefox pour "subir" le proxy se résume à l'écran suivant qu'on trouve dans édition, préférences de firefox, réseau, paramètres. Le 192.168.1.75 est l'adresse de mon serveur, le 3128 est le port par défaut :
Ce qui est intéressant dans la démarche de Christian Caleca c'est cette démarche pédagogique qui tient compte de l'envie de l'utilisateur, chic je l'ai installé, premier réflexe on lance, et pan ça ne marche pas. J'aime ce respect et cette compréhension du mode de fonctionnement de l'utilisateur pressé. Effectivement au lancement de l'internet, l'accès est bloqué, il faut donc éditer le fichier de configuration situé dans /etc/squid/squid.conf. L'auteur propose dans un premier temps de dégrossir le fichier particulièrement commenté par la série d'opération suivante :
cd /etc/squid3(pour se positionner dans le répertoire qui va bien)mv squid.conf squid.conf.origin(pour conserver une copie du fichier original),cat squid.conf.origin | egrep -v -e '^[:blank:]*#|^$' > squid.conf(pour tronquer l'intégralité des commentaires).
On édite le fichier de la façon suivante, les lignes en gras sont ajoutées :
acl manager proto cache_object
acl localhost src 127.0.0.1/32
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
acl LocalNet src 192.168.1.0/24
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow LocalNet
http_access deny all
icp_access deny all
htcp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid3/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320
icp_port 3130
coredump_dir /var/spool/squid3
Si j'ai bien compris je déclare dans la première ligne en gras, une variable acl appelée LocalNet qui concerne la plage Ip de 192.168.1.1 à 255 c'est à dire toute machine susceptible d'être connecté à ma box. Dans la seconde ligne j'autorise l'accès au net à cette variable, donc à mes machines, /etc/init.d/squid3 reload pour redémarrer squid.
A ce niveau là le proxy est mis en place, peut être pas demain ou vendredi parce que c'est encore la bourre, mais ce weekend nous verrons la mise en place manuelle de squidguard. En lisant les pages de Christian Caleca, on découvre que Squid n'est pas qu'un simple support pour squidguard mais qu'il permet bien plus notamment l'identification par exemple à la connexion internet avec mot de passe. Finalement on se rend compte que ce n'est pas si compliqué, mais que les distributions qui encapsulent tous ces paramètres pour présenter une jolie interface qui fait autant, ça rend quand même plutôt bien service.


