538d7762e97c2
538d7762e97c2
538d7762e97c2
Présentateur : Professeur :
Seyni Seydou Abdoul Kader Dr M OULD DEYE
Ousmane Diop
Alphouseyni Mané
2010-2011
IPTABLES SOUS LINUX
PLAN
I. Introduction
1. Utilisation d'iptables
2. Politiques élémentaires de pare-feu
III. Conclusion
I. Introduction
Avertissement
Les services ip6tables devraient être désactivés afin d'utiliser le service
iptables à l'aide des commandes suivantes :
Pour qu’iptables soit lancé par défaut dès que le système est démarré, vous
devez changer le statut du niveau d'exécution sur le service à l'aide de
chkconfig.
La syntaxe d’iptables est séparée en tiers. Le tiers principal est la chaîne. Une
chaîne spécifie l'état auquel un paquet sera manipulé. Son utilisation est la
suivante :
iptables -A chain -j target
L'option -A ajoute une règle à la fin d'un ensemble de règles existant. chain
représente le nom de la chaîne pour une règle. Les trois chaînes intégrées
d’iptables (c'est-à-dire, les chaînes qui affectent tous les paquets qui traversent
un réseau) sont INPUT, OUTPUT et FORWARD. Elles sont permanentes et ne
peuvent pas être supprimées. L'option -j target spécifie l'emplacement dans
l'ensemble de règles iptables où cette règle particulière devrait directement
passer (jump). Certaines cibles intégrées sont ACCEPT, DROP et REJECT.
De nouvelles chaînes (également appelées chaînes définies par l'utilisateur)
peuvent être créées à l'aide de l'option -N. Il est utile de créer une nouvelle
chaîne pour personnaliser des règles granulaires ou élaborées.
En outre, il est recommandé que tout paquet retransmis — le trafic réseau qui
doit être routé à partir du pare-feu jusqu'à son nœud de destination — soit
également refusé, afin de restreindre les clients internes à toute exposition
involontaire à l'internet. Pour ce faire, utilisez la règle suivante :
iptables -P FORWARD DROP
Après avoir configuré les chaînes de politique, vous pouvez créer de nouvelles
règles pour votre réseau et vos besoins de sécurité particuliers. Les sections
suivantes examinent certaines règles que vous pouvez implémenter lors de la
construction de votre pare-feu iptables.
Cela autorise la navigation régulière du Web depuis les sites Web qui
communiquent via le port 80. Pour autoriser l'accès aux sites Web sécurisés (tels
que https://www.example.com/), vous devez également ouvrir le port 443.
iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
Important
Lors de la création d'un ensemble de règles iptables, il est critique de se
souvenir que l'ordre est important. Par exemple, si une chaîne spécifie
que tout paquet provenant du sous-réseau local 192.168.100.0/24 n'est
pas pris en compte et qu'une autre chaîne est ajoutée (-A) qui autorise les
paquets provenant de 192.168.100.13 (qui est à l'intérieur du sous-réseau
restreint), cette dernière règle sera alors ignorée. Vous devez tout d'abord
définir une règle autorisant 192.168.100.13, puis définir l'autre règle sur
le sous-réseau.
Pour insérer une règle de manière arbitraire dans une chaîne existante de
règles, utilisez -I, suivi de la chaîne dans laquelle vous souhaitez insérer
la règle et un numéro de règle (1, 2,3,..., n) où vous souhaitez la mettre.
Par exemple :
La règle est insérée comme première règle dans la chaîne INPUT pour
autoriser le trafic de périphérique de loopback local.
Il se peut parfois que vous ayez besoin d'un accès distant au LAN de l'extérieur
du LAN. Des services sécurisés, comme SSH, peuvent être utilisés pour des
connexions cryptées à distance aux services du LAN. Pour les administrateurs
avec des ressources basées sur PPP (comme les banques de modem ou les
comptes ISP), l'accès commuté peut être utilisé pour éviter les barrières de pare-
feu de manière sécurisée, vu que les connexions par modem se trouvent
normalement derrière un pare-feu / une passerelle, étant des connexions directes.
Toutefois, pour des utilisateurs distants utilisant des connexions à large bande,
des exemptions peuvent être accordées. Vous pouvez configurer iptables de
façon à accepter les connexions provenant de clients SSH distants. Par exemple,
pour autoriser l'accès SSH à distance, les règles suivantes peuvent être utilisées :
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p udp --sport 22 -j ACCEPT
Il existe d'autres services pour lesquels vous pouvez avoir à définir des règles.
Reportez-vous au Guide de référence de Red Hat Enterprise Linux pour obtenir
des informations complètes sur iptables et ses diverses options.
Ces règles autorisent l'accès entrant et sortant à un système individuel, comme
un seul PC connecté directement à Internet ou à un pare-feu ou une passerelle.
Toutefois, elles ne permettent pas aux nœuds situés derrière le pare-feu ou la
passerelle d'accéder à ces services. Pour autoriser l'accès LAN à ces services,
vous pouvez utiliser NAT avec les règles de filtrage iptables.
sysctl -w net.ipv4.ip_forward=1
Si cette commande est exécutée via une invite du Shell, le paramètre est
alors oublié après un redémarrage. Vous pouvez définir la retransmission
de façon permanente en éditant le fichier /etc/sysctl.conf. Trouvez et
modifiez la ligne suivante, en remplaçant 0 par 1 :
net.ipv4.ip_forward = 0
sysctl -p /etc/sysctl.conf
Cette règle spécifie que la table NAT utilise la chaîne intégrée PREROUTING
pour retransmettre les requêtes HTTP entrantes exclusivement à l'adresse IP de
destination listée de 172.31.0.23.
Remarque
Si vous avez une politique par défaut DROP dans votre chaîne FORWARD,
vous devez ajouter une règle autorisant la retransmission de requêtes HTTP
entrantes afin que le routage NAT de destination soit possible. Pour ce faire,
exécutez la commande suivante :
6. DMZ et iptables
Des règles iptables peuvent être définies de façon à router le trafic vers
certains ordinateurs, comme un serveur HTTP ou FTP dédié, dans une zone
démilitarisée (DMZ) — un sous-réseau local spécial dédié à fournir des
services sur un porteur public comme l'internet. Par exemple, pour définir une
règle de façon à router toutes les requêtes HTTP entrantes vers un serveur
HTTP dédié à l'adresse IP 10.0.4.2 (en dehors de la plage 192.168.1.0/24 du
LAN), la traduction d'adresses réseau (NAT) fait appel à une table
PREROUTING afin de rediriger les paquets vers leur correcte destination :
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT \
--to-destination 10.0.4.2:80
Remarque
Il existe une différence entre les actions de cible REJECT et DROP.
III. Conclusion
La mise en place d’un firewall (géré par Linux) sur la machine routeur nous a
donné l’occasion d’appréhender les notions de règles de filtrage et de
translations d’adresses (NAT). Ces dernières permettent d’autoriser (ou au
contraire de restreindre) la communication entre deux zones du réseau. De cette
manière, nous avons pu isoler le réseau interne du monde extérieur (Internet) et
arbitrer les accès et les échanges de données entre ces deux réseaux grâce à la
DMZ (zone démilitarisée). Cette configuration sécurise le réseau d’entreprise,
car en cas d’attaque provenant d’Internet, seule la DMZ peut être endommagée
et le réseau local reste, quant à lui, sain et sauf.
En un mot, iptables est un outil très puissant de firewall (pare-feu) permettant
d’assurer la sécurité au maximum en acceptant ou rejetant ou même supprimant
des paquets des provenances divers et variées selon la politique de sécurité mise
en place pour le contrôle du trafic du réseau.