• Aucun résultat trouvé

Configuration avancée 1 Bannir des sites.

4.Vérification de l’interface avec ifconfig.

M. ROOT-SERVERS.NET 3600000 A 202.12.27.33 ; End of File

VI. Le courrier électronique.

7. Configuration avancée 1 Bannir des sites.

Certaines sociétés ne souhaitent pas que leurs employés puissent visualiser le contenu de sites sensibles. Pour cela, la configuration de SQUID peut être adaptée en créant des règles d’interdiction de consultation de sites. Voici un exemple d’une telle configuration :

http_port 8080

ftp_user jfc@challe.yi.org acl all src 0.0.0.0/0.0.0.0

acl local src 192.168.1.0/255.255.255.0 acl localhost src 127.0.0.1/255.255.255.255 acl bannirsites url_regex -i "/etc/squid/bannir" http_access deny bannirsites

http_access allow local http_access allow localhost http_access deny all

Les options acl définissent quatre groupes :

• toutes les adresses IP possibles (all) ;

• les adresses IP du réseau local (local) ;

• l’adresse loopback de la machine hébergeant le serveur (localhost) ;

• les sites à bannir (bannirsites).

Contrairement aux options http_access l’ordre de définition des groupes n’a aucune importance. Lorsque SQUID doit déterminer si un accès est autorisé ou interdit, il parcourt la liste des options http_access dans l’ordre de leur apparition. Dès qu’une option http_access est valable, l’exploration des règles d’accès prend fin. Cela signifie, par exemple, qu’il ne faut pas placer la règle http_access deny all en premier lieu. En effe t, cette règle sera toujours valable, ce qui interdira toute utilisation du serveur mandataire. L’algorithme de détermination si un client a le droit d’employer le serveur mandataire est le suivant :

si demande d’accès à un site interdit alors refuser l’accès

sinon

si le client fait partie du réseau local alors autoriser l’accès

sinon

si le client est la machine serveur alors autoriser l’accès sinon interdit l’accès fsi fsi fsi

Cette imbrication de vérification peut amener l’administrateur à autoriser un client à tout effectuer. Supposons que l’utilisateur de la machine 192.168.1.80 soit autorisé à accéder aux sites bannis. Cette configuration exige l’ajout d’une classe correspondant à la machine qui doit être autorisée à tout faire, l’ajout aussi d’une règle d’accès placée au début de la liste des options http_access autorisant toujours cette machine à employer les services de SQUID. Voici un exemple de ce type de configuration :

http_port 8080

ftp_user jfc@challe.yi.org acl all src 0.0.0.0/0.0.0.0

acl local src 192.168.1.0/255.255.255.0 acl localhost src 127.0.0.1/255.255.255.255 acl bannirsites url_regex -i "/etc/squid/bannir" acl P2366 src 192.168.1.80/255.255.255.255

http_access allow P2366 http_access deny bannirsites http_access allow local http_access allow localhost http_access deny all

Dans les deux exemples qui précèdent, l’option acl bannirsites se fonde sur une vérification d’URL présentes dans le fichier /etc/squid/bannir. Ce fichier contient la lis te des sites qui doivent être inaccessibles. Voici un exemple d’un tel fichier :

[root@p200 squid]# cat bannir http://www.msn.com

http://www.microsoft.com

Les sites dont l’URL débute soit par http://www.msn.com, soit par http://www.microsoft.com ne peuvent être rejoints par les clients du serveur mandataire. Notons que l’ensemble de ces sites est banni car les différentes lignes du fichier représentent des expressions régulières.

Si l’administrateur effectue des modifications dans le fichier des sites bannis, il faut impérativement relancer le serveur SQUID, les expressions régulières présentes dans ce fichier n’étant lues que lors du lancement du serveur mandataire.

7.2. Interdire le téléchargement de fichier exécutables.

L’accès à Internet peut amener les utilisateurs à rechercher des programmes pour les installer sur leur machine. Ce type de comportement est de nature à corrompre l’intégrité des systèmes et à obliger le service informatique à réinstaller régulièrement les PC des utilisateurs. Le serveur SQUID peut être configuré de manière à interdire le téléchargement de fichiers exécutables sous Windows et donc l’installation illicite de programmes.

Le téléchargement d’un exécutable consiste à demander une URL dont le nom se termine par .exe. L’expression régulière .exe$ stipule toutes les URL se terminant par .exe. L’interdiction de téléchargement de ces fichiers consiste simplement en l’ajout d’une règle au niveau du fichier des sites bannis comme le montre l’exemple suivant :

[root@p200 squid]# cat bannir http://www.msn.com

http://www.microsoft.com .exe$

7.3. Authentification des utilisateurs.

L’authentification des utilisateurs consiste à demander un nom et un mot de passe lors l’ouverture d’une session. Ce couple d’informations est transmis à un programme d’authentification qui retourne la chaîne OK si l’utilisateur a le droit de se connecter et la chaîne ERR s’il n’a pas l’autorisation d’employer le serveur mandataire. Cette authentification peut être réalisée par un programme que l’administrateur peut écrire lui-même.

