Projet ZeroShell

Master 2 Réseaux et Systèmes informatiques
Sécurité Réseaux
Installation et configuration de ZeroShell
Présenté par:
Mor Niang
Prof.:
Ahmed Youssef
PLAN
1. Présentation
2. Fonctionnalités
3. Architecture réseau
4. Installation
5. Configuration
1. Présentation
ZeroShell est une distribution Linux créée dans le but d'être très complète conçue
pour fournir des services réseaux sécurisés dans un réseau local. Elle a été
développée par Fulvio Ricciardi pour être totalement administrable via une
interface web. Fournie sous forme de Live CD, elle s'initialise en insérant le CD
dans la machine cible et en la redémarrant. La connexion à l’interface
d’administration se fait via un navigateur web pour ensuite configurer les services
réseaux.
2. Fonctionnalités
Les principales fonctionnalités de ZeroShell sont les suivantes:
 Administration web (sécurisée );
 Routeur avec routes statiques et dynamiques;
 NAT pour utiliser le réseau local de classe privée adresses cachées sur le WAN avec
des adresses publiques;
 Serveur DHCP pour assigner automatiquement des adresses IP aux postes clients
qui le demandent;
 Serveur DNS pour définir sa propre zone et les enregistrements associés;
 Serveur et le client NTP (Network Time Protocol) pour maintenir l'accueil des
horloges synchronisées;
 Client DNS dynamique utilisé pour rejoindre facilement même lorsque l'IP WAN est
dynamique. Une gestion dynamique des enregistrements MX DNS pour acheminer des
e-mails sur le serveur mail SMTP avec IP variable;
 Authentification Kerberos 5 en utilisant un KDC intégrée et l'authentification entre
domaines;
 VPN LAN-to-LAN, pour interconnecter deux réseaux locaux via Internet en
encapsulant les trames Ethernet;
 VPN Host-to-LAN, pour permettre à des postes clients de se connecter au réseau
local via internet;
 Serveur proxy avec fonction de proxy transparent, intégrant un anti-virus;
 Serveur RADIUS pour l'authentification et la gestion automatique des clés de
chiffrement pour réseaux sans fil supportant de nombreux protocoles;
 Firewall avec des filtres applicables dans les deux routage et de pontage sur tous
les types d'interfaces, y compris VPN et VLAN; et de classification QoS du trafic de
type partage de fichiers Peer-To-Peer (P2P);
 Captive Portal pour soutenir la connexion Internet sur ​les réseaux câblés et sans fil.
ZeroShell agit comme une passerelle pour le réseau sur lequel le portail captif est
actif et sur ​lequel les adresses IP (généralement appartenant à des particuliers) sont
alloués dynamiquement par DHCP. Un client qui accède à ce réseau privé doit
s'authentifier à l'aide d'un navigateur Web en utilisant Kerberos 5 avec un nom
d'utilisateur et mot de passe que avant le pare-feu ZeroShell lui permet d'accéder au
réseau public.
 l'intégration entre Unix et Windows Active Directory sur un seul système
