Mettre en place votre pare-feu sous Linux avec iptables.pdf
14/03/2023 10:00 Mettre en place votre pare-feu sous Linux avec iptables
https://perhonen.fr/blog/2015/03/iptables-le-pare-feu-linux-1264 1/4
Iptables, le pare-feu Linux
Linux Réseau Sécurité
Il est important de protéger vos serveurs notamment quand ils sont directement visibles depuis l’internet. Vous trouverez donc ci-dessous les règles iptables
par défaut que je mets sur mes différents serveurs ainsi que certaines règles facultatives.
Qu’est ce qu’iptables ?
Iptables est un logiciel permettant de la mise en place d’un pare-feu sous Linux. Un pare-feu étant un système de blocage des accès vers ou depuis votre
ordinateur depuis ou vers le réseau, réseau qui peut être domestique, local ou mondial. Il sert à mettre en place votre politique de sécurité informatique.
Xtables comprends plusieurs composantes : iptables pour les réseaux IPV4, ip6tables pour les réseaux IPV6, arptables pour protéger les tables ARP
et ebtables pour les trames ethernet au niveau de la couche Liaison du modèle OSI.
Quelles règles mettre ?
Vous trouverez ci-dessous mon script de mise en place de mes règles iptables. Il est découpé en plusieurs parties. La première est la suppression totale de
toutes les règles en place, puis vient l’acceptation de tout trafic venant ou allant vers localhost, suivi de la gestion des connexions déjà établies. Ensuite,
viennent les règles d’acceptation du trafic sur les ports des services désirés, les règles non obligatoires sont commentées pour être dé-commentées sur les
serveurs le nécessitant. Pour finir, nous avons la règles refusant tout trafic entrant ne respectant pas les règles précédentes.
1
2
# mkdir /etc/iptables
# vi /etc/iptables/iptables.sh
iptables.sh
01
02
03
04
05
#! /bin/sh
IPT=/sbin/iptables
# Delete all rules
$IPT -F
14/03/2023 10:00 Mettre en place votre pare-feu sous Linux avec iptables
https://perhonen.fr/blog/2015/03/iptables-le-pare-feu-linux-1264 2/4
Comme vous pouvez le remarquer, les règles sont globales et non spécifiques à une interface. Il faudra les adapter à votre cas de figure.
Pour mettre en place les règles précédentes, rien de plus simple.
Les règles seront alors appliquées jusqu’au redémarrage de votre serveur. Cela est pratique dans la phase d’adaptation des règles à votre serveur. Si vous faites
une bêtise et que vous retrouvez exclus de votre serveur, il vous suffira de le redémarrer pour y avoir de nouveau accès.
Mettre en place les règles au démarrage
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$IPT -X
$IPT -F -t nat
$IPT -X -t nat
# lo
$IPT -t filter -A INPUT -i lo -j ACCEPT
$IPT -t filter -A OUTPUT -o lo -j ACCEPT
# Established connections
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# SSH server
$IPT -A INPUT -p tcp --dport ssh -j ACCEPT
# HTTP Server
#$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
#$IPT -A INPUT -p tcp --dport 443 -j ACCEPT
# Gitlab
#$IPT -A INPUT -p tcp --dport 3550 -j ACCEPT
# Ping
$IPT -A INPUT -p icmp -j ACCEPT
# REJECT all other
$IPT -A INPUT -j REJECT
1
2
# chmod +x /etc/iptables/iptables.sh
# /etc/iptables/iptables.sh
14/03/2023 10:00 Mettre en place votre pare-feu sous Linux avec iptables
https://perhonen.fr/blog/2015/03/iptables-le-pare-feu-linux-1264 3/4
Via iptables-persistent
iptables-persistent est un utilitaire qui se propose de charger automatiquement au démarrage vos règles iptables. Il gère les règles pour IPv4 et IPv6.
L’avantage de cette solution réside dans le fait de ne pas avoir à faire d’adaptation de vos scripts pour le passage sous systemD le travail ayant déjà été fait. De
plus son utilisation se veut très simple.
Pour commencer vous devez installer son paquet
À l’installation, le système de paquet va vous demander si vous souhaitez sauvegarder vos règles. iptables-persistent sauvegardes les règles
dans /etc/iptables sous les nom rules.v4 pour les règles en lien avec IPv4 et rules.v6 pour les règles IPv6.
Pour sauvegarder les règles, vous devez utiliser la commande
Celle-ci revient à utiliser iptables-save et ip6tables-save et d’enregistrer leurs sorties dans les fichiers rules.v4 et rules.v6 .
Pour effacer l’ensemble des règles actuelles
Pour remettre les règles sauvegardées
Via le script d’init (Obsolète)
Une fois votre script bien établi, vous pouvez rendre automatique la mise en place de celles-ci au démarrage de votre serveur en ajoutant le script d’init
suivant :
1 # apt-get install iptables-persistent
1 # service netfilter-persistent save
1 # service netfilter-persistent flush
1 # service netfilter-persistent reload
01
02
03
04
#!/bin/sh
### BEGIN INIT INFO
# Provides: firewall
# Required-Start: $local_fs $remote_fs $syslog $network
14/03/2023 10:01 Mettre en place votre pare-feu sous Linux avec iptables
https://perhonen.fr/blog/2015/03/iptables-le-pare-feu-linux-1264 4/4
Il vous reste maintenant à l’ajouter au système d’init de votre serveur.
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Required-Stop: $local_fs $remote_fs $syslog $network
# Default-Start: 3
# Default-Stop: 0 6
# Short-Description: Starts Firewall
# Description: Starts Firewall
### END INIT INFO
IPTABLES=/sbin/iptables
case "$1" in
start)
/etc/iptables/iptables.sh
exit 0
;;
stop)
# Initialisation du FW
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X
exit 0
;;
*)
echo "Usage: /etc/init.d/firewall {start|stop}"
exit 1
;;
esac
1 # update-rc.d firewall defaults