WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception et déploiement d?une architecture réseau sécurisée : cas de SUPEMIR

( Télécharger le fichier original )
par Angeline Kone
SUPEMIR - Ingénieur 2011
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy
f. Serveur proxy

Notre choix pour Squid se justifie par sa nature de logiciel libre et sa performance. Pour sa mise en place tout comme les autres logiciels il faut avoir les doits d'administration.

Installation

L'installation se fait au moyen de la commande : apt-get install squid, celui-ci s'installe et crée un répertoire /etc/squid/ contenant le principal fichier de configuration nommé squid.conf.

Configuration

La configuration par défaut de squid est fonctionnelle, mais nous avons apporté des modifications au fichier de configuration afin de l'optimiser, de mieux l'adapter à notre environnement et également pour rester en parfaite adéquation avec notre cahier de charges. Nous avons édité le fichier squid.conf et nous avons ajouté les lignes suivantes :

Ø Définition des droits d'accès (contrôle d'accès)

Nous avons définit ici les liste de contrôle d'accès pour la gestion des droits d'accès.

# définit le réseau local que squi doit gérer

acl local_network src 192.168.3.0/24

# définit un ensemble de poste auxquels nous autoriserons l'accès à l'interface du routeur

acl allow_clients src 192.168.3.11 192.168.3.12 192.168.3.13 192.168.3.14 192.168.3.15 

définit l'adresse du routeur auquel nous avons autorisé l'accès à partir de certains postes

acl router dst 192.168.1.1/24 

# définit l'horaire de connexion le matin

acl matin time MTWHFA 06:00-09:00 

# définit l'horaire de connexion à la pause

acl pause time MTWHA 12:00-13:00 

# définit l'horaire de connexion dans l'après midi

acl pauseven time F 12:00-14:00 

# définit l'horaire de connexion le matin

acl soir time MTWHFA 16:00-23:00 

Nous avons ajouté ces acls à la suite des lignes commaçant par « acl local_net » afin de respecter la structure du fichier.

Ø Application des ACLs

Après avoir créé les listes de contrôle d'accès, nous les avons autorisé à utiliser le proxy come suit :

# autoriser les acces aux heures définies

http_access allow local_network matin

http_access allow local_network pause

http_access allow local_network pauseven

http_access allow local_network soir

# permettre un accès permanent à internet aux members de l'administration

http_access allow allow_clients

# permettre aux member de l'administration d'accéder à l'interface web du routeur, refuser aux postes

http_access allow allow_clients router

http_access deny !allow_clients router

Ces lignes sont ajoutées juste avant la ligne http_access deny all qui bloque

tout ce qui n'est pas permit explicitement.

Ø Autres modifications

o Nom du serveur

Dans la partie TAG : visible_hostname, nous avons ajouté le nom de notre serveur avec cette ligne : visible_hostname srvsupemir2

o Ne pas divulguer l'identité du serveur

Nous avons désactivé l'option qui permet d'inclure l'adresse IP ou le nom du système dans les requêtes http que le serveur proxy transfert, ceci en décommentant et en modifiant la ligne « # forwarded_for on|off » comme suit : forwarded_for on. Ceci permet de réduire les failles de sécurité au niveau du proxy.

o Messages d'erreur

Par défaut les messages d'erreur de squid sont en anglais, nous avons configuré la langue française pour faciliter la compréhension des erreurs aux utilisateurs. Ainsi dans la partie TAG : error_directory, nous avons décommenté et modifié la ligne comme suit :

error_directory /usr/share/squid/errors/French .

o Cache web

Puisque notre proxy doit jouer le rôle de cache, nous avons augmenté la taille du cache en décommentant et en modifiant la ligne comme suit :

cache_dir ufs /var/spool/squid 50000 32 512 .

o DNS

Nous avons ajouté cette ligne pour préciser les serveurs dns que le proxy doit interroger. Ce ci se fait dans la partie TAG : dns_nameservers :

dns_nameservers 192.168.1.1 192.168.3.254 212.217.0.1 212.217.0.12

o Proxy transparent

Afin d'obliger tous les utilisateurs à passer par le proxy avant d'aller sur internet, nous avons configuré pour un usage transparent. Ainsi nous avons modifié la ligne « http_port 3128 » comme suit : http_port 3128 transparent.

Pour un bon fonctionnement nous avons ajouté une règle au niveau du firewall qui redirige toutes les requêtes du réseau local utilisant le port 80 vers le serveur proxy.

Redémarrage du service

