anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à...

23
Mise en place d’un

Transcript of anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à...

Page 1: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Mise en place d’un Serveur

PROXY

I. CONTEXTE ................................................................................................. 2

Page 2: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

II. CAHIER DES CHARGES :...................................................................................2III. Etudes des solutions......................................................................................3IV. Principe de la solution retenue.....................................................................3V. Mise en œuvre du projet :.............................................................................3

V-1 INSTALLATION DE SQUID :....................................................................4V-2 CONFIGURATION DU POSTE CLIENT :........................................................5V-3 Installation de Squidguard :............................................................8V-4 Evolution de l’architecture de l’entreprise :...................................12V-5 Configuration du proxy sur le poste client :...................................15V-6 Mise en place Des heures de travail..............................................17V-7 Mise en place des statistiques de Squid :......................................18V-8 Mise en place du proxy transparent :............................................18V-9 Tâche planifiée pour la mise à jour de la blacklists :......................19

VI. Conclusion...................................................................................................20

I. Contexte

Page 3: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Dans une entreprise de Toulouse Exasys, le service informatique c’est aperçu que beaucoup d’utilisateurs, faisaient des recherches personnelles au travail. Il serait donc nécessaire de mettre en place une sécurisation des accès internet pour éviter que les utilisateurs consultent ses sites, on appelle ça un Proxy.

II. Cahier des charges :

Exasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites sont ouvert outre c’est horaire, l’accès est bloqué. Pour être sûr qu’une personne autre que la société ne puisse se connecter ils aimeraient aussi qu’il y ait une authentification de l’utilisateur à l’ouverture du navigateur.

III. Etudes des solutions

Il existe plusieurs méthodes pour mettre en place un proxy, il est possible d’acheter un routeur qui est déjà équipé d’un proxy par exemple :

L’antivirus Sophos : intégrer dans le routeur et paramétrable via une interface graphique cette solution peut correspondre à la demande de l’entreprise Exasys mais cette solution est très couteuse.

Blue Coat Proxy Sécurisé : contrôle et accélère les communications Web, Installé sur le poste client, la solution intègre le CIFS caching, l’optimisation de protocoles et la compression TCP pour accélérer l’accès aux données et aux applications. Cette solution est aussi payante.

Squid & SquidGuard : Un serveur Squid est un serveur mandataire (proxy) et un mandataire inverse 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. Squidguard est un outil permettant de filtrer les pages web à l’aide des blacklists. C’est deux logiciels sont opensource, donc gratuit.

IV. Principe de la solution retenue

Page 4: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Objectif : Sécuriser les accès utilisateurs

- Interdiction par mots-clés- Interdiction avec les blacklists- Interdiction des sites de shopping et pour adulte- Mise en place de l’authentification - Mise en place d’une mise à jour automatique des Blacklists

L’entreprise Exasys veut que cette solution lui coute le moins chère possible, c’est pour cela que le logiciel choisi sera Squid qui sera installé sur un serveur Debian. Ensuite il sera couplé avec squidguard qui permettra de gérer plus d’option notamment la plage horaire, le blocage avec les blacklists. Puis l’authentification sera mise en place via un serveur LDAP.

Page 5: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

V. Mise en œuvre du projet :

V-1 Installation de SQUID :

Prérequis :

Pour installer SQUID il faut avoir une installation de Debian de base.

Installation :

Il faut déjà commencer par mettre les paquets de Debian à jour, pour cela il faut utiliser la commande update :

#debian : apt-get update \\ cette commande mes à jours les paquets de Debian

#debian : apt-get install squid3 \\ cette commande lance l’installation de SQUID attention selon la version de Debian le packet change de nom pour Debian 7 c’est squid

Une fois l’installation de SQUID terminée, il faut maintenant paramétrer le fichier de configuration de SQUID, ce fichier contient beaucoup de page de commentaire, je conseille donc de supprimer les commentaires pour qu’il soit plus claire. Attention avant toute modification il faut faire une sauvegarde de ce fichier :

#debian : cp squid.conf squid.conf.old\\ cette commande copie le fichier par défaut de SQUID dans le même répertoire.

#debian : nano squid.conf \\ Cela sert à modifié le fichier squid.conf

Pour que Squid fonctionne correctement il faut lui déclarer le réseau qu’il doit analyser en rajoutant la ligne ci-dessous au niveau des acl :

acl exasys src 192.168.0.0/255.255.255.0

