Vous êtes sur la page 1sur 3

TP

Cryptographie, filtrage, outils de sécurité

1. Objectif du TP :
L’objectif de ce TP est de :
Expérimenter OpenSSL par le chiffrement d’un texte clair en utilisant DES.
Se familiariser avec le firewall iptables et l’outil de scan Nmap.

2. Environnement de travail
Machine disposant du système d’exploitation Linux.

Les paquetages relatifs aux outils utilisés ainsi que la documentation associée (openssl, nmap,
etc.).
Note : la version des paquetages dépend de la distribution Linux fournie et qui sera indiquée par
l’enseignant.
3. Instructions
Ce TP fera l’objet d’un compte rendu. Pour chacune des étapes suivantes, il vous est demandé
de donner la syntaxe de la commande utilisée et de décrire et d’interpréter clairement les
résultats obtenus.
4. Présentation d’OpenSSL
OpenSSL est une boite à outils de chiffrement comportant deux bibliothèques (une de
cryptographie générale et une implémentant le protocole SSL), ainsi qu'une commande en ligne. Les
bibliothèques sont écrites en langage C, implémentent les fonctions basiques de cryptographie et
fournissent un certain nombre de fonctions utiles. Actuellement, la bibliothèque OpenSSL est utilisée
dans une variété de langages informatiques. La commande en ligne openssl permet :
▪ la création de clés RSA, DSA (signature),
▪ la création de certificats X509,
▪ le calcul d’empreintes (MD5, SHA, RIPEMD160, ...),
▪ le cryptage et décryptage (DES, IDEA, RC2, RC4, Blowfish, ...),
▪ la réalisation de tests de clients et serveurs SSL/TLS,
▪ la signature et le chiffrement de courriers (S/MIME) à l'aide de ces variétés de paramètres,
▪ réaliser les différentes opérations de cryptographie.

Les bibliothèques et l'utilitaire OpenSSL sont disponibles pour la plupart des systèmes
d’exploitation Unix/ Linux, Mac OS X, ainsi que sur le système d'exploitation Windows.

Travail demandé :
A) Utilisation d’OpenSSL pour le chiffrement symétrique
1- Lancer une nouvelle console et taper la commande suivante afin de voir si OpenSSL est installé
sur la machine rpm –qa | grep openssl
2- Si OpenSSL n’est pas installé, utiliser le CD d’installation et taper la commande d’installation du
package OpenSSL rpm –ivh opensslxxx.rpm.
3- Taper la commande man openssl afin de visualiser les options d’utilisation de l’outil OpenSSL 4-
En vous basant sur les informations que vous venez de lire, expliquer la syntaxe de la commande
suivante: openssl enc –des -in sample.txt -out sample2.txt -e
5- Créer un fichier texte sample.txt puis chiffrer son contenu en utilisant DES.
6- Expliquer la syntaxe de la commande: openssl enc -des -in sample2.txt -out sample3.txt -d
7- Exécuter la commande précédente puis visualiser le contenu du fichier texte sample3.txt,
commenter le résultat.
5. Présentation d’Iptables
Iptables est un outil intégré au noyau Linux dont la version est supérieure à 2.4. Il permet de
configurer le Firewall à filtrage de paquets Netfilter.
Iptables est utilisé pour mettre en place, maintenir et inspecter les tables des règles de filtrage des
paquets IP du noyau Linux. Différentes tables peuvent être définies. Chaque table contient plusieurs
chaînes prédéfinies et peut aussi contenir des chaînes définies par l'utilisateur.

Iptables peut utiliser des tables multiples pour décider du sort d'un paquet donné. La table par
défaut, appelée filter, contient les chaînes standard intégrées INPUT, OUTPUT et FORWARD.
Toutefois, iptables possède aussi par défaut deux tables supplémentaires qui effectuent des
opérations de filtrage de paquets spécifiques : La table nat peut être utilisée pour modifier les
adresses IP d'origine et de destination des paquets alors que la table mangle est destinée à permettre
certaines manipulations sur les entêtes des paquets (ToS, TTL, etc.).
Chaque table contient une liste de règles de filtrage par chaine. Les règles sont analysées les unes à
la suite des autres dans l’ordre de leur écriture. Dès qu'une règle peut s’appliquer à un paquet, elle est
déclenchée, et la suite de la chaîne est ignorée.

