0% ont trouvé ce document utile (0 vote)
210 vues4 pages

Configuration d'un pare-feu Netfilter sous Linux

Ce document décrit la mise en place d'un pare-feu Netfilter sur une machine Linux pour sécuriser les segments d'un réseau. Il explique comment configurer les paramètres réseaux de trois machines virtuelles, tester la configuration par défaut du pare-feu, et mettre en place une politique de sécurité avec des règles Iptables.

Transféré par

Hamza Oulad Ben Brahim
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
210 vues4 pages

Configuration d'un pare-feu Netfilter sous Linux

Ce document décrit la mise en place d'un pare-feu Netfilter sur une machine Linux pour sécuriser les segments d'un réseau. Il explique comment configurer les paramètres réseaux de trois machines virtuelles, tester la configuration par défaut du pare-feu, et mettre en place une politique de sécurité avec des règles Iptables.

Transféré par

Hamza Oulad Ben Brahim
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ENSA de Tanger

Département Math-Info
Module GSTR52
Responsable : S. Lazaar
2014-2015

TP 1. Sécurité des systèmes d'information


Conception d'un pare feu basé sur Netfilter de linux

Objectifs : Ce TP propose la mise en place d’un Firewall Netfilter sur une machine Linux afin de
sécuriser les segments d’un réseau en mettant en place la politique de sécurité nécessaire.

Pour ce faire, nous procédons par les étapes suivantes :

- Mise en place des différents segments du réseau ;


- Configuration des paramètres réseaux des trois machines virtuelles local, distant et
firewall ;
- Réalisation d’un ensemble de tests avec la configuration par défaut du firewall,
notamment des tests des protocoles ICMP, FTP et HTTP ;
- Mise en place de la politique de sécurité au niveau du Firewall Iptables en
configurant les règles d’accès.

Outils de travail :

Afin de réaliser ce travail, on se sert de la virtualisation pour avoir différents environnements de


travail, pour cela on installe 3 machines virtuelles avec un système d’exploitation (Redhat par
exemple) et tous les tests seront faits par la suite sur les 3 machines.

1
Présentation de Netfilter

Netfilter est un filtre de paquets intégré dans le noyau Linux. Il est composé de tables qui indi-
quent les traitements qui doivent être appliqués sur les paquets passant par les interfaces réseau.
La commande "iptables" sert à manipuler ces tables et donc à configurer Netfilter.
Netfilter permet essentiellement d'effectuer deux types de traitements différents :

 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
 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.

Netfilter possède par ailleurs cinq points d'ancrage (hooks) au niveau de la pile IP :

 PREROUTING, qui intercepte tous les paquets entrants par les interfaces ;
 INPUT, en coupure des paquets destinés à la machine locale ;
 FORWARD, en coupure du trafic à router d'une interface vers une autre ;
 OUTPUT, en coupure des paquets émis depuis la machine locale ;
 POSTROUTING, qui intercepte tous les paquets sur le point de sortir par une interface.

Netfilter s'insère parfaitement dans la pile TCP/IP du noyau. Il y a une implémentation cohérente de
la NAT.

Les grandes Fonctionnalités :

* Gestion dynamique sur les ports


* Analyse des numéros de séquence permettant d'éviter les TCP session hijacking.
* Anti-Spoofing (par "reverse route lookups").
* La modification des flags à la volée (= mangling)
* Limitation du nombre de paquets / sec (évite les dos)

Le fonctionnement des trois tables netfilter

* La table de filtrage Filter est composée des règles INPUT, OUTPUT , FORWARD
* la table de translation d'adresse avec les règles : PREROUTING, OUTPUT,
POSTROUTING
* mangle pour altérer les paquets sortants

Utilisation de iptables

iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X ( shoot les règles types )

Pour celui qui souhaite tout interdire par défaut, les règles sont simples :

iptables -P INPUT DROP


iptables -P OUTPUT DROP
2
iptables -P FORWARD DROP

ou bien au contraire vous êtes super confiant

iptables -A OUTPUT -j ACCEPT