Pour simplifier l’écriture de ce programme, le nom de l’utilisateur ainsi que son mot de passe sont codés directement dans le programme. Naturellement, une utilisation appropriée de cette fonctionnalité consiste à créer une base de données des noms des utilisateurs et des mots de passe associés qui sera exploitée par le programme d’authentification. Lorsqu’un navigateur envoie l’identification d’un utilisateur, il le fait sur la base d’une chaîne de caractères contenant dans cet ordre, le nom de l’utilisateur, un espace et le mot de passe. Ces deux informations sont terminées par le caractère de retour de chariot (\n).

Le programme d’authentification doit effectuer une boucle jusqu’au moment où la fin du fichier est rencontrée au niveau de l’entrée standard.

Voici un exemple de programme permettant de gérer les authentifications : [root@p200 squid]# cat auth.c

#include <stdio.h> #include <string.h> #define BUFSIZE 512 void main () { char buffer[BUFSIZE],*p; int continuer=1; if (setvbuf(stdout,NULL,_IOLBF,0)==0) while (continuer) { if (fgets(buffer,BUFSIZE,stdin)==NULL) continuer=0; else { if ((p=strchr(buffer,'\n'))!=NULL) *p='\0'; if ((p=strchr(buffer,' '))==NULL) printf("ERR\n"); else { *p++='\0'; if ((strcmp(buffer,"jfc")==0)&&(strcmp(p,"azerty")==0)) printf("OK\n"); else printf("ERR\n"); } } } }

L’activation du processus d’authentification nécessite la modification du fichier de configuration de SQUID. L’option authenticate_program détermine l’emplacement du programme d’authentification alors que l’option acl passwd proxy_auth REQUIRED exige que tout utilisateur correctement identifié fasse partie de cette classe. Pour autoriser l’accès, il faut ajouter une option http_access comme le montre l’exemple suivant :

[root@p200 squid]# cat squid.conf http_port 8080 ftp_user jfc@challe.yi.org authenticate_program /etc/squid/auth acl all src 0.0.0.0/0.0.0.0 acl local src 192.168.1.0/255.255.255.0 acl localhost src 127.0.0.1/255.255.255.255 acl bannirsites url_regex -i "/etc/squid/bannir" acl passwd proxy_auth REQUIRED

http_access deny bannirsites

http_access deny !local !localhost http_access allow passwd

XIV. IPCHAINS.

1. Introduction.

Un firewall est un routeur filtre de paquets implanté dans le système d’exploitation. Son champ d’opération couvre le réseau IP et les couches du protocole de transport. Il protège le système en prenant des décisions de routage après avoir filtré les paquets en se basant sur l’information contenue dans l’en-tête d’un paquet IP.

Un firewall filtre de paquets consiste en une liste de règles d’acceptation et de refus. Ces règles définissent explicitement les paquets qui seront et ne seront pas autorisés à traverser l’interface réseau. Les règles utilisent les champs d’en-tête du paquet pour décider si un paquet doit être :

• routé vers sa destination ;

• mis de côté d e façon non apparente ;

• bloqué et retourné, avec un message d’erreur, à la machine émettrice. Ces règles sont fondées sur :

• la carte d’interface réseau ;

• l’adresse IP de l’hôte ;

• l’adresse IP source ;

• l’adresse IP destination ;

• le numéro de port du service UDP ou TCP ;

• les indicateurs de connexion TCP ;

• les types de messages ICMP ;

• l’entrée ou la sortie du paquet.

Un firewall filtre de paquets fonctionne sur les couches réseau (IP et ICMP) et transport (UDP et TCP) du modèle de référence TCP/IP.

L’idée générale suppose le contrôler avec attention de ce qui passe entre la machine et Internet auquel elle y est directement connectée. Il faut filtrer individuellement aussi exactement que possible ce qui vient de l’extérieur et ce qui sort de la machine. Le firewall filtre, indépendamment ce qui entre et ce qui sort à travers l’interface. Le filtrage d’entrée et le filtrage de sortie peuvent reposer sur des règles complètement différentes sont appelées chaînes, les listes des règles définissant ce qui peut entrer et ce qui peut sortir sont appelées chaînes. Elles sont ainsi appelées car un paquet est comparé individuellement à chaque règle de la liste jusqu’à ce qu’une correspondance soit trouvée ou que la liste soit épuisée.

Cette configuration est relativement puissante mais n’est pas un mécanisme de sécurité très fiable. Elle constitue seulement une partie de la stratégie de sécurité qui doit être mise en place. Ce type de sécurité est d’un niveau trop bas pour permettre une authentification et un contrôle d’accès raffinés. Ces services de sécurité doivent être fournis à des niveaux plus élevés. Le protocole IP ne possède pas la capacité de vérifier l’identité de l’émetteur. La seule information d’identification porte sur l’adresse IP de l’émetteur du paquet. Ni le réseau, ni la couche transport ne peuvent vérifier que l’adresse IP est exacte. Néanmoins, par rapport à ce qui peut être mis en œuvre à des niveaux plus élevés, le niveau paquet permet un contrôle étendu de l’accès direct aux ports.