Mise en place d un serveur Proxy sous Ubuntu / Debian



Documents pareils
Serveur proxy Squid3 et SquidGuard

But de cette présentation. Proxy filtrant avec Squid et SquidGuard. Serveur proxy. Serveur proxy. Hainaut P

Installation et Configuration de Squid et SquidGuard sous Debian 7

Serveur Mandataire SQUID

Mise en place d un proxy Squid avec authentification Active Directory

MANUEL D INSTALLATION D UN PROXY

Configuration de SquidGuard sous Fedora Core 4-1 / 6 -

Linux sécurité des réseaux

PROXY SQUID-SQARD. procédure

SQUID I- Squid, c'est quoi? II- Comment ca marche? III- Où trouver des informations?

SQUID Configuration et administration d un proxy

Proxy SQUID sous Debian

Configurer Squid comme serveur proxy

Proxy et reverse proxy. Serveurs mandataires et relais inverses

12 - Configuration de SquidGuard - De base.doc. A) Sous /etc/squid/squid.conf

Zemma Mery BTS SIO SISR. Session Projets Personnels Encadrés

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

Installation d'un service mandataire (Proxy SQUID) 1

Procédure d utilisation et de paramétrage (filtrage) avec IPFIRE

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Squid. Squid est un logiciel permettant la réalisation d'un cache pour les clients web. Squid peut aussi jouer le rôle de filtre http.

Squid/SquidGuard.

MISE EN PLACE D UN FIREWALL ET D UN SERVEUR PROXY SOUS LINUX MANDRIVA.

Tutoriel compte-rendu Mission 1

ADF Reverse Proxy. Thierry DOSTES

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Virtualisation d un proxy Squid gérant l authentification depuis Active Directory. EPI - Stagiaire2007 Vivien DIDELOT

SÉCURITÉ DU SI. Authentification centralisée et SSO. Denoun Jérémy De Daniloff Cyril Bettan Michael SUJET (2): Version : 1.0

Réalisation d un portail captif d accès authentifié à Internet

Le filtrage de niveau IP

Outils Logiciels Libres

Atelier Migration. Mohamadi ZONGO Formateur assistant Kassim ASSIROU Atelier Migration.

Comment surfer tranquille au bureau

Installation et configuration d OCS/GLPI sur un Serveur Debian

Sécurité du Système d Information. Authentification centralisée et SSO

PLANNING DES ACTIVITES PROFESSIONNELLES

TP JAVASCRIPT OMI4 TP5 SRC

Squid. Olivier Aubert 1/19

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Documentation FOG. 3. Choisir le nom de la machine, le nom d utilisateur et le mot de passe correspondant (par exemple : fog, password)

Installation d'un serveur sftp avec connexion par login et clé rsa.

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Mandataires, caches et filtres

Compte rendu d'activité PTI n 2

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

BTS SIO Dossier BTS. PURCHLA Romain

Le serveur web Apache

Configurer et sécuriser son réseau sans fil domestique

Installation d'un serveur FTP géré par une base de données MySQL

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

GUIDE D INSTALLATION. Portaneo Enterprise Portal version 4.0

SSH. Romain Vimont. 7 juin Ubuntu-Party

Gestion d identités PSL Exploitation IdP Authentic

FOIRE AUX QUESTIONS - WebDEPOT

Configuration d un réseau local

Les réseaux des EPLEFPA. Guide «PfSense»

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Sommaire Accès via un formulaire d'identification... 4 Accès en mode SSO... 5 Quels Identifiant / mot de passe utiliser?... 6

Installation d ORACLE 10g sous Debian Etch

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

Installation du serveur WEB Apache ( MySQL, PHP) sous Debian 7.

REPARTITION DE CHARGE LINUX

But de cette présentation. Contrôleur de domaine avec Samba (rédigé pour Ubuntu Server) Introduction. Samba: principes

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

OCS Inventory & GLPI

WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY

Cellier Clément, Maginot Quentin, Tripier Axel, Zaorski Jean, Zini Robin. 18 mars 2015

