0% ont trouvé ce document utile (0 vote)
5 vues3 pages

Configuration d'iptables pour pare-feu

Le chapitre 11 traite de la configuration des pare-feux avec iptables, permettant de filtrer les paquets réseau selon diverses politiques (ACCEPT, REJECT, DROP) et directions (INPUT, OUTPUT, FORWARD). Il explique la syntaxe des règles iptables, l'importance de l'ordre des règles, et fournit un exemple de script de configuration pour sécuriser un système. De plus, il aborde des cas spécifiques comme le service FTP et les techniques de NAT (SNAT, DNAT) pour le partage d'adresses IP.

Transféré par

st
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)
5 vues3 pages

Configuration d'iptables pour pare-feu

Le chapitre 11 traite de la configuration des pare-feux avec iptables, permettant de filtrer les paquets réseau selon diverses politiques (ACCEPT, REJECT, DROP) et directions (INPUT, OUTPUT, FORWARD). Il explique la syntaxe des règles iptables, l'importance de l'ordre des règles, et fournit un exemple de script de configuration pour sécuriser un système. De plus, il aborde des cas spécifiques comme le service FTP et les techniques de NAT (SNAT, DNAT) pour le partage d'adresses IP.

Transféré par

st
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

Chapitre 11

Firewall configurés avec iptables

Le pare-feu (en anglais firewall) netfilter, configuré avec la commande iptables, permet de
filtrer les paquets réseau entrants, sortants, et transmis, sur une machine. On peut filtrer par
interface, par port, par adresse de source ou de destination des paquets. La configuration
d’iptables permet aussi de partager une adresse IP (par exemple sur internet) entre plusieurs
machines d’un réseau local.

11.1 Principe d’iptables


11.1.1 Les politiques
Lorsqu’un paquet IP rentre ou sort de votre machine, on peut adopter trois politiques diffé-
rents : ACCEPT, REJECT ou DROP. Avec la politique ACCEPT, le paquet est simplement transmis
normalement. Avec la politique REJECT le paquet n’est pas transmis et la machine source est
prévenue. Avec la politique DROP, je paquet n’est pas transmis et la machine source n’est pas
prévenue.

11.1.2 Les directions de paquets


Il y a principalement trois directions de paquets (ces directions de paquets sont appelés chaînes)
qui circulent sur la machine :

1. INPUT : paquets entrants à destination de la machine et venant d’une autre machine ;


2. OUTPUT : paquets sortants venant de la machine et à destination d’un autre machine ;
3. FORWARD paquets venant d’un autre machine et à destination d’une troisième machine
lors de l’utilisation de la machine comme passerelle pour le routage.

11.1.3 Les rêgles


La configuration iptables consiste en un ensemble de règles. Une règle est une commande iptables
en bash comprenant :

• -A chaine ou -I chaine : La chaîne INPUT, OUTPUT ou FORWARD ;


• -i interface et/ou -o interface Les interfaces d’entrée et de sortie (optionnel) ;

66
Chapitre 11 : Firewall configurés avec iptables

• -p protocole Le protocole (si besoin) (voir /etc/protocols) ;

• --sport ou --dport ; Les ports de source ou de destination (si besoin) ;

• -s adresse ou -d adresse : L’adresse (ou le sous-réseau) de provenance ou de destination


(optionnel). On pet aussi utiliser la négation (avec !) pour exclure une adresse au lieu
d’inclure une adresse ;

• La politique ACCEPT, REJECT ou DROP, spécifiée avec l’option -j.

L’ordre des règles est important. Si l’on met, par exemple, un politique de rejet systématique
d’un certain type de paquets, on peut ensuite mettre une règles qui accepte ce type de paquet
à partir d’une certaine machine ou d’un certain sous réseau. C’est la différence entre -A et -I.
Le -A rajoute la règle à la fin d’une chaîne et le -I au début.
Pour vider toutes les règles :

iptables -F chaîne

Pour mettre une politique par défaut (qui s’applique à tous les paquets sauf règle contraire) :

iptables -P chaîne politique

En général, on met toutes les règles dans un script qui va créer toutes les tables. On peut aussi
lancer ce script automatiquement au démarage avec update-rc.d.

11.2 Exemple script de configuration


# On vide toutes les règles
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

# Politique par défaut (version très sécurisée)


iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Autoriser le trafic sur l'interface loopback


iptables -I INPUT -i lo -j ACCEPT
iptables -I OUTPUT -o lo -j ACCEPT

# protocole ICMP (dont ping) dans tous les sens


iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT

# ssh vers l'extérieur (client ssh) via l'interface eth0


iptables -I INPUT -p tcp -i eth0 --sport ssh -j ACCEPT

67
Rémy Malgouyres, [Link] Administration système et réseaux

iptables -I OUTPUT -p tcp -o eth0 --dport ssh -j ACCEPT

# ssh vers la machine (serveur ssh) via l'interface eth0


iptables -I INPUT -p tcp -i eth0 --dport ssh -j ACCEPT
iptables -I OUTPUT -p tcp -o eth0 --sport ssh -j ACCEPT
• Pour l’utilisation d’un client (ssh, telnet,...), le OUTPUT a pour destination le port corres-
pondant au service et le INPUT a pour source le port correspondant au service.
• Pour l’utilisation en tant que serveur (ssh, telnet,...), le OUTPUT a pour source le port
correspondant au service et le INPUT a pour destination le port correspondant au service.
• D’une manière générale, les ports réservés (22 pour ssh, 80 pour www, etc...) sont utilisés
coté serveur. Les ports utilisés coté client sont des ports non privilégiés numérotés de
1024 à 65535.

11.3 Le cas de FTP


Le service FTP mérite une attention particulière car après la connexion via le port 21 du
serveur, le serveur demande une identification sur le port 113 du client. Après l’établissement
de la connection, les données sont tansmises sur encore un autre port, ce qui permet de garder
le port 21 libre pour les commandes (put, get,...) : on parle de connexion RELATED. (réviser
son cours sur les sockets : lors de la connection, une nouvelle socket est créer qui va traîter
le client dans un processus fils ou un thread). Il faut alors autoriser toutes ces connexions, y
compris les connexions RELATED et les connexions déjà établies ESTABLISHED.
Voici les autorisations minimales sur un serveur FTP avec politique DROP par défaut :
# chargement du module du noyau spécialisé :
modprobe ip_conntrack_ftp

# autorise les connexions FTP de commande vers l'intérieur :


iptables -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT

# autorise les demande d'identification vers l'extérieur


iptables -A OUTPUT -m state --state NEW -p tcp --dport 113 -j ACCEPT

# # # autorise les connexions FTP de données (ou autre connexion RELATED)


iptables -A INPUT -m state --state RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED -j ACCEPT

# autorise les connexions déjà établies


iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT

11.4 SNAT, DNAT et masquerading


Dans cette section, on suppose que les routes ont été établies correctement et que la passerelle
a été configurée pour forwarder les paquet IP (voir chapitre 9).

68

Vous aimerez peut-être aussi