Rapport Squid
Rapport Squid
Rapport Squid
VII. Conclusion
I.
Prsentation gnrale:
Dans un rseau local, on peut avoir envie de mettre une machine qui fasse l'intermdiaire entre notre rseau et Internet. Le serveur proxy (ou serveur mandataire) permet de d'envoyer les requtes et de recevoir les rponses la place de ses clients. Ces requtes peuvent tre des requtes de divers protocoles, les plus utilises tant le HTTP, HTTPS et FTP, SSL.
Les clients deviennent invisibles pour linternet. Si un client est derrire un proxy, les autres machines sur internet penseront quil sagit du serveur proxy. Les avantages: 1. Utilisation dun cache
Le cache permet de stocker un certain nombre de fichiers pendant que vous naviguez sur Internet pour permettre d'afficher la page plus rapidement si vous retournez sur le mme site une autre fois. En gnral, les navigateurs Web utilisent un cache interne moins volumineux. Un serveur cache-proxy permet de faire la mme chose un plus grand niveau: Il est ddi au stockage des fichiers et pages Internet les plus visites.
2. Filtrage Le serveur proxy peut galement servir suivre toutes les entres et sorties en crant des journaux d'activits (logs) qui enregistrent chaque requte que font les clients. Au niveau des clients on peut lister un certain nombre de sites autoriss (liste blanche) ou des sites qui ne le sont pas (liste noire). Au niveau des serveurs, l'analyse des rponses en fonction de certains critres s'appelle le filtrage de contenu (mots cls, adresses IP, noms de domaines, ...).
3. Authentification client
Puisque le serveur Proxy se trouve entre le rseau local et Internet, il peut imposer que le client s'authentifie pour se connecter (login et mot de passe).
4. Reverse proxy Le proxy invers ne sert pas de relais aux clients de son LAN mais ceux qui viennent d'Internet et ont besoin d'avoir accs certains serveurs internes.
II.
1. Installation et configuration : Pour installer SQUID, il faut taper la commande : apt-get install
squid.
Ensuite, on va crer un fichier de configuration squid.conf allg des commentaires pour pouvoir facilement le modifier.
Cd /etc/squid
On cre une copie sous le nom squid.conf.distrib : cp squid.conf squid.conf.originale On enlve les commentaires, puis on ne prend que les lignes avec 2 caractres :
2. Utilisation
Utiliser ce proxy pour se connecter Internet Edition Prfrences (Rseaux) Paramtres Host : 127.0.0.1 (nous utilisons le proxy local) Port : 3128 Utiliser le mme proxy pour tous les protocoles : HTTP => web classique SSL => HTTPS FTP => FTP (en fait le navigateur contacte le proxy en HFTP, c'est le proxy qui parle en FTP) Gopher => Ancien protocole qui est l'anctre du WWW Socks => L'utilisation du proxy dsactive l'utilisation du SOCKS. C'est l'un ou l'autre.
On teste: http://cri.univ-tlse1.fr/hidden/test On voit alors apparaitre 2 lignes supplmentaires : - Via : qui va indiquer le proxy que nous utilisons (avec la version) - X-Forwarded-For : qui va indiquer pour qui nous faisons le proxy, dans le cas prsent 127.0.0.1, mais, si l'on offre le service pour une autre machine, on verra son IP apparaitre.
Modification des informations: header_access User-Agent deny all header_access Via deny all header_access X-Forwarded-For deny all Puis on redmarre notre proxy: /etc/init.d/squid reload
Vous voyez bel et bien quon na plus dinformation sur les en-ttes (Via, X-ForwardedFor, etc) comme prcdemment :
III.
Les ACL sont des rgles que le serveur applique. Cela permet par exemple d'autoriser ou d'interdire certaines transactions.
On peut autoriser ou interdire en fonction du domaine, du protocole, de l'adresse IP, du numro de port, d'un mot, on peut aussi limiter sur des plages horaires. La syntaxe d'une ACL est la suivante : acl aclname acltype string[string2] http_access allow|deny [!]aclname acltype peut prendre comme valeur : src (pour la source) : indication de l'adresse IP du client sous la forme adresse/masque. On peut aussi donner une plage d'adresses sous la forme adresse_IP_debut - adresse_IP_findst (pour la destination) : idem que pour src, mais on vise l'adresse IP de l'ordinateur cible. srcdomain : Le domaine du client dstdomain : Le domaine de destination. url_regex : Une chane contenu dans l'URL (on peut utiliser les jokers ou un fichier). urlpath_regex : Une chane compare avec le chemin de l'URL . proto : Pour le protocole.
Une fois ceci fait, on signale squid d'utiliser squidGuard. Pour cela, on Modifie : /etc/squid/squid.conf url_rewrite_program /usr/bin/squidGuard
IV.
La configuration doit se faire avant l'installation des bases de donnes. Le fichier de configuration est : /etc/squid/squidGuard.conf
Configuration du logiciel :
La configuration par dfaut est utilisable, mais sans filtrage. On garde le dbhome tel quel. On garde les lignes src telles quelles, car nous utiliserons le fonctionnement par dfaut (source defaut), on modifie par contre les dfinitions de destinations dest adult { # On remarque que le rpertoire dest # est ajout la configuration par dfaut domainlist dest/adult/domains urllist dest/adult/urls # Si l'on souhaite une redirection redirect http://www.yahoo.fr } dest malware { domainlist dest/malware/domains urllist dest/malware/urls redirect http://www.yahoo.fr } Puis on applique acl { default { # On refuse les sites adultes et les malwares, on accepte le reste pass !adult !malware all # On fournit une url de redirection par dfaut. redirect http://www.google.fr } }
V.
Authentification client :
Pour pouvoir tre authentifi par Squid il faut tout d'abord crer notre fichier d'utilisateurs. Pour cela, effectuez les commandes suivantes :
touch /etc/squid/users
Il faut rptter la dernire opration autant de fois que vous avez d'utilisateur. Sachez que les mots de passe sont crypts avec la mthode crypt Pour vrifier que le fichier est correct et fonctionnera avec Squid utilisez la commande suivante :
/usr/lib/squid/ncsa_auth /etc/squid/users
Si la rponse est OK tout est bon, si la rponse est ERR vrifiez votre fichier users. Pour sortir de la boucle appuyez sur ctrl + C
Configuration de Squid
ditez le fichier /etc/squid/squid.conf de configuration de Squid,
dans la partie TAG: auth_param, dcommenter les lignes suivantes : auth_param et remplacer les ci besoin par celles ci-dessous :
basic basic basic basic program /usr/lib/squid/ncsa_auth /etc/squid/users children 5 realm Squid proxy-caching web server credentialsttl 2 hours
children : 5 est une valeur usuelle. Si vous avez de nombreux utilisateurs, il sera peut-tre ncessaire d'augmenter ce nombre. realm : texte qui apparatra dans la fentre de demande d'identification. credentialsttl : dure de vie de l'identification. Ensuite, dans la partie acl rajouter la ligne suivante :
GroupePC reprsente le groupe de machine que vous avez autoris avoir accs votre proxy, pour plus de renseigner il faut se rfrer au site de Squid Pour finir il faut relancer Squid :
sudo /etc/init.d/squid restart
Et voila le rsultat :
VI.
Ouverture lextrieur :
on accepte de fournir le service l'exterieur, et pour cela on va inserer une regle iptables: iptables -A INPUT -p tcp --dport 3128 --sport 1024:65535 -s 192.168.30.0/25 -j ACCEPT
Ouverture du squid.
Pour ouvrir le squid filtrant l'exterieur, il faut autoriser cet acces qui est ferme par defaut: acl clients_autorises ip 192.168.30.0/25
On applique alors cette acl la restriction http_access http_access allow clients_autorises http_access deny all
Ouverture du squidguard.
Une fois ceci fait, on va s'occuper des restrictions squidGuard : src clients_autorises { ip 192.168.30.0/25 }
VII. Conclusion : Le squid est lun des serveurs les plus utiliss
par les administrateurs rseaux et les fournisseurs daccs internet. En outre il faudrait savoir quil peut aussi tre configur comme reverse proxy assurant le filtrage en entre dun serveur. Ainsi son utilisation devient plus quune ncessit pour tout administrateur soucieux de la scurit de son rseau.