WebSpy Analyzer Giga 2.1 Guide de démarrage

PPE GESTION PARC INFORMATIQUE

BTS Services informatiques aux organisations Session E4 Conception et maintenance de solutions informatiques Coefficient 4

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Authentification centralisée et SSO Sujet. Table des matières. 1 ORGANISATION Mode de rendu Informations complémentaires 1 2 SUJET 2

Stockage du fichier dans une table mysql:

Contrôle d accès à Internet

Serveur d impression CUPS

LINUX REMPLAÇANT WINDOWS NT

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

Installation de Zabbix

04/02/2014 Tutoriel. Lubuntu & glpi. thomas [NOM DE LA SOCIETE]

Le serveur HTTPd WASD. Jean-François Piéronne

PPE Installation d un serveur FTP

Gestion d identités PSL Installation IdP Authentic

Procédures informatiques administrateurs Création d un serveur FTP sous Linux

Aperçu technique Projet «Internet à l école» (SAI)

INTRODUCTION. Mysql-server est un serveur de bases de données. Cest un logiciel libre.

Installer un serveur web de développement avec VirtualBox

TAGREROUT Seyf Allah TMRIM

Fonctionnement et mise en place d un reverse proxy sécurisé avec Apache. Dimitri ségard 8 mai 2011

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

Formulaire pour envoyer un mail

Attaques applicatives

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Installation et configuration de Vulture Lundi 2 février 2009

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

Vulnérabilités et sécurisation des applications Web

Transcription:

BTS INFORMATIQUE DE GESTION Option Administrateur Réseaux Benoît VERRON Activité n 1 Mise en place d un serveur Proxy sous Ubuntu / Debian Présentation d un Proxy Un proxy (serveur mandataire) est un serveur situé entre un réseau privé et Internet. Constituant une protection pour le réseau d'une entreprise, il peut également faire office de cache. Dans ce dernier cas, il enregistre les pages Web transférées par les utilisateurs pour les délivrer sans qu'il soit nécessaire de se connecter sur le serveur initial. Ainsi, lorsqu'un utilisateur se connecte à internet à l'aide d'une application cliente configurée pour utiliser un serveur proxy, celle-ci va se connecter en premier lieu au serveur proxy et lui donner sa requête. Le serveur proxy va alors se connecter au serveur que l'application cliente cherche à joindre et lui transmettre la requête. Le serveur va ensuite donner sa réponse au proxy, qui va à son tour la transmettre à l'application cliente. Il offre plusieurs possibilités : - Le cache - la journalisation des requêtes (logging) - la sécurité du réseau local - le filtrage et l anonymat.

1) Contexte : Nous sommes actuellement dans un collège où il m est demandé de sécuriser, d accélérer le réseau, contrôler ses connections en donnant aux professeurs et aux élèves un accès à Internet mais en veillant que celui-ci soit filtré. Des droits à certains sites seront autorisés ou non suivant la personne. Pour cela, j utilise une plateforme Ubuntu et je choisi d utiliser Squid pour la mise en place du proxy. Il est à la fois performant et complet, il offre de très nombreuses applications. De plus on lui ajoute son composé SquidGuard afin d accélérer et d améliorer le processus de filtrage des sites à bannir à partir d une blacklist qui est élaborée à l université de Toulouse. On mettra en place un système d authentification. 2) Installation de Squid : Configuration côté serveur: Après avoir configurer les paramètres réseau du serveur et des machines clientes on peut procéder à l installation de squid : apt-get update && apt-get install squid Configuration de squid.conf Il est possible de faire une copie avant toute chose du fichier de configuration pour des raisons de sécurités. On ouvre ensuite le fichier de configuration de Squid (squid.conf) afin de le paramétrer. Pour cela j utilise l éditeur nano (un autre comme vi peut tout à fait convenir) : nano /etc/squid/squid.conf Il faut commencer par renseigner le paramètre visible_hostname sous peine que squid ne démarre pas. visible_hostname proxy Mettons maintenant quelques règles : Il faut savoir que toutes les règles que l on désire ajouter dans ce fichier se mettent à un endroit spécifique ; après «Insert your rules». De plus l ordre de ces règles est primordial. Les interdictions se mettent donc avant les autorisations. Ces règles sont appelées : ACL (Access Control List) Par défaut squid refuse toute connections sortantes des clients. Il faut donc autoriser le réseau à sortir sur internet. acl mon_reseau src 192.168.0.0/24 http_access allow mon_reseau