d'authentification et d'autorisation en utilisant LDAP et Kerberos 5.
2.1. LDAP et NIS
LDAP: Lightweight Directory Access Protocol
NIS: Network Information Service
Zeroshell utilise LDAP pour mémoriser les données relatives aux zones de serveur DNS,
les attributs pour le serveur RADIUS et les autorisations pour les utilisateurs et les hôtes.
Zeroshell répond également aux demandes des clients NIS garantissant ainsi un soutien
pour les demandes d'autorisation pour les anciens hôtes qui n'ont pas de LDAP.
Son but est de distribuer les informations contenues dans des fichiers de configuration
contenant par exemple les noms d'hôte, les comptes utilisateurs sur un réseau. Un
serveur NIS stocke et distribue donc les informations administratives du réseau, qui se
comporte ainsi comme un ensemble cohérent de comptes utilisateurs, groupes,
machines. NIS comporte un serveur, une bibliothèque d'accès client et des commandes
d'administration. Cependant NIS est inadapté pour les grandes organisations qui, en
raison de leur nature peuvent être organisés de façon hiérarchique.
2.2. Authentification Kerberos
Un des principaux problème dans un réseau local est celui de l’authentification avec
certitude, les usagers qui souhaitent accéder aux services offerts: local et à distance des
sessions de connexion sur les hôtes Unix ou postes de travail Windows, l'accès aux
serveurs IMAP ou POP3 pour vérifier e-mail , ne sont que quelques exemples où
l'utilisateur doit être authentifié avant d'obtenir l'accès. D'autre part, même les serveurs
offrant de tels services doivent prouver leur identité aux utilisateurs: en effet, il serait
fâcheux si un faux serveur, est entré dans un réseau local par un intrus.
Pour résoudre ces problèmes, Zeroshell utilise le protocole Kerberos 5 authentification
mutuelle. Il s'agit d'un protocole robuste et de plus en plus répandue, qui, grâce à
l'utilisation des billets (ticket) et authentificateurs, est en mesure de fournir à l'utilisateur
un accès authentifié aux services et à garantir l'authenticité de la même.
Un autre avantage de l'utilisation de Kerberos 5 est le Single Sign-On (SSO): l'utilisateur
saisit les informations d'identification (nom d'utilisateur et mot de passe) une seule fois
par session de travail en obtenant un ticket qui lui permet d'accéder aux différents
services d'une manière transparente et sans avoir à se ré-authentifier.
2.3. VPN
VPN: Virtual Private Network
VPN est une extension des réseaux locaux et préserve la sécurité logique que l'on peut
avoir à l'intérieur d'un réseau local. Il correspond en fait à une interconnexion de réseaux
locaux via une technique de « tunnel ».
ZeroShell nous offre un certain nombre de ce type de réseau:
- Host-to-LAN: La mobilité croissante des utilisateurs d'une organisation ainsi que la
nécessité de ces utilisateurs d'accéder à leur réseau local comme s'ils étaient
physiquement connectés, même si loin de leurs bureaux, a conduit au développement du
VPN. En faisant cela, le client de l'emplacement distant apparaît à l'intérieur du pare-feu
et peut ainsi dialoguer avec les machines du réseau local sans courir le risque d'être
filtrés.
- LAN-to-LAN: La présence de succursales au sein d'une organisation, combinés avec le
coût élevé des lignes de communication spécialisées a conduit à la nécessité d'utiliser
Internet comme un moyen d'échange de données. Ce type de réseau est un tunnel crypté
qui relie deux réseaux locaux (géographiquement séparées) par l'Internet. les deux
réseaux locaux apparaissent séparés par un seul segment de réseau.
2.4. Firewall
Zeroshell, en utilisant le Netfilter et Iptables Linux, peut être configuré pour agir comme un
pare-feu protégeant le réseau local contre les attaques et les scans de ports. Zeroshell peut
fonctionner à la fois comme un filtre de paquets, à savoir le filtrage basé sur les conditions
(règles) situé sur les en-têtes de paquets, et en tant que Stateful Packet Inspection (SPI), à
savoir le filtrage des paquets en fonction de leur corrélation avec les connexions déjà
ouvertes ou d'autres paquets déjà transités.
Exemples de critères de filtre de paquets:
• Source IP: représente l'adresse IP source du paquet;
•Destination IP: représente l'adresse IP de destination du paquet;
•Source MAC: indique l'adresse MAC source du paquet.
Exemples de critères Stateful Packet Inspection:
• NEW: il s'agit d'un paquet appartenant à une nouvelle connexion dans la couche 4;
• ESTABLISHED: il s'agit d'un paquet appartenant à une connexion déjà établie;
• RELATED: c'est un paquet corrélé à une connexion déjà établie;
• INVALID: il s'agit d'un paquet mal formé.
3. Architecture réseau
4. Installation
Pré-requis:
- Une machine (serveur ZeroShell) avec au moins deux (2) cartes réseau;
- Un CD d’installation de ZeroShell
- Une connexion Internet (pour tester toutes les fonctionnalités)
- Un réseau local
 On télécharge d’abord le fichier d’installation, qui est un fichier compressé de type .iso à