A noter que la commande DROP va ignorer le paquet, alors que la commande REJECT va signaler
que la communication est impossible. Sachez aussi que selon vos besoins vous aurez besoin de
charger des modules. Par conséquent placez ces lignes au début de votre script de firewall.

modprobe iptable_nat
modprobe iptable_filter

Voici un exemple concret d'un firewall possédant trois interfaces:

* eth0 : l'interface externe connectée au web


* eth1: l'interface de la DMZ (la zone où se trouve les serveurs accessibles depuis Internet,
* eth2: Relie le firewall au réseau interne.

rso = réseau interne


dmz = la DMZ
web = Internet
fw = firewall

Les règles Netfilter

iptables -N rso-web (rso interne > web)


iptables -N rso-dmz (rso interne > dmz)
iptables -N rso-fw (rso interne > firewall)
iptables -N dmz-rso (dmz > rso interne)
iptables -N dmz-web (dmz > web)
iptables -N dmz-fw (dmz >firewall)
iptables -N web-dmz (web > dmz)
iptables -N web-fw (web > firewall)

Toute communication TCP doit commencer par un paquet comportant le flag SYN et uniquement
celui-ci, si ce n'est pas le cas, on rejette la connexion. Enfin, on trie les connexions entrantes selon
les interfaces.

iptables -A INPUT -i lo -j ACCEPT


iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -p TCP --tcp-flags ! ALL SYN -j DROP
iptables -A INPUT -i eth0 -j web-fw
iptables -A INPUT -i eth1 -j dmz-fw
iptables -A INPUT -i eth2 -j rso-fw
iptables -A INPUT -j DROP

Logger les tentatives d'intrusion et les scans de ports

Pour par exemple enregistrer les scans de ports TCP, il suffit d'ajouter la ligne suivante avant la
règle rejetant le paquet. (Notez tout de même que cette fonctionnalité peut ralentir votre machine)
3
iptables -A INPUT --state NEW -p TCP --tcp-flags ! ALL SYN -m limit --limit 3/s -j LOG --log-
prefix "BAD INPUT "

Chaque ligne du log sera préfixée par BAD INPUT. Aussi, on limite le temps du packet et c'est
complètement paramétrable.

Exemples de filtrage avec une dmz qui contient

- un relais de messagerie sur 192.168.1.1


- un serveur web sur 192.168.1.2
- un cache Internet sur 192.168.1.3 port 3128
- Le serveur de messagerie interne sur 10.0.0.1. Depuis Internet, seuls les serveurs de messagerie et
le serveur web sont joignables.

iptables -A web-dmz -p TCP -d 192.168.1.1 --dport smtp -j ACCEPT


iptables -A web-dmz -p TCP -d 192.168.1.2 --dport http -j ACCEPT

Maintenant on limite les connexions du réseau interne > DMZ mais on va autoriser le ping.

iptables -A rso-dmz -p TCP -d 192.168.1.1 --dport smtp -j ACCEPT


iptables -A rso-dmz -p TCP -d 192.168.1.2 --dport http -j ACCEPT
iptables -A rso-dmz -p TCP -d 192.168.1.3 --dport squid -j ACCEPT
iptables -A rso-dmz -p ICMP --icmp-type echo-request -m limit --limit 3/s -j ACCEPT

Communication messagerie > serveur de mail

iptables -A dmz-rso -p TCP -s 192.168.1.1 -d 10.0.0.1 --dport smtp -j ACCEPT

Maintenant passons aux communications DMZ> Web.

* La passerelle de mail peut envoyer des messages


* Le proxy peut utiliser les ports 80 et 443
* Toutes les machines de la DMZ peuvent faire des requêtes DNS

iptables -A dmz-web -p TCP -s 192.168.1.1 --dport smtp -j ACCEPT


iptables -A dmz-web -p TCP -s 192.168.1.3 --dport http -j ACCEPT
iptables -A dmz-web -p TCP -s 192.168.1.3 --dport https -j ACCEPT
iptables -A dmz-web -p TCP --dport domain -j ACCEPT
iptables -A dmz-web -p UDP --dport domain -j ACCEPT

Références : http://www.blocus-zone.com, http://www.formation.ssi.gouv.fr/

Vous aimerez peut-être aussi