On pourrait ensuite ajouter d autre acl permettant de filtrer les connexions mais il est préférable de confier cette tâche à squidguard par la suite. Configuration côté client : Après cela on a plus qu à configurer le navigateur des machines clientes afin qu elles passent par le proxy pour sortir sur internet. Le port par défaut de squid est le 3128. Nous utiliserons celui-ci. Il est possible de désactiver le cache du navigateur en le mettant à 0 car celui du proxy est suffisant. 3) Authentification : Créons des comptes utilisateurs afin de gérer les droits d accès aux sites : eleve ; prof ; admin. Le fait d authentifier les utilisateurs va permettre une surveillance accrue de notre réseau et surtout, la possibilité de gérer des règles quels que soient le poste de travail et le navigateur utilisé. Le mode d authentification que j utilise est le NCSA. NCSA : Utilise un fichier d utilisateurs et de mot de passe de type NCSA La commande suivante permet de créer un répertoire où les comptes et mot de passe y seront stockés. htpasswd c /etc/squid/passwords admin Ainsi de suite pour chaque compte. ( on enlèvera l option c car le répertoire est crée qu une seule fois) On active maintenant l authentification : auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwords acl mes_utilisateurs proxy_auth REQUIRED acl monreseau src 192.168.0.0/24 http_access deny!mes_utilisateurs http_access allow monreseau On peut ensuite démarrer squid. /etc/init.d/squid start

Configuration côté serveur: 4) Installation de squidguard : On revient sur le serveur pour y intégrer dans Squid le plugin SquidGuard. Celui-ci est un filtre, un redirecteur qui permet de soulager squid afin d accélérer la connexion. On installe maintenant squidguard : apt-get update && apt-get install squidguard On télécharge par exemple sur le ftp de l université de Toulouse la blacklist qui est réputée. ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/ On l installe ensuite dans le répertoire : /var/lib/squidguard/db/blacklists On crée un utilisateur proxy du groupe proxy. Et on le rend propriétaire du fichier blacklists. chown R proxy:proxy /var/lib/squidguard /usr/bin/squidguard /usr/bin/squid /var/log/squid Dans certain cas, on peut avoir à réinitialiser la base de données de squidguard avec la commande : squidguard C all On peut éventuellement rajouter des urls ou des noms de domaines à interdire dans la blacklist. Le plus simple pour ajouter des domaines à interdire serait de créer un fichier (par exemple : divers) et d inclure dans le fichier de configuration de squidguard ce fichier perso à refuser. Nous le feront plus bas. Il faut indiquer à squid de passer par son composant squidguard. redirect_program /usr/bin/squidguard c /etc/squid/squidguard.conf

5) Configuration de squidguard : En page suivante, je propose une configuration du fichier squidguard qui permettra d autoriser ou non les personnes à accéder aux sites internet. Notre proxy est maintenant opérationnel, une fois bien sûre que l on a redémarré squid. On peut tester différents sites depuis une machine cliente. J ai ensuite ajouté un dossier divers (mkdir /home/ben/divers) puis le fichier domains (touch /home/ben/divers/domains) où tous les utilisateurs peuvent ajouter des domaines à interdire. Cela est fait grâce un formulaire en html et un script en php. De cette sorte, il suffit qu ils se connectent à partir d un navigateur sur le serveur puis qu ils rentrent un domaine à interdire dans le formulaire. Squid se recharge ensuite automatiquement lors de la validation. Pour cela, j ai dans le répertoire d Apache créé les 2 fichiers ajoutdomain.html et ajoutdomain.php. L utilisateur qui sera utilisé lors du lancement du script est celui d Apache donc «www-data». Il faudra veiller à lui donner les droits d écrire dans ce fichier «domains» et de recharger squid sans quoi les modifications ne seront pas prises en compte. Editer avec visudo /etc/sudoers et ajouter la ligne www-data ALL=NOPASSWD : /etc/init.d/squid. Puis chown www-data /home/ben/divers/domains et enfin chmod 755 /home/ben/divers/domains.

