firewall sous linux netfilter / iptables. introduction le sous système de traitement de paquets...

Post on 03-Apr-2015

108 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Firewall sous Linux

Netfilter / iptables

Introduction

Le sous système de traitement de paquets

réseau linux s’appelle Netfilter

La commande employée pour le configurer

est Iptables

Intérêts

Filtrage de paquets Traduction,Translation d’adresse réseau Modification de paquets

Les commandes iptables opèrent au niveau de la couche osi 3 (couche réseau)

Exemple de commande

##iptables –t filter –A INPUT –i eth1 -j DROPiptables –t filter –A INPUT –i eth1 -j DROP -t filter = table filter -A INPUT = ajoute au « point d’entrée »Input -i eth1 = interface (carte réseau)eth1 -j DROP = -j (jump) que fait-on du paquet DROP (elimine)

En clair : on interdit tout entrée sur eth1

Les points d’entrées

Pré-routage PREROUTING Entrée INPUT Transfert FORWARD Post-routage POSTROUTING Sortie OUTPUT

Flux des paquets

Points d’entrées du NAT

Flux des paquets

Points d’entrées pour le filtrage

Flux des paquets

Points d’entrées pour l’amputation (mangle)

Les points d’entrées

FORWARD (transfert) Permet le traitement des paquets qui arrivent

vers une passerelle, arrivant vers l’une des interfaces et ressortant immédiatement par une autre.

Les points d’entrées

INPUT (entrée) Permet le traitement des paquets

immédiatement avant qu’ils ne soient délivrés au processus local.

Les points d’entrées

OUPUT (sortie) Permet le traitement des paquets

immédiatement après leur génération par un processus local.

Les points d’entrées

Postrouting (post-routage) Permet le traitement des paquets

immédiatement juste avant qu’ils ne quittent l’interface réseau.

Les points d’entrées

Prerouting (pré-routage) Permet le traitement des paquets

immédiatement après leur traitement par l’interface réseau.(vérification de leur somme de contrôle et suppression des paquets non autorisés en raison de l’activation du mode

promiscuous de l’interface réseau)

Les Tables

Iptables intègre trois tables par défaut

NAT Utilisée en conjonction avec le suivi de connexion pour rediriger les connexions pour la traduction d’adresses réseau.

Utilise les points d’entrée (chaînes)

Output, Postrouting et prerouting

Les Tables

Filter Utilisée pour configurer les politiques de sécurité relatives au trafic autorisé à entrer, sortir ou transiter par le PC

Iptables utilisera cette table par défaut si aucune autre n’est explicitement désignée.

Utilise les points d’entrée (chaînes)

Forward, Input et Output.

Les Tables

mangle Utilisée pour modifier les paquets comme la suppression de certaines option IP.

Utilise les points d’entrée (chaînes)

Forward,Input,Output, Postrouting et prerouting

Actions possibles sur les paquets

Ces actions également appelés cibles

ACCEPT

Autoriser le paquet à passer à l’étape suivante du traitement.

Actions possibles sur les paquets

Ces actions également appelés cibles

DROP

Arrêter complètement le traitement du paquet. Ne pas appliquer les autres règles, chaînes ou tables.

Actions possibles sur les paquets

Ces actions également appelés cibles

DROP

Arrêter complètement le traitement du paquet. Ne pas appliquer les autres règles, chaînes ou tables.

Reject (rejeter) fournira un retour à l’émetteur

Flux des paquets

Ordre suivant lequel les paquets sont présentés aux tables

Lors du forwardingNat PreroutingFilter ForwardNat Postrouting

Le paquet que vous voulez filtrer en « forward » n’at-il pas était modifié en NAT lors de son entrée (prerouting) ?

Flux des paquets

Ordre suivant lequel les paquets sont présentés aux tables

Lors d’une entrée vers un processus local Input

Nat Prerouting

Filter input

Flux des paquets

Ordre suivant lequel les paquets sont présentés aux tables

Lors d’une sortie du processus local OuputNat Output

Filter Output

Nat Postrouting

Flux des paquets

Ordre suivant lequel les paquets sont présentés aux tables

Lors d’un transit d’un processus local vers un autre

processus local Nat Output

Filter Output

Filter Input

Source nat et Masquerade

Le SNAT est utilisé pour partager une connection Internet entre plusieurs ordinateurs.

Le poste disposant de la connection va modifier l’adresse source des paquets sortant en la remplaçant par l’IP publique fixe de la passerelle.

Lorsque le serveur répond il envoie ses paquets à la passerelle. Celle-ci va modifier l’adresse de destination pour mettre celle de la machine du LAN

Source nat et Masquerade

Le SNAT implique la modification des adresses et/ou des ports source des paquets juste avant qu’ils ne quittent le noyau.

Cette modification doit être effectuée dans la chaîne Postrouting de la table nat

Source nat et Masquerade : 2 solutions

Si vous avez une IP publique fixe

#iptables –t nat –A Posrouting –o eth0 –j SNAT

Si vous avez une IP publique dynamique

#iptables –t nat –A Posrouting –o eth0 –j masquerade

L’option masquerade gère les changement d’adresse et les coupures de connexion

Destination NAT

Vous héberger un serveur web dans une DMZ. Vous souhaitez que le public y accède. L’adresse public de votre passerelle sera demandée

par les clients du net. Le serveur de votre DMZ à l’adresse 192.168.2.1 et

il écoute sur le port 8080 #iptables –t nat –A Prerouting –i eth0 –p tcp –dport

80 –j DNAT –to-destination 192.168.2.1:8080

#iptables –t nat –A Prerouting –i eth0 –p tcp –dport 80 –j DNAT –to-destination 192.168.2.1:8080

-t nat table Nat -A Prerouting on ajoute une règle en (entrée d’interface) -i etho 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

La syntaxe d’Iptables

#iptable –t filter -A input –p TCP –S 192.168.3.1 –j drop

Table

Nat

Filter

Mangle

Chaîne

Prerouting

Postrouting

Input

Outpout

forward

Sélection

-p protocole

-S source

Action

-j

Drop paquet rejeté

Accept paquet accepté

La syntaxe d’Iptables

Lister les règles -L Retirer les règles -F Ajouter une règle –A Inserer une nouvelle règle –I Remplacer une règle –R

top related