Partie
I :
ANNEXES |
TABLE DES MATIERES DE LA PAGE :
Annexe 1: Quelques définitions essentielles
Annexe 2: Script pour le Firewall (Script 1)
Annexe 3: Script pour le proxy SQUID (Script 2)
Annexe 4 : Rapide description des différents logiciels
utilisés
2. Détecteur
d’intrusion (IDS) SNORT.
6. Webalyser
(Supervision Proxy http SQUID).
7. Ntop
(Supervision du trafic Ethernet).
8. Cheops (Gestion
du réseau local)
9. La page
d’accueil de la machine de supervision
11. les deux
Firewalls personnels sous NT
Annexe 5 : Les différentes configurations d’un Firewall
____________________________________________________
§
ARP
(Address Resolution Protocol) : Affiche
un cache d'adresses IP résolues en adresses MAC (Media Access Control).
§
DNS (Domain Name Server): Le
nom de domaine est un nom (ou une adresse) unique qui identifie un site Internet.
Un nom de domaine est toujours composé en deux ou plusieurs parties, séparées
chacune par un point (par exemple medianis.com). La première partie correspond
en général au nom de l'organisation propriétaire du site (dans sa forme
originale ou abrégée), la seconde partie, appelée également suffixe
fonctionnel, précise l'activité de l'organisation. Les noms de domaine sont
donnés dans l'ordre des demandes, les suffixes fonctionnels en fonction de
l'activité de l'organisation qui en fait la demande.
§
HOSTNAME :
Renvoie le nom d'hôte de l'ordinateur local.
§
IPCONFIG :
Vérifie la configuration TCP/IP, les adresse des serveurs
DHCP, WINS, DNS.
§
MAC
(Message Authentification Code). Lors de la vérification de l’intégrité ou de
l’authentification d’une message, une méthode consiste à utiliser un algorithme
de chiffrement par blocs en mode chaîné.
On peut par exemple chiffrer les données à l’aide d’un DES en mode CBC, puis
considérer le dernier bloc comme étant le MAC. Le destinataire ne pourra
vérifier l’intégrité des données que s’il possède la clé symétrique ayant servi
à la génération du MAC. Contrairement à la signature digitale, seul un
destinataire particulier sera en mesure de faire cette opération. L’utilisation
de MAC (monde bancaire par exemple) n’assure pas vraiment la non-répudiation :
les destinataires possède en effet la même clé symétrique que l’expéditeur. Ce
dernier peut donc légitimement nier avoir signé telles données en générant un
MAC, arguant du fait qu’il n’est pas le seul à pouvoir le faire. Il faut
s’assurer d’un canal sûr pour transmettre la clé symétrique (voir HMAC
aussi).Le MAC est fait de la façon suivante (effectué avant chiffrement, puis
chiffré):
HASH(clé
partagée||pad_2||HASH(clé partagée||pad_1||numéro de ce massage||protocole pour
ce message||longueur de ce message||les données (compressées))
La fonction de condensation (HASH()) est
soit MD5 soit SHA-1:
pad_1
= 0x36 et pad_2 = 0x5C (répétés 40 fois pour SHA-1 et 48 fois pour MD5).
§
NETBeui (NetBIOS Extended User Interface) :
protocole de la couche réseau. Conçu par IBM en 1985, ce protocole réseau est
utilisé dans des petits réseaux locaux jusque 200 clients. Il gère 2 types de
trafics:
- mode non connecté, non
fiable, avec lequel l'expéditeur envoie des paquets au destinataire sans
établir de connexion et sans garantie que les paquets arrivent bien. Utilisé
pour la résolution de noms essentiellement.
- mode connecté,
fiable, avec lequel l’expéditeur est le destinataire établissent une connexion
fiable avant tout transfert de données.
Utilisé pour des commandes telles que "net use",
"net view", "net start", ...
§
NETSTAT :
Affiche les statistiques du protocole ainsi que l'état
courant des connexions TCP/IP. Sur un serveur NT, Netstat affiche aussi la
table de routage. De plus, si l'on désire afficher les statistiques Ethernet et
TCP/IP, c'est Netstat qu'il faut utiliser.
§
PING
(Packet Internet Groper) : Vérifie que TCP/IP est correctement configuré et
qu'un hôte est disponible.
§
POP3 (Post Office Protocol version 3).
Protocole permettant à un utilisateur connecté sur une ligne intermittente
d'interroger son courrier situé dans la boîte aux lettres de son serveur ou
fournisseur.
§
Proxy
transparent (HTTP, FTP et SMTP) :
passerelles applicatives entre les postes clients et les serveurs consultés. Un
proxy apporte un niveau de sécurité supplémentaire par rapport au filtrage de
paquets. Alors que ce dernier se base sur les adresses, protocoles et numéros
de port, le proxy intervient au niveau applicatif, permettant ainsi de
sécuriser des fonctions de plus haut niveau. Le mode transparent permet aux
postes clients du réseau local d’envoyer les requêtes vers l'extérieur sans
aucune modification de leur configuration logicielle. Les logiciels clients
classiques (tels que Netscape Navigator ou Microsoft Internet Explorer)
fonctionneront à travers le proxy sans pour autant avoir été spécifiquement
configurés à cet effet.
§
ROUTE :
Affiche ou modifie la table de routage locale.
§
Telnet :
Assure l'émulation de terminal pour un hôte TCP/IP exécutant le logiciel
serveur Telnet. Ne fonctionne pas sur un serveur NT. Telnet est utilisé par
exemple, pour visualiser des données sur un ordinateur Unix à partir d'un
ordinateur NT. Il faut cependant qu'il puisse utilisé un serveur DNS ou un
fichier HOST TRACERT : Vérifie
les routes empruntées entre l'hôte local et l'hôte distant.
§
Traduction d’adresse (ou NAT –Network Address Translation-) : La Traduction d'adresses est le dispositif
qui rend les machines internes invisibles vis à vis de l'extérieur
(l’Internet). Deux techniques sont mises en œuvre : Le masquage d'adresses (IP Masquerading) qui modifie l’en-tête
de chaque paquet provenant du réseau interne et sortant vers l'Internet en y
remplaçant l'adresse IP émettrice par celle du Firewall (ce processus permet
également l’utilisation d’adresses IP ‘non routables’ sur le réseau privé
interne). Le renvoi de port (Port
Forwarding) permet de publier l'adresse IP du Firewall en tant que serveur
DNS et Mail. Ce dernier renverra automatiquement les paquets SMTP et DNS vers
le serveur interne approprié. En pratique, cela se traduit par une machine
(celle qui supportera par conséquent la NAT) qui réalise des calculs (pas au
sens mathématique !J) pour faire sortir des paquets venant
d'une IP interne avec sa propre adresse IP (en transformant l'en-tête du
datagramme, ce qui pose doncun problème si ceux-ci sont cryptés comme avec
SSL…), et refaire la transformation inverse dès le retour du paquet afin de
délivrer la réponse.
§ VPN (Virtual Private Network) : Par
cette technologie de codage des données, il est possible, à travers l’Internet,
d’échanger des informations de manière confidentielle entre 2 LANs équipés de
WatchGuard par exemple ou entre un WatchGuard et un client dial-up supportant
PPTP (Windows NT par exemple).
Pour
des raisons évidentes de sécurité, j’ai tronqué et modifié certaines règles de
ces scripts en plus d’avoir remplacé (comme je l’avais dit au tout début de mon
rapport) les adresses IP interfaces des différentes machines. Ce script n’est
donc pas celui qui est en production actuellement chez AQSACOM, mais un exemple
de script pour donner une idée de ce que sont des règles de routage, d’ipchains
et d’iptables.
Le
script se trouve ici.
Le
script a été installé sur le firewall et se trouve ici.
SAINT™ est l’abréviation de Security
Administrator's Integrated Network Tool. Dans sa configuration la plus simple, il
rassemble le plus d’informations possible sur le réseau en examinant les
services réseau comme finger, NFS, NIS, ftp, rexd, statd, telnet, etc. … Ces
informations permettent de récolter de nombreuses informations sur les services
actifs du réseau, ainsi que sur les trous de sécurité éventuels. De plus, grâce
à un browser HTML comme Lynx dans mon cas (ou Mosaic entre autres), nous
pouvons afficher tous ces résultats sous la forme d’une page web assez claire.
Dans le cas où les tests d’intrusion sont fait dans un but de sécurisation,
nous pouvons avoir des détails sur la topologie du réseau, les services actifs,
les différents types de hardware et softwares utilisés sur le réseau…
-
Saint a est
un programme de traçage qui utilise fping.
Il permet de déterminer si un PC ou un ensemble de PC sont actifs.
-
Dans le cas
où le PC visé est derrière un Firewall, on utilise tcp_scan.
Les tests faits dépendent du niveau de
sécurité recherché, ainsi que de la distance entre nous et la (les) machine(s)
visée(s).
C’est un logiciel qui permet de détecter
d’éventuelles intrusions sur le réseau. Il comporte l'enregistrement basé par
règles et peut chercher des comptabilités entre des mots ou des bouts de
phrases en plus de l'utilisation pour détecter une variété d'autres attaques.
Il avertit en cas de débordement de mémoire tampon, de balayages de port de
stealth, et beaucoup plus. Snort est alors capable d’alerter en temps réel via
des alertes envoyées au syslog (fichier d’alerte à part) ou à un ordinateur
sous Windows par l'intermédiaire de SAMBA.
Il peut être configuré en trois modes :
1.
“straight packet sniffer” comme tcpdump,
mais qui fait alors double emploi avec Ethereal.
2.
“packet logger”, utile pour le debbugage
de réseau,
3.
“full blown network intrusion detection
system”, cas qui nous intéresse ici.
Il peut être installé aussi bien sous
Linux que sous Windows NT, ce qui est
très intéressant.
Pour être mis à jour, SnortSnarf doit être
relancé manuellement. Aussi, ai-je mis en place une mise à jour automatique toutes
les heures et une remise à zéro tous les mois grâce aux fichiers cron de la
machine Linux de supervision.
Squid
est un logiciel qui part du principe, que dans un même lieu les gens vont souvent
voir les mêmes choses sur Internet. Il est donc judicieux d'éviter de
rechercher à l'autre bout de la planète une page 5 fois de suite. C'est
pourquoi on utilise un mandataire (un
intermédiaire), qui va faire la recherche au nom d’un premier client. Si un
second client demande la même page, le mandataire va reprendre la page, qu'il a
déjà cherchée, dans un stock qu'il s'est constitué dans sa mémoire cache, et
cela dans un temps bien plus court que celui nécessaire normalement.
Couplé
à d'autres logiciels comme SQUIDGUARD,
on peut établir des règles de filtrage sur les accès à certaines catégories
d'URLs. Un logiciel comme PROSTAT
permet d'effectuer des statistiques. Enfin un outil tel que MRTG permet de surveiller l'activité du
cache via le protocole SNMP (Simple Network Management Protocol).
Samba est une suite de programmes qui
donnent à un poste Linux la faculté de partager par exemple des fichiers ou des
imprimantes entre des ordinateurs sous OS/2, Windows NT, Windows 95/98 et
Windows for Workgroups. Grâce à Samba, ce poste peut se présenter comme
un serveur NT. Les utilisateurs de machines Windows peuvent "se
loguer" au serveur Linux et, selon les droits qui leur sont alloués,
copier, écrire ou accéder aux fichiers de ce poste.
Utiliser SAMBA présente les avantages
suivants :
·
La fiabilité
et la stabilité du système Linux, ainsi que ses outils puissants et souvent
gratuits (Apache, langages de programmation,...) pour simplifier
l'administration du serveur.
·
La
simplicité de mise en œuvre, tout en gardant une certaine sécurité.
·
Le prix :
Linux et Samba sont gratuits, donc pas d'investissement en logiciel côté
serveur. Côté station Windows, on utilise le client pour les réseaux Microsoft,
vendu avec Windows, donc pas d'investissement supplémentaire à prévoir.
ETHEREAL est un analyseur de protocole de réseau gratuit pour Unix et
Windows. Il permet d'examiner les données à partir d'un réseau, en direct ou à
partir d'une capture de fichier sur disque. Vous pouvez naviguer de façon
interactive sur les données capturées, visionner le résumé et l'information
détaillée pour chaque ensemble. ETHEREAL possède quelques fonctions
performantes, comme un affichage de langage filtré et la possibilité de
visionner le flux reconstitué de la session TCP.
Webalizer est un
outil qui permet de présenter de manière synthétique les logs d'Apache sous forme de pages html avec
graphique.
Ntop délivre une quantité impressionnante d'informations
sur le trafic du réseau. Nous pouvons ainsi observer pratiquement toutes les
caractéristiques du trafic (entrant et sortant). Pour cela, une interface web
est proposée (ntop peut se lancer également en mode ligne). La version courante
est la 1.3.1.
J’ai mis en place une page d’accueil sur la machine de supervision qui
regroupe l’accès aux logiciels décrits si-dessus (SQUID, SNORT, NTOP, …).
Cette page est accessible de tout ordinateur connecté au réseau via un URL
donné et un login /passwd. Voici un aperçu de cette "home
page" :
Apache est un logiciel permettant de monter un
serveur http (web) sur une machine Linux/Unix. Je pense qu’il n’est pas besoin
d’en parler beaucoup plus vu sa notoriété ! Il a été utilisé pour monter
cette page ci-dessus.
·
Le
firewall Zone Alarm
·
Le firewall Tiny Alarm
Il existe 2 types principaux de
Firewall :
1. Firewall
à filtrage de paquets
Ils travaillent sur les paquets réseaux eux-même. Pour les personnes qui ont des connaissances réseaux, ce type de Firewall travaille sur la couche réseau du modèle OSI. Ils analysent les paquets entrants/sortants suivant leur type, leurs adresses source et destination et les ports. Comme ils travaillent directement sur la couche IP, ils sont très peu gourmands en mémoire. Avec Linux ce style de filtrage au niveau de la couche IP est intégré directement dans le noyau, il suffit donc d'avoir un 486 avec 8 Mo de mémoire et d'une distribution Linux avec juste un kernel de base et la couche IP pour faire un tel Firewall.
De plus ils sont totalement transparents pour les utilisateurs, pas d'authentification pour aller vers l'extérieur et pas de paramétrages spécifiques sur les machines des utilisateurs. Un désavantage, c'est qu'il n'y a pas d'authentification possible par utilisateur mais par adresse IP. C'est à dire que si l'on veut en interne interdire à certaine personnes d'aller vers l'extérieur ce n'est possible que si l'on connaît l'adresse de la machine de cet utilisateur, on ne peut pas empêcher que la personne aille sur une autre machine et il faut de plus que les machines aient toujours la même adresse, ce qui peut poser problème lorsqu'on on utilise du DHCP.
2.
Firewall
Proxy
Les Proxies serveur sont utilisés pour
contrôler et analyser tout trafic avec l'extérieur. Certains proxies utilisent
en plus un cache, c'est à dire qu'ils stockent des données en local, ce qui
permet de réduire le trafic réseau, en effet si une même donnée est demandée
plusieurs fois, au lieu d'aller la chercher à nouveau à l'extérieur c'est le
proxy lui même qui la fournit. Leur fonctionnement dépend de leur type :
Attention :
Malgré que la mise en place d’un Firewall soit une protection quasi forcée de
nos jours pour une entreprise, il existe des failles, dont la plus simple à
comprendre est par exemple le cas d’un pare-feu mandataire. En effet, imaginons
que nous disposions d'un réseau et d'un serveur très sécurisés. Disposant aussi
d’une zone démilitarisée, personne ne peut entrer dans notre réseau et nous
pouvons tracer chaque connexion réalisée vers le monde extérieur de même que
celles qui rentrent (ou veulent rentrer !) dans notre réseau. Nous
obligeons tous nos utilisateurs à passer par un mandataire et le seul service
autorisé directement vers l'extérieur est le DNS (port 53). Mais un port, c'est
tout ce qu'il faut pour rendre un pare-feu inutile ! Voici comment cela se
passe : commençons par configurer une machine Linux quelque part en dehors de
notre réseau. Un bon choix pourrait être une machine personnelle connectée à
Internet par un modem-câble. Demandons trois adresses IP à notre FAI. De
nombreuses entreprises en fournissent jusqu'à trois. Sur cette machine, vous
devez installer la partie client d'un réseau privé virtuel (VPN) (cf. http://sunsite.auc.dk/vpnd/
par exemple). Maintenant, configurons le côté serveur du VPN sur une
autre machine Linux et connectons ce serveur à son client par le port 53.
Activons le routage et la transmission IP et placons une adresse IP inutilisée
(obtenue de votre FAI) sur son port réseau local. Finalement, sur un poste du
réseau privé, changeons la passerelle par défaut afin qu'elle pointe sur le
serveur du VPN et ajoutons la troisième adresse IP sur son port réseau local.
Maintenant, depuis ce poste, nous pouvons aller n'importe où. La seule chose
que l'administrateur réseau verra sera une recherche DNS particulièrement
longue, mais il n’aura probablement aucune raison d’y regarder de plus près…
RAPPORT :
La mise en place du pare feu
sous LINUX
Le sniffage discret d’un
réseau
La sécurisation de machines
sous NT et LINUX