Un peu plus bas dans le fichier de configuration il faut autoriser la connexion à cette acl :

http_access allow exasys

Page 6: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Une fois ces deux lignes rajoutées il faut redémarrer le service SQUID pour recharger la configuration.

#debian : squid3 restart \\ cette commande redémarre le service squid si aucun message n’apparaît le service squid a bien démarré.

Pour s’assurer que Squid redémarre sans erreur, la commande ci-dessous donne l’etat de Squid:

#debian : squid3 –z \\ cette commande affiche les erreurs au démarrage de squid

Page 7: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

V-2 Configuration du poste client :

Pour faire des tests sur le proxy, il faut le renseigner au niveau du navigateur internet du client pour cela rendez-vous dans les paramètres du navigateur :

Mozilla Firefox :

Dans un premier il faut aller dans les paramètres de Mozilla, une fois dans les options aller dans avancé -> réseau -> paramètres :

Ensuite une fenêtre s’ouvre, maintenant il faut renseigner l’adresse du proxy que l’on veut utiliser dans le cas de l’entreprise Exasys 192.168.0.20 port 3128, pour que se soit prit en compte il faut redémarré le navigateur :

Page 8: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Le navigateur est maintenant configurer. Pour vérifier le bon fonctionnement du proxy, il est possible de bloqué un site par mots clé. Pour cela il faut retourner sur notre serveur Proxy afin de crée une acl « interdit » dans le fichier squid.conf. Mais au préalable il faut créer un fichier interdit dans /etc/squid3 :

#debian : nano /etc/squid3/interdit \\ créations du fichier avec les mots clé interdit dedans mettre seulement les mots interdit (facebook)

#debian : /etc/squid3/ nano squid.conf \\ modification du fichier de configuration de SQUID

Déclaration de acl du fichier interdit, en rajoutant les lignes suivantes dans le fichier de configuration de SQUID :

acl interdit url_regex « /etc/squid3/interdit »

http_access deny interdit \\ attention de mettre les règles deny avant les allow

Il est maintenant nécessaire de redémarrer le service SQUID pour que les règles soit prises en comptes :

Direction le navigateur pour vérifier le bon fonctionnement de Squid. Dans une fenêtre web il faut aller sur le site de Facebook http://www.facebook.com un message devrait s’afficher comme celui-ci :

Page 9: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Il est possible de surveiller les logs du proxy en instantané pour vérifier que tout fonctionne correctement :

#debian : tail - f /var/log/squid/access.log \\ la commande permet de vérifier si tout fonctionne correctement au niveau du proxy

Le proxy fonctionne bien, mais il est toujours possible de le contourner. Il faut donc l’améliorer pour éviter ce problème, pour cela il faut installer Squidguard.

V-3 Installation de Squidguard :

Squidguard est un outil permettant de filtrer les pages web en se servant des URI (Uniform Resource Identifier) et, éventuellement, des noms d'utilisateurs, si l'on fait de l'authentification de ces derniers, il utilise lors du filtre des urls regroupées en listes blanches et listes noires. Une liste noire est une liste de sites interdits. On va donc filtrer l'accès à Internet via cette liste noire. Si l'utilisateur essaie de se connecter à l'un des sites contenus dans cette liste, il sera redirigé vers une page choisie.

Avant de lancer l’installation de squidguard il faut penser à mettre à jour les paquets de Debian.

#debian : apt-get update \\ mise à jour des paquets de debian

#debian : apt-get install squidguard \\ installation de squidguard

Maintenant que l’installation est terminée, il faut récupérer une « blacklists » il est possible d’en trouver plusieurs sur internet mais il en existe une très complète celle de l’université de Toulouse.

#debian : wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz \\ cette commande télécharge la liste grâce au wget

#debian : tar zxvf blacklists.tar.gz \\ décompression de l’archive blacklists

Maintenant il faut copier le dossier blacklist qui vient d’être décompresser dans le dossier /var/lib/squidguard/db

#debian : cp -R blacklists/* /var/lib/squidguard/db/ \\ copie de tout le contenu du repertoire grace au –R dans le dossier db

Modification du fichier de configuration de Squidguard, pour éviter tout problème il faut en faire une copie.

#debian : cp squidguard.conf squidguard.conf.old \\ cette commande fait une copie du fichier de configuration

#debian : /etc/squidguard/ nano squidguard.conf \\ modification du fichier de configuration de squidguard