Tous les datagrammes qui transitent par votre machine traversent un ensemble de tables
(file d'attentes) qui sont gérées via la commande iptables. Chacune de ces files contient un
ensemble de chaînes qui réalisent un ensemble de filtrages/transformations et s'appliquent à
un type particulier de datagrammes. Il y a en tout trois files :

1. mangle qui se charge de changer la qualité de service des datagrammes et que


nous n'utiliserons pas dans ce TP.
2. filter qui se charge du filtrage des datagrammes. Il y trois chaînes de filtrage dans
cette file :
1. FORWARD qui filtre les datagrammes qui transitent par la machine;
2. INPUT qui filtre les datagrammes à destination de la machine;
3. OUTPUT qui filtre les datagrammes qui ont pour source la machine;
3. nat qui se charge de la translation d'adresse. Cette file a trois chaînes:
1. PREROUTING qui est utilisée lorsque l'adresse destination du
datagramme doit être changée;
2. POSTROUTING qui est utilisée lorsque l'adresse source du paquet doit
être changée.
3. OUTPUT même chose que PREROUTING mais pour les paquets générés
localement.

Exemples de commandes
#iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP
--sport 1024:65535 --dport 80 -j ACCEPT
Accepter les datagrammes TCP émanant de l’interface eth0 à partir de n’importe quelle adresse IP
en destination de l’adresse IP 192.168.1.58 qui est accessible sur l’interface eth1. Le port source
doit posséder une valeur entre 1024 et 65536 et le port destination doit être égal à 80.
#iptables -A INPUT –i eth0 -p tcp -s ! 192.168.2.2 -j DROP
Refuser tout trafic TCP qui provient au Firewall sur l’interface eth0, sauf ce qui provient de
l'adresse IP 192.168.2.2.
#iptables -A OUTPUT -p udp --sport 53 -j DROP
Refuser tout trafic UDP qui est émis par la machine Firewall en destination de n’importe quel
serveur DNS.
Travail demandé :
1- Consulter la page manuel d’iptables (man iptables) pour savoir d’avantage sur l’usage et les
options.
2- Afficher la liste des règles pour toutes les chaînes de la table « filter ».
3- Quelle est la politique de filtrage appliquée par défaut sur les chaines INPUT et OUTPUT ?
4- Ajouter une règle permettant d’autoriser le trafic TCP entrant pour le service SSH (port tcp 22).
5- Enregistrer la configuration de votre Firewall dans le fichier /etc/sysconfig/iptables.
6- Ajouter une règle autorisant toutes les connexions en entrée sur n’importe quel port TCP si elle
est déjà établie ou liée à une connexion établie.
7- Eliminer la règle élaborée au niveau de la question 4.

6. Présentation de NMAP

nmap est un scanner de ports open source créé par Fyodor et distribué par Insecure.org. Il est conçu
pour détecter les ports ouverts, identifier les services hébergés et obtenir des informations sur le
système d'exploitation d'un ordinateur distant. Ce logiciel est devenu une référence pour les
administrateurs réseaux car l'audit des résultats de nmap fournit des indications sur la sécurité d'un
réseau. nmap permet d'effectuer différents types de scans dont quelques exemples:
tcp connect : option -sT

Une connexion tcp habituelle est tentée sur chaque port. Ce genre de scan est visible dans les logs des
firewalls. Les noms de services sont associés aux ports ouverts par le fichier Nmap-services et non
/etc/services. Il n'est donc pas exclu que le service désigné soit faux.

Scan UDP : option –sU :


Même si les services les plus connus d'Internet son basés sur le protocole TCP, les services UDP sont
aussi largement utilisés. DNS, SNMP ou DHCP (ports 53, 161/162 et 67/68) sont les trois exemples
les plus courants.

Syn scan : option -sS

Seul un paquet Syn est envoyé. Si le port est ouvert, un Syn|ACK est renvoyé, sinon un RST est
renvoyé. En cas de port ouvert Nmap renvoie un paquet RST pour fermer la connexion
immédiatement. Avantages, rapide et moins détectable. Fait une différence entre les ports filtrés et
ouverts.
Travail demandé :
1- Consulter la documentation de Nmap.
2- Lancer un scan NMAP sur la machine (127.0.0.1) en spécifiant un balayage de tous les ports
disponibles et un type de scan SYN.
3- Quels sont les services en exécution sur la machine. Comment cette information est déduite ?
4- Est-ce que l’exécution de cet outil avec les privilèges d’un simple utilisateur et un super
utilisateur (root) donne accès aux mêmes types de scan.
5- Est-ce qu’il est possible d’identifier le type de système d’exploitation en utilisant cet outil. Si oui,
donner la commande avec les options adéquates ?
6- Essayer de déduire à partir de la documentation le rôle de la commande suivante :
nmap -sP 192.168.0.0/16.