17
Page 1 Powerpoint Templates

Projet IPTable

Embed Size (px)

DESCRIPTION

Administrer un reseau a l'aide d'IPtable

Citation preview

Page 1: Projet  IPTable

Page 1Powerpoint Templates

Page 2: Projet  IPTable

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: Projet  IPTable

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: Projet  IPTable

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: Projet  IPTable

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: Projet  IPTable

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: Projet  IPTable

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: Projet  IPTable

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: Projet  IPTable

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: Projet  IPTable

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: Projet  IPTable

Page 11

4. Diagramme de traitement des paquets

Page 12: Projet  IPTable

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: Projet  IPTable

Page 13

III. DEMONSTRATIONS (1/3)

Page 14: Projet  IPTable

Page 14

III. DEMONSTRATIONS (2/3).

Page 15: Projet  IPTable

Page 15

DEMONSTRATIONS (3/3)

Page 16: Projet  IPTable

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: Projet  IPTable

Page 17

Je vous remercie pour votre attention

Questions!!?