# Fichier /etc/squid/squidguard.conf # Répertoire acceuillant les bases de données dbhome /var/lib/squidguard/db/blacklists # Répertoire accueillant le fichier de log logdir /var/log/squid # on crée les entrées à interdire dest violence { domainlist violence/domains urllist violence/urls expressionlist violence/expressions dest porn { domainlist porn/domains urllist porn/urls expressionlist porn/expressions dest divers { domainlist /home/ben/divers/domains src admin { user admin src prof { user prof src eleve { user eleve acl { admin { Pass all prof { Pass!divers!porn all redirect http://www.192.168.0.1/index.html eleve { Pass!divers!porn!violence all redirect http://192.168.0.1/index.html default { pass none all

On pourrait aussi programmer à partir d un simple script une mise à jour automatique de la blacklist. Ce qui peut être intéressant sachant que chaque jour des sites internet se créent et qu ils ne sont pas forcement recommandables. Pour les élèves surtout si l âge moyens des utilisateurs est faible, il serait aussi intéressant de non pas utiliser une liste noire mais plutôt une liste blanche qui n autoriserait que les sites internet que l on aurait choisi au préalable. Et par exemple continuer à utiliser la liste noire simplement pour les professeurs. De plus il est possible d utiliser un proxy transparent qui ne laisse même pas savoir aux utilisateurs que ceux-ci passent par le proxy et donc devient impossible à contourner. En résumé : De nombreuses applications encore existent mais celles que nous avons vu ici en sont les principales. Le proxy est donc utile pour préserver les individus et même parfois obligatoire. Il est pratique grâce à l authentification de contrôler les accès quelque soit le poste utilisé. Il est aussi tout à fait modulable suivant nos exigences. Et permet en plus d utiliser le cache afin de stocker les pages récemment consultées et donc d accélérer le vitesse de la connexion. /home/ben/divers/ajoutdomain.html SCRIPT HTML: <html> <body bgcolor="#ffffcc"> <center> <form method="post" action="ajoutdomain.php" name="ajoutdomain"> <h1>ajouter un domaine à interdire:</h1> <input type="text" name="ajoutdomain"> <input type="submit" value="envoyer" name="envoyer"> </form> </center> </body> </html>

/home/ben/divers/ajoutdomain.php SCRIPT PHP: <html> <body bgcolor="#ffffcc"> <center> <font size="5" color="blue"> <tt> <?php clearstatcache(); $domains = '/home/ben/divers/domains'; $reload = 'sudo /etc/init.d/squid reload'; //redémarrage de squid if (is_writable($domains)) { echo "Le fichier est accessible en ecriture<br>"; if (!$fichier = fopen ( $domains, 'a' ) ) { echo "Je n'ai pas rã ussi à ouvrir le fichier!<br>"; exit; else { echo "J'ai bien ouvert le fichier<br>"; $texte = $_POST['ajoutdomain']. "\n"; if ( $ecriture = fwrite ( $fichier, $texte ) ) { echo "J'ai pu ecrire sur le fichier<br>"; fclose($fichier); system($reload); echo "<br>la configuration de Squid est bien rechargã e."; else { echo "Je n'ai pas reussi a ecrire..."; fclose ( $fichier ) ; else { echo "Le fichier n'est pas accessible en ecriture."; echo "<br>le domaine $texte à à tã ajoutã à la liste des domaine à interdire."?> </tt> </font> </center> </body> </html>