Page 10: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Il faut y ajouter les règles de filtrage voulu pour l’entreprise exasys, se sera les sites de shopping ainsi que les sites pour adulte. Il faut tout d’abord déclarer les « dest » voulus :

Maintenant on active le filtrage à l’aide de l’acl défaut, en déclarant les « dest » qui seront bloqués :

Les règles de filtrages sont maintenant en place. Il faut crée un lien symbolique entre squid et squidguard pour que les modifications soit prise en compte automatiquement :

#debian : ln -s /etc/squidguard/squidGuard.conf /etc/squid3/ \\ cette commande permet de crée un lien symbolique entre le fichier de configuration de squid & squidguard.

Lors de l’installation de Squid un utilisateur proxy est automatiquement crée, il faut lui donner les droits sur Squid et SquidGuard :

#debian : chown -R proxy:proxy /var/log/squid3 /var/lib/squidguard/* \\ cette commande donne les droits à l’utilisateur proxy

Il faut maintenant liée Squid à SquidGuard en rajoutant une ligne dans le fichier de configuration de Squid (/etc/squid3/squid.conf)

#debian : nano /etc/squid3/squid.conf // Cela permet de modifier le fichier squid.Conf

Page 11: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Rajouter les lignes ci-dessous, au dessus de la déclaration du port :

url_rewrite_program /usr/bin/squidGuard -c /etc/squid3/squidGuard.conf

url_rewrite_children 10 startup=4 idle=2 concurrency=0

Maintenant il est nécessaire de compilé la blacklist pour qu’elle soit prise en compte :

#debian : squidGuard –C all \\ cette commande compile toute les règles déclarer dans le fichier de configuration squidguard elle est un peu longue à s’exécuter suivant le nombre de règles.

Il est conseiller de vérifier les logs pour voir s’il n’y a aucune erreur, surtout si l’opération s’éternise :

#debian : cat /var/log/squidguard/squidguard.log \\ Elle permet de voir tout les derniers logs de SquidGuard

Il est maintenant possible de tester le bon fonctionnement du proxy à l’aide du navigateur internet mozilla firefox comme plus haut ou internet explorer.

Pour internet explorer rendez-vous dans les options internet :

1- Onglet Connexion 2- Paramètres réseau

Page 12: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Ensuite il suffit de renseigner l’adresse IP du Proxy :

Teste du Proxy en allant sur un site interdit par exemple Google shopping la page ci-desous apparaît :

Ou encore un site pour adulte :

Page 13: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

V-4 Evolution de l’architecture de l’entreprise :

L’entreprise aimerai plus de sécurité au niveau de son proxy, pour cela il faudrait que les postes clients soit sous un autre sous réseaux (192.168.4.0) pour accéder à internet voici le schéma pour mieux comprendre. Attention pour réaliser cette infrastructure réseau le serveur devra avoir deux cartes réseaux :

Schéma :

Pour commencer il faut activer le routage sur le serveur dans le fichier /etc/sysctl.conf

#debian : nano /etc/sysctl.conf \\ cette commande permet de modifier le fichier sysctl.conf

Dé-commenter la ligne net.ipv4.ip_forward=1 :

Quittez, sauvegardez le fichier et recharger la configuration :

#debian : sysctl -p /etc/sysctl.conf \\ cette commande recharge la configuration du fichier sysctl.conf

Maintenant sur le serveur debian, il faut paramétrer la nouvelle interface pour cela il faut se connecter en « root » dans un terminal et ouvrir le fichier interfaces :

#debian : nano /etc/network/interfaces \\ cette commande sert à éditer le fichier interfaces

Page 14: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Rajouter la nouvelle interface qui servira de passerelle au sous réseaux 192.168.4.254

Maintenant il faut redémarrer le service networking pour que les modifications soit prises en compte :

#debian : /etc/init.d/networking restart \\ cette commande redémarre le service networking pour que les dernières informations soit prise en compte.

Sur le poste client il faut maintenant configurer l’adressage IP pour cela direction les paramètres de

la carte Ethernet

Page 15: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Il faut vérifier que le routage fonctionne correctement avec le PING : 1- ping 192.168.4.254 \\ Passerelle du réseau2- ping 192.168.0.20 \\ Serveur Proxy3- ping 192.168.0.1 \\ Routeur internet

Retour sur le serveur pour déclarer le nouveau sous réseau 192.168.4.0/24 dans squid, comme plus haut il faut éditer le fichier de configuration squid.conf :

