Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Chinese proverb
N.B. : Ces travaux pratiques font l'objet d'un Compte Rendu (électronique) qui doit être
envoyé à mon adresse email (y.sadqi@usms.ma) avant le début de séance suivante. Ce
CR fera état des réponses aux questions et réalisation des diverses tâches du TP. Vous
êtes libre d'ajouter tout élément d'information qu'il vous semblera judicieux de donner.
Introduction
man iptables
man iptables-extensions
1
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Point important : Les étudiants doivent avoir une connaissance de base de la ligne de
commande Linux et la capacité d'éditer des fichiers et d'exécuter des scripts bash shell
simples. Une certaine expérience avec Wireshark est présumée.
Tâches 1 : Lancement du TP
Remarque : Pour les dernières versions d’Ubuntu y compris la version sur laquelle est
basée Labtainers, il y a un gros bug qui déprogramme constamment le clavier azerty en
qwerty.
2
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Points importants :
3
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Répondez à un questionnaire rapide pour confirmer que vous êtes prêt à effectuer le TP.
Sur le terminal à partir duquel vous avez démarré le laboratoire, saisissez :
Quiz
4
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
wireshark &
Sur le terminal client, utilisez l'utilitaire nmap pour lister (certains des) ports ouverts
sur le serveur:
nmap server
5
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Utilisez wget pour confirmer que la réponse du serveur aux requêtes HTTP:
Confirmez que le service ssh est proposé par le serveur- vous n'avez pas besoin de vous
connecter lorsque vous y êtes invité, utilisez simplement « ctrl + C » pour quitter une fois
que vous obtenez une réponse du serveur.
ssh server
Enfin, confirmez que telnet est proposé (encore une fois, pas besoin de vous connecter):
telent server
Observez le trafic dans WireShark, en notant les adresses IP source et les ports de
destination utilisés par les clients lors de la connexion au serveur.
L'utilitaire iptables est installé sur le composant «parfeu». Utilisez-le pour empêcher le
pare-feu de transférer tout trafic vers le serveur autre que SSH et HTTP.
Point important : Toutes les commandes iptables sont tapées directement sur la ligne
de commande du terminal linux. Il est plus pratique de les inscrire dans un fichier script
et de rendre ce script exécutable (chmod +x). Ne donnez que les droits minimums à ce
fichier pour qu’il ne puisse pas être lu et modifié par tout le monde.
Vous pouvez se baser sur l'exemple de script de pare-feu qui se trouve sur le composant
de « firewall » dans le répertoire de base. Pour tester et exécuter le script bash
« exemple_fw.sh », utilisez la commande :
sudo ./example_fw.sh
Dans votre compte rendu du TP, ajouter l’explication détaillée de chaque ligne du fichier
« exemple_fw.sh ».
Notez que dans le script bash « exemple_fw.sh », on a indiqué à iptables d’enregistrer les
paquets abandonnés. Pinger le serveur à parti du terminal du client, et afficher le log des
paquets abandonnés à partir de l'un des onglets du terminal du pare-feu.
6
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Utiliser iptables pour empêcher le pare-feu de transférer tout trafic vers le serveur autre
que SSH et HTTP. Il est recommandé de placer vos commandes iptables dans un script
bash, afin qu'il soit facile de tester et de reconfigurer les régles iptables si vous
redémarrez le TP.
Après avoir modifié votre configuration iptables, utilisez les applications sur le client
pour démontrer que le pare-feu autorise uniquement le trafic souhaité. Surveillez le
trafic dans WireShark pour voir que la négociation TCP échoue lors de la tentative de
connexion aux ports filtrés. Utilisez nmap pour confirmer la bonne configuration:
nmap server
./wizbang server
Puis, modifier vos règles iptables pour autoriser ce service. Après avoir ajusté vos
iptables, confirmez que vous pouvez exécuter le programme wizbang avec succès.
nmap server
Utilisez la commande « checkwork » à partir du terminal que vous avez utilisé pour
démarrer le TP. Cela fournira des commentaires indiquant si vous avez atteint les
objectifs du TP.
7
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Une fois le TP est terminé, accédez au terminal de votre système Linux qui a été utilisé
pour démarrer le TP et saisissez :
stoplab
Lorsque vous arrêtez le TP, le système affiche un chemin vers les résultats du TP
compressés sur votre système Linux (../labtainer xfer/iptables). Envoyer ce fichier
compressés et le compte rendu du TP (qui doit être de la forme suivante
« tp3_nom_prénom ») à l’adresse électronique suivante (y.sadqi@usms.ma). L’objet de
l’email doit être de la forme : M36_TP3_nom_prenom.
Présentation de Netfiltre/iptables
Le filtrgae de trafic réseau envoyés à un serveur peut aider à protéger le serveur contre
les accès non autorisés. Par exemple, si le serveur contient un service non sécurisé
disponible via son interface réseau, l'exploitation de ce service est plus difficile si
quelque chose bloque le trafic destiné à ce service.
Il existe une variété de techniques et de produits différents dans le but de filtrer le trafic
réseau IP entre les ordinateurs. Dans ce TP, vous allez filtrer le trafic IP en utilisant
iptables. Ce dénier est un programme utilitaire de l'espace utilisateur qui permet la
configuration par défaut de Netfilter depuis le noyau Linux 2.6. Son utilisation est
néanmoins complexe, fonctionnant uniquement en ligne de commande et requérant des
commandes aux structures bien précises. Netfilter prend en charge l'IPV6 ainsi que le
filtrage sans état (stateless filtring) et avec état (statefull filtring).
Netfilter est un pare-feu logiciel intégré dans le noyau Linux. Il est composé de tables qui
indiquent les traitements qui doivent être appliqués sur les paquets IP passant par les
interfaces réseau. La commande "iptables" sert à manipuler ces tables et donc à configurer
Netfilter.
Netfilter permet essentiellement d'effectuer trois types de traitements différents, basées sur
trois tables (figure 2) :
8
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
le filtrage, géré par la table « filter » (table par défaut), qui permet d'accepter ou
de rejeter des paquets en fonction de la politique de sécurité de la machine. On
pourra par exemple interdire à tous les paquets venant de l'Internet et
s'adressant au port 80 (HTTP) de passer ;
la translation d'adresses, ( NAT ) qui permet de modifier l'adresse source ou
destination des paquets, généralement pour partager des adresses IP entre
plusieurs machines, et qui est gérée par la table « nat ». Par exemple, lorsque l'on
veut faire communiquer tout ou partie d'un réseau privé, monté avec des
adresses IP privées (192.168.x.x par exemple) avec l'Internet ;
d'effectuer des opérations de marquage des paquets, pour leur appliquer un
traitement spécial. Ces fonctionnalités sont particulièrement intéressantes sur
une passerelle de réseau d'entreprises, utilisée pour la couche routage ou les
fonctions avancées de QoS (Quality of Service). Ce type de traitement est géré par
la table « Mangle ».
Figure 5. Les trois tables qui vont servir à contenir des règles de Netfilter.
La table "Filter"
Cette table contient des règles qui permettront de filtrer les paquets, selon trois listes de
règles appelées chaînes :
La table NAT
Cette table permet d'effectuer toutes les translations d'adresses nécessaires. Elle
contient trois chaînes :
La table Mangle
INPUT — Cette chaîne modifie des paquets réseau ciblés pour l'hôte.
OUTPUT — Cette chaîne modifie des paquets réseau générés localement avant
qu'ils ne soient envoyés.
FORWARD — Cette chaîne modifie des paquets réseau routés à travers l'hôte.
PREROUTING — Cette chaîne modifie les paquets réseau entrants avant qu'ils ne
soient routés.
POSTROUTING — Cette chaîne modifie les paquets avant qu'ils ne soient
envoyés.
Chaque paquet réseau reçu ou envoyé par un système Linux est soumis à au moins une
règle. Un paquet peut toutefois être soumis à plusieurs règles à l'intérieur de chaque
table avant d'arriver à la fin de la chaîne. La structure et le rôle de ces règles peuvent
10
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
11
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
Une fois que certaines commandes iptables ont été spécifiées (y compris celles
utilisées pour l'ajout, l'élimination, l'insertion ou le remplacement de règles à l'intérieur
d'une chaîne donnée), il est nécessaire d'ajouter d'autres paramètres pour la
construction d'une règle de filtrage de paquets.
Références :
https://doc.ubuntu-fr.org/iptables
https://home.regit.org/netfilter-en/netfilter/
https://caleca.developpez.com/tutoriels/NetFilter-IPtables/
https://fr.wikibooks.org/wiki/Administration_r%C3%A9seau_sous_Linux/Netfil
ter
12
Université Sultan Moulay Sliman
Faculté Polydisciplinaire, Beni Mellal
Département de Mathématiques et d'Informatique
13