Upload
olga-ambani-balla
View
249
Download
2
Embed Size (px)
DESCRIPTION
Administrer un reseau a l'aide d'IPtable
Citation preview
Page 1Powerpoint Templates
Page 2
PLANI. INTRODUCTION
II. FONCTIONNEMENT DE IP-TABLES
1. Qu’est ce IP-TABLES?2. Principe3. les Tables , les chaines et les cibles4. Diagramme de traitement des paquet
III. DEMONSTRATION
Page 3
INTRODUCTION
De nos jours, l’une des méthodes fondamentales de sécurisation des réseaux informatiques est le filtrage des paquets.
Aujourd’hui tout le monde sait ce que c’est qu’un firewall ainsi que son utilité sur un réseau, un serveur ou même un ordinateur personnel
Depuis la version 2.4, Linux contient un module destiné au filtrage réseau: Netfilter. Il se configure au moyen d'un outil appelé iptables.
Page 4
I. FONCTIONNEMENT DE IPTABLES
IPTables est un outil Linux (exclusivement) pour gérer le pare-feu qui est intégré au noyau Linux 2.4 (et supérieur). L'architecture du noyau pour le système de pare-feu s'appelle 'netfilter'.
Netfilter est un module, et fonctionne en mode Noyau. C’est lui qui intercepte et manipule les paquets IP avant et après le routage.
• IPTables est la commande qui permet de configurer Netfilter en espace Utilisateur.
1. Qu’est ce que IPtables?
Page 5
2. Principe
• Lorsque la carte réseau reçoit un paquet celui-ci est transmis à la partie netfilter du noyau.
• Netfilter va ensuite étudier ce paquet (les entêtes et le contenu) et en se basant sur des règles que l'administrateur aura défini, il va choisir de laisser passer le paquet intact, de modifier ce paquet, de le transmettre à une autre machine ou encore d'interdire le passage.
Page 6
3. Les tables, chaînes et cibles
• UNE CHAÎNE est une suite de règles qui sont prises dans l'ordre, dès qu'une règle correspond à un paquet, elle est déclenchée, et la suite de la chaîne est ignorée.
• UNE TABLE est constituée d’un nombre arbitraire et non limité de chaînes.
Tous les paquets inspectés par Netfilter passent à travers des tables de traitement prédéfinies (queues).
• UNE CIBLE est l’endroit où sera envoyé le paquet si le motif de reconnaissance de là règle correspond et qui donnera l’action a exécuter.
MOTIF DE RECONNAISSANCE Nombre variable de critère permettant d’évaluer un paquet
Page 7
Il existe trois principales tablesTables
Table Description
filter Cette table permet de filtrer les paquets. Typiquement ce sera pour les accepter ou non.
nat Avec cette table, on peut réaliser des translations d'adresse (ou de ports).
mangle Règle pour la modification des paquets. Permet de marquer les paquets (MARK), Modifier leur TTL, leur TOS. On peut agir sur l’en-tête du paquet ainsi qu’aux champs qui lui sont associé par le système
La table Raw est principalement utilisée pour placer des marques sur les paquets qui ne doivent pas être vérifiés par le système de traçage de connexion. Ceci est effectué en utilisant la cible NOTRACK sur le paquet. Si une connexion rencontre une cible NOTRACK, conntrack ne tracera pas cette connexion
Page 8
Ce sont elles qui contiendront les règles à appliquer aux paquets.
Chaines
Chaînes de Netfilter
Chaîne Table Description
PREROUTING Mangle, nat
Par cette chaîne passeront les paquets entrant dans la machine avant routage.
INPUTFilter, mangle
Cette chaîne traitera les paquets entrants avant qu'ils ne soient passées aux couches supérieures (les applications).
FORWARDFilter, mangle
Ce sont les paquets uniquement transmis par la machine sans que les applications n'en aient connaissance.
OUTPUTfilter, nat, mangle
Cette chaîne sera appelée pour des paquets envoyés par des programmes présents sur la machine.
POSTROUTINGMangle, nat
Les paquets prêts à être envoyés (soit transmis, soit générés) seront pris en charge par cette chaîne.
Page 9
Il s'agit du traitement que l'on décide d'appliquer au paquetCible
Cible Description
ACCEPT Les paquets envoyés vers cette cible seront tout simplement acceptés et pourront poursuivre leur cheminement au travers des couches réseaux.
DROP Cette cible permet de jeter des paquets qui seront donc ignorés.
REJECT Permet d’envoyer une réponse à l’émetteur pour lui signaler que son paquet a été refusé.
LOGDemande au noyau d’enregistrer des informations sur le paquet courant. Cela se fera généralement dans le fichier /var/log/messages (selon la configuration du programme syslogd).
MASQUERADECible valable uniquement dans la chaîne POSTROUTING de la table NAT Elle change l’adresse IP de l’émetteur par celle courante de la machine pour l’interface spécifiée. Cela permet de masquer des machines et de faire par exemple du partage de connexion.
SNATEgalement valable pour la chaîne POSTROUTING de la table NAT seulement. Elle modifie aussi la valeur de l’adresse IP de l’émetteur en la remplaçant par la valeur fixe spécifiée.
DNATValable uniquement pour les chaînes PREROUTING et OUTPUT de la table NAT. Elle modifie la valeur de l’adresse IP du destinataire en la remplaçant par la valeur fixe spécifiée.
RETURNUtile dans les chaînes utilisateurs. Cette cible permet de revenir à la chaîne appelante. Si RETURN est utilisé dans une des chaînes de base précédente, cela est équivalent à l’utilisation de sa cible par défaut.
Page 10
Les options d’ IPtables
Options Rôle-L Affiche toutes les règles de la chaîne indiquée.-F Flush. Supprime toutes les règles de la chaîne. Si aucune chaîne n'est
spécifiée, toutes celles de la table sont vidées.
-N Crée une nouvelle chaîne utilisateur avec le nom passé en paramètre.-X Supprime la chaîne utilisateur. Si aucun nom n'est spécifié, toutes les
chaînes utilisateur seront supprimées
-P Modifie la politique par défaut de la chaîne. Il faut indiquer en plus comme paramètre la cible à utiliser.
-A Ajoute une règle à la fin de la chaîne spécifiée.-I Insère la règle avant celle indiquée. Cette place est précisée par un
numéro qui fait suite au nom de la chaîne. La première porte le numéro 1. Si aucun numéro n'est indiqué, la règle est insérée au début.
-D Supprime une règle de la chaîne. Soit un numéro peut être précisé, soit la définition de la chaîne à supprimer (ses tests de concordance et sa cible).
-j <cible> Saute à la cible spécifiée lorsque le paquet correspond à la règle-p < type-protocole> Protocole à surveiller. Le type inclut icmp, tcp, udp, http, etc.
-s < addresse-ip> Adresse IP source à surveiller.
-d < addresse-ip > Adresse IP destination à surveiller. -i <nom-interface> Interface d’entrée à surveiller (le paquet entre par cette interface).
-o < nom-interface > Interface de sortie à surveiller (le paquet sort par cette interface).
Page 11
4. Diagramme de traitement des paquets
Page 12
La syntaxe d’Iptables• # iptables –t filter -A INPUT –p TCP –S 192.168.3.1 –j DROP
III. DEMONSTRATIONS
#iptables –t nat –A PREROUTING –i eth0 –p tcp –dport 80 –j DNAT/ ---to-destination 192.168.2.1:8080
• -t nat [filter] table Nat ou filter• -A Prerouting on ajoute une règle en (entrée d’interface)• -i eth0 on précise le sens (–i=input) et la carte réseau• -p TCP on indique le protocole TCP• --dport 80 le port de destination prévu à l’origine.• -J jump, quel action on va faire subir au paquet.• DNAT modification de la destination• -to—destination 192.168.2.1:80 on précise la nouvelle destination
Page 13
III. DEMONSTRATIONS (1/3)
Page 14
III. DEMONSTRATIONS (2/3).
Page 15
DEMONSTRATIONS (3/3)
Page 16
Exemple de script iptables
#!/bin/bash # Script iptables by BeAvEr. ## Règles iptables. ## On flush iptables.
/sbin/iptables -F
## On supprime toutes les chaînes utilisateurs. /sbin/iptables -X ## On drop tout le trafic entrant. /sbin/iptables -P INPUT DROP ## On drop tout le trafic sortant. /sbin/iptables -P OUTPUT DROP ## On drop le forward. /sbin/iptables -P FORWARD DROP ## On drop les scans XMAS et NULL.
/sbin/iptables -A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
/sbin/iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
/sbin/iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
/sbin/iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP ## Dropper silencieusement tous les paquets broadcastés.
/sbin/iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
## Permettre à une connexion ouverte de recevoir du trafic en entrée.
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
## Permettre à une connexion ouverte de recevoir du trafic en sortie.
/sbin/iptables -A OUTPUT -m state ! --state INVALID -j ACCEPT ## On accepte la boucle locale en entrée. /sbin/iptables -I INPUT -i lo -j ACCEPT ## On log les paquets en entrée. /sbin/iptables -A INPUT -j LOG ## On log les paquets forward. /sbin/iptables -A FORWARD -j LOG exit 0
(à stocker dans /etc/init.d/monIPTables
Page 17
Je vous remercie pour votre attention
Questions!!?