l’adresse suivante : http://www.zeroshell.net/eng/download/. Dans notre cas, nous a pris
la version ZeroShell-1.0.beta16.iso (la dernière en ce jour).
 Ensuite, on crée un CD Bootable, c’est-à-dire un CD de démarrage.
 Enfin, on insère le CD pour lancer l’installation qui sera de façon automatique.
À la fin du lancement, nous aurons un écran comme suit:
N: pour afficher les interfaces réseau
P: pour changer le mot de passe de l’administrateur
T: pour afficher la table de routage
F: pour afficher les règles du pare-feu
I: pour gérer les adresses IP
ETH0: cette interface a l’adresse 192.168.0.75 obtenue de façon automatique lors de
l’installation de ZeroShell. On peut toute fois la modifier.
ETH1: cette interface n’a pas encore d’adresse. Cependant, on lui en attribuera une en
interface graphique.
5. Configuration
Pour la configuration des différents services, sur un poste client, nous utiliserons un
navigateur web (Internet Explorer, Mozilla Firefox, Safari…) pour accéder à l’interface
graphique avec l’adresse https://. 192.68.0.75
Par défaut:
Username: admin
Password: zeroshell
5.1. Création d’une partition pour
stocker notre configuration
Il est très important d’enregistrer nos fichiers de configuration dans une partition de
notre disque dur. Pour se faire, nous allons créer une nouvelle partition.
1 on clique sur Setup pour accéder au menu.
2 on clique sur Profiles pour voir les différents profils (s’il en existe).
3 on choisit le disque dur sur lequel on veut créer la partition.
4 on clique sur New partition pour créer une nouvelle partition. Une nouvelle fenêtre
apparaitra dans laquelle nous indiquerons les informations de la partition.
5 on spécifie la taille de la partition ou utiliser le disque en entier (option par défaut)
6 on choisit le type de système de fichier (ext3 dans notre cas)
7 on renseigne le nom de la partition et on clique sur Create Partition.
Une fois notre partition créée, nous allons ajouter un profil à cette dernière.
8 on choisit notre partition nouvellement créée.
9 on clique sur Create Profile. Une nouvelle fenêtre apparaitra, comme suit:
10 on renseigne les différentes informations relatives à notre profil
11 on clique sur Create.
12 On choisit notre nouveau profil
13 on clique sur Activate pour l’activer. Ceci va redémarrer le système ZeroShell.
5.2. Configuration réseau
Après avoir créé notre partition et notre profil, nous allons configurer les adresses IP de
notre réseau.
1 on clique sur Network pour afficher nos interfaces réseau.
ETH00 est l’interface de notre réseau local avec une adresse par défaut 192.168.0.75.
2 on choisit l’interface ETH01 pour lui attribuer une adresse IP, 192.168.1.5
3 on clique sur Add IP. Une nouvelle fenêtre apparaitra.
4 on entre l’adresse et le masque de sous réseau.
5 on clique sur OK pour valider.
Nous allons ensuite ajouter une passerelle par défaut (Default Gateway), 192.168.1.154
6 on clique sur GATEWAY pour ajouter la passerelle. Une nouvelle fenêtre apparaitra.
7 on indique l’adresse IP de la passerelle par défaut.
8 on clique sur OK pour valider.
Une fois tout ceci fait, il nous affichera les routes statiques:
9 affiche la table de routage
10 affiche le journal (les logs)
5.3. DHCP
ZeroShell peut aussi être un serveur DHCP (Dynamic Host Configuration Protocol ), les
clients du réseau local n’auront pas besoin d’adresses IP statiques.
1 on clique sur DHCP
2 on clique sur New, une nouvelle fenêtre apparaitra.
3 on choisit l’interface sur laquelle on veut activer le DHCP
4 on clique sur OK pour valider
5 on spécifie la plage d’adresses
6 on renseigne la passerelle et les serveurs DNS (Domain Name System)
7 on clique sur Save pour enregistrer le serveur DHCP
5.4. Surfer sur Internet
Pour permettre aux clients internes d’utiliser la connexion Internet, nous devons activer
le NAT (Network Adresse Translation).
1 on clique sur Router.
2 on clique sur NAT pour faire la translation d’adresse. Une nouvelle fenêtre apparaitra.
3 on choisit l’interface parmi la liste Avaible Interfaces (ETH01 dans notre cas), puis on
l’ajoute dans la liste NAT Enabled Interfaces, avec le bouton
.
4 on clique sur Save pour valider.
5.5. Portail Captif
Le portail captif (captive portal) consiste à forcer les clients HTTP d'un réseau à afficher
une page web spéciale (le plus souvent dans un but d'authentification) avant d'accéder à
Internet normalement.
Avant d’activer cette fonction, nous allons d’abord créer des utilisateurs.
1 on clique sur Users.
2 on clique sur Add pour pouvoir ajouter un nouvel utilisateur. Une nouvelle fenêtre
apparaitra.
1 on renseigne les informations de l’utilisateur (nom d’utilisateur, répertoire, groupe…)
2 on lui attribue un mot de passe
3 on clique sur Submit pour valider la création.
NB: Quand on ajoute un nouvel utilisateur, une clé privée et un certificat lui sont
générés automatiquement par une Autorité de Certificat (Autority Certificate CA).
1 on clique sur Captive Portal.
2 on active la passerelle par défaut.
3 on choisit l’interface du réseau local (ETH00 dans notre cas).
4 on clique sur Save pour valider.
5 on clique sur Authentication pour activer l’authentification des utilisateurs. Une
nouvelle fenêtre apparaitra.
6 on coche Status pour activer l’authentification.
7 on clique sur Save pour valider les modifications.
NB: on peut aussi modifier l’apparence de la page d’authentification avec des thèmes,
couleurs et images. 8
Une fois tout ceci fait, on peut déjà se connecter avec l’utilisateur que nous avons créé
précédemment.
ZeroShell nous offre également la possibilité de voir tous les utilisateurs connectés, et
de pouvoir les gérer.
5.5. HTTP Proxy
Les pages Web sont de plus en plus souvent les moyens par lesquels les vers et les virus
se propagent sur Internet. Pour palier à ce problème, des techniques sont adaptées
telles que le proxy.
Un des plus gros problèmes lorsque on utilise un serveur proxy est la configuration de
tous les navigateurs Web pour l'utiliser. Il est donc nécessaire de spécifier son adresse IP
ou nom d'hôte et le port TCP sur lequel il répond (généralement le port 8080). Cela
pourrait être lourd dans le cas des réseaux locaux avec de nombreux utilisateurs, mais
pire encore, les utilisateurs pourront supprimer cette configuration pour avoir Internet.
Pour résoudre ce problème, Zeroshell utilise un proxy transparent qui consiste à
capturer automatiquement les demandes des clients . Zeroshell est en mesure de saisir
ces requêtes web, pour se faire il doit être configuré comme une passerelle réseau, afin
que le trafic Internet client passe au travers.
ZeroShell permet également de bloquer l’accès à certaines pages web, c’est ce qu’on
appelle Black List ou Liste Noire.
Exemple:
www.exemple.com: bloque la page d’accueil du site alors que www.exemple.com/*
bloque tout le contenu.
1 on clique sur HTTP Proxy pour accéder à l’interface de configuration.
2 on ajoute les différentes adresses IP aux quelles on veut restreindre l’accès. Une
nouvelle fenêtre apparaîtra.
1 on renseigne l’action à effectuer, l’interface réseau, l’adresse IP source et/ou de
destination.
2 on clique sur Save pour enregistrer les modifications.