Après tout les modifications, il est important de redémarrer le processus squid pour la prise en compte des paramètres configurés : service squid stop puis service squid start.

Installation et configuration de SquidGuard

Nous avons opté de couplé squid avec squidGuard qui est un rédirecteur utilisé par ce dernier pour limiter l'accès à certaines URL en fonction de l'utilisateur, de la machine, de l'heure, du contenu ...

Ce logiciel a plusieurs avantages, mais n'en avons utilisé que deux. Le premier d'entre eux est de limiter l'accès à des sites potentiellement dangeureux pour le poste client et plus généralement pour le réseau. Enfin, d'un point de vue légal, le fait de détenir des documents dégradants étant répréhensible, la mise en place de SquidGuard contribue à se prémunir de ce genre de mésaventure.

- Installation : apt-get install squidGuard

- Récupération des blacklists (liste noire, elle contient des une liste des urls malveillantes)

wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz

tar -zxvf blacklists.tar.gz -C /var/lib/squidguard/db/

cd /var/lib/squidguard/db

mv blacklists/* .

rm -rf blacklists

Nous avons paramétré une mise à jour hebdomadaire des listes noires du squidGuard en créant une tâche cron. Pour ce faire, nous avons le fichier nommé squidguard_blacklists (gedit /etc/cron.weekly/squidguard_blacks) et nous y avons inscrit les lignes suivantes :

#!/bin/sh

#

# Fichier de recup hebodmadaire /etc/cron.weekly/squidguard_blacklists

if [ -d /var/lib/squidguard ]; then

wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz -O /var/lib/squidguard/blacklists.tar.gz

tar -zxvf /var/lib/squidguard/blacklists.tar.gz -C /var/lib/squidguard/

rm -rf /var/lib/squidguard/db

mkdir /var/lib/squidguard/db || true

mv -f /var/lib/squidguard/blacklists/* /var/lib/squidguard/db/

chmod 2770 /var/lib/squidguard/db

rm -rf /var/lib/squidguard/blacklists /var/lib/squidguard/blacklists.tar.gz

/usr/bin/squidGuard -C all

chown -R proxy:proxy /etc/squid /var/log/squid /var/spool/squid /usr/lib/squid /usr/sbin/squid /var/lib/squidguard

/etc/init.d/squid restart

fi

Nous avons rendu ce fichier exécutable comme suit : chmod +x /etc/cron.weekly/squidguard_blacklists

Nous avons également modifié le fichier de configuration de squidGuard afin de préciser les domaines auxquels nous avons appliqué des restrictions :

#

# CONFIG FILE FOR SQUIDGUARD

#

dbhome /var/lib/squidguard/db

logdir /var/log/squid

# ----------------------------------------

# Définition de la base de données de filtrage utilisée

# ----------------------------------------

dest adult {

domainlist adult/domains

urllist adult/urls

}

dest publicite {

domainlist publicite/domains

urllist publicite/urls

}

dest warez {

domainlist warez/domains

urllist warez/urls

}

dest porn {

domainlist porn/domains

urllist porn/urls

}

dest violence {

domainlist violence/domains

urllist violence/urls

}

# ----------------------------------------

# Définition des ACL

# ----------------------------------------

acl {

default {

# les thèmes supplémentaires sont à ajouter avant le mot-clé all par !<nom du thème>

pass !porn !adult !publicite !warez !violence all

# page qui s'affichera lors d'une tentative d'accès àaux sites interdits

redirect http://localhost/interdiction.html

}

}

Ceci fait, nous avons redémarré squid (service squid restart) pour charger les paramétrages effectués.

Configuration d'une machine cliente

Puisque le service fourni utilise un port particulier du serveur, les machines clientes doivent bien sûr être configurées en conséquence. Sur un poste client connecté sur le réseau local (avec une adresse IP valide) et qui établit parfaitement un 'ping' vers le serveur proxy, nous avons faites la configuration suivante.

Pour Firefox

Dans Outils -> Options

Sélection de l'onglet Connexion puis un clic sur Réseau Local

Cocher Serveur Proxy et entrer l'adresse IP 192.168.2.2 et le numéro de port d'écoute qui est 3128.

Pendant les heures où la connexion est interdite, les utilisateurs reçoivent ce message lorsqu'ils essaient de se connecter :

Figure 35 : Message d'erreur pendant les heures où la connexion est interdite.

Nous avons paramétré cette page pour qu'elle informe l'utilisateur des horaires auxquels il peut se connecter

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Là où il n'y a pas d'espoir, nous devons l'inventer"   Albert Camus