#debian : nano /etc/squid3/squid.conf \\ permet d’éditer le fichier squid.conf

Dans la partie acl, rajouter le nouveau sous réseau « exasys4 » juste en dessous du premier réseau déclaré, il s’appellera exasys_2 :

Autorisations du réseau exasys_2 dans les règles http_access :

Quitter et sauvegarder le fichier ctrl+x puis redémarrer le service Squid:

#debian : squid3 restart \\ cette commande redémarre le service squid

Pour s’assurer que Squid redémarre sans erreur, la commande ci-dessous donne l’etat de Squid:

#debian : squid3 –z \\ cette commande affiche les erreurs au démarrage de squid

Page 16: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Maintenant pour que le serveur Squid fasse le changement d’adresse au niveau du routeur internet il faut activer le NAT pour cela il faut utiliser la commande « iptables » :

#debian : iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE \\ cette commande nat les IP du sous réseaux 192.168.4.0

Vérification que le poste client accède à internet sans le proxy paramétrer :

V-5 Configuration du proxy sur les postes clients :

Dans les paramètres de Mozilla on rajoute l’IP du proxy :

Page 17: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Rouvrir le navigateur et faire un test du proxy en allant sur page interdite par exemple un site pour adulte, le message de blocage apparaitra :

V-6 Mise en place Des heures de travail

L’entreprise Exasys aimerait laisser entre 12H et 14H l’accès libre au site pour cela il faut activer l’option dans le fichier de configuration de SquidGuard au niveau du « time work » pour l’entreprise Exasys les horaires de travail sont de 08:30-12:30 14:00-18:00

Page 18: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Il faut déclaré le réseau qu’utilise les clients via leur adresse IP :

Puis la déclaration de ACL qui veut dire que lorsque les clients « foo-clients » sont dans les heures de travail alors on ne laisse pas passer les sites ayant comme thème le shopping ou pour adultes sinon tu laisse tout passer appart les sites pour adultes :

Maintenant les utilisateurs pourront surfer comme ils le veulent entre 12h et 14h

V-8 Mise en place du proxy transparent :

L’entreprise aimerait que les utilisateurs n’aient pas le choix, pour cela il faut faire un proxy transparent pour qu’automatiquement le proxy se mettent en place.

Pour faire un proxy il faut rajouter une ligne dans le fichier squid.conf

http_port 3128 transparent

Maintenant il faut redémarrer le service squid3 :

#debian : /etc/init.d/squid3 restart \\ cette commande redémarre le service squid3

Vérification du démarrage de squid3

#debian : squid3 –z \\ cette commande permet de vérifier le bon fonctionnement de squid

Puis il faut rajouter une redirection de port afin que le port 80 renvoi les paquets vers le port 3128.

#debian : iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 \\ cette commande redirige le port 80 vers le 3128

Page 19: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

Grâce à cette transparence plus besoin de configurer le navigateur internet car toute les recherche internet (port 80), passeront par le port 3128 du proxy Squid

V-9 Tâche planifiée pour la mise à jour de la blacklists :

Pour que tous les nouveaux sites internet soient pris en compte automatiquement, il faut mettre en place un script pour que les blacklists se mette à jour toute seule.

Création du script pour la mise à jour des blacklists :

#debian : nano updateblacklist \\ cette commande créer un fichier updateblacklist

#!/bin/bashcd /tmpwget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gztar -xzf blacklists.tar.gzcp -rf blacklists/* /var/lib/squidguard/db/rm -Rf blacklists*squidGuard -C allservice squid3 restart

Rendre le script exécutable :

#debian : chmod +x updateblacklist \\ cette commande permet de changer les droits du script en le rendant éxécutable.

Ajouter le script dans cron.weekly :

#debian : mv updateblacklist /etc/cron.weekly/ \\ cette commande déplace le script dans le dossier /etc/cron.weekly

VI. Conclusion

Le proxy est maintenant en place, le fait de le faire normalement en le renseignant dans le navigateur ou de le faire transparent et un choix à prendre suivant la demande de l’entreprise, dans

Page 20: anthonyferreirablog.files.wordpress.com€¦  · Web viewExasys voudrait bloquer l’accès à certains sites durant une heure prédéfinie par exemple de 12h à 14h tous les sites

le cas de la société Exasys le Proxy n’est pas transparents attention les salariés doivent savoir qu’un proxy est en place.