Bien que Linux soit l'un des systèmes d'exploitation les plus fiables et les plus sécurisés, grâce à ses caractéristiques, il existera toujours une sorte de vulnérabilité, qu'elle soit inhérente au système ou involontaire de l'utilisateur. Pour augmenter la sécurité de Linux, nous avons divers outils conçus pour protéger les services, les processus, les profils ou les fichiers et aujourd'hui, nous nous concentrerons sur un outil spécial appelé Iptables.
Qu'est-ce qu'IptablesIptables est un outil de pare-feu avancé intégré au noyau Linux qui fait partie d'un projet appelé netfilter.
Grâce à Iptables nous pourrons gérer avec précision et directement toutes les connexions entrantes et sortantes vers le serveur. Iptables est développé pour l'adressage IPv4 tandis que pour IPv6, nous avons Ip6tables.
1. Structure Iptables sous Linux
La structure que l'on retrouve dans Iptables est la suivante :
BrutIl se charge de filtrer les paquets avant toute autre table existante
FiltreC'est la table par défaut de l'application
NatIl est utilisé pour la traduction d'adresses réseau
MangroveIl est utilisé pour la modification de paquets réseau spécialisés
SécuritéPeut être implémenté pour les règles de connexion réseau de contrôle d'accès obligatoire
2. Structure de commande dans Iptables sous Linux
Dans Iptables, chaque règle est une commande qui indique comment le trafic de paquets réseau doit être géré.
Nous pouvons utiliser la structure suivante :
-A ENTRÉE -i eth0 -p tcp -m état - ÉTABLI, ASSOCIÉ --sport 80 -j ACCEPTERLes paramètres utilisés sont :
- -A : Indique que les règles seront ajoutées à Iptables
- -i : Indique l'interface sur laquelle la règle sera appliquée
- -p : Désigne le protocole où la règle s'appliquera
- -m : Désigne le fait qu'il y a une condition qui doit être remplie pour appliquer la règle
- --state : autoriser l'acceptation de nouvelles connexions
- --sport : Indique le port source
- -j : (Jump) indique qu'ils peuvent accepter tout le trafic qui remplit les conditions données.
3. Création de règles à l'aide d'Iptables sous Linux
Bien que nous puissions ajouter les règles manuellement, il est beaucoup plus pratique de créer un fichier de règles puis de l'importer. Dans ce cas nous allons créer le fichier dans le chemin /tmp/iptables-ip4 et nous pouvons utiliser un éditeur pour son ajustement respectif :
sudo nano / tmp / iptables-ip4La syntaxe sera la suivante :
* filtrer # Règles à ajouter COMMITNous allons maintenant créer les règles suivantes dans ledit fichier :
Loopback = C'est l'interface externe de Linux
-A ENTRÉE -i lo -j ACCEPTER -A SORTIE -o lo -j ACCEPTER
Ping = nous permet de vérifier les connexions réseau
-A INPUT -i eth0 -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT -A INPUT -i eth0 -p icmp -m state --state ESTABLISHED, RELATED -j ACCEPT -A OUTPUT - o eth0 -p icmp -j ACCEPTER
Web = Grâce à ces règles, nous contrôlons le trafic entrant et sortant.
-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 80 -j ACCEPT -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 443 -j ACCEPT -A SORTIE -o eth0 -p tcp -m tcp --dport 80 -j ACCEPTER -A SORTIE -o eth0 -p tcp -m tcp --dport 443 -j ACCEPTER
En cas d'ajout du DNS, nous utiliserons les lignes suivantes :
-A INPUT -i ens3 -s 192.168.0.1 -p udp --sport 53 -m state --state ÉTABLI, CONNEXE -j ACCEPT -A OUTPUT -o ens3 -d 192.168.0.1 -p udp --dport 53 -m udp -j ACCEPTER
Noter:Ici, nous devons modifier l'IP si nécessaire
Heure = Ces règles permettent la connexion à NTP pour une synchronisation correcte de l'heure
-A INPUT -i eth0 -p udp -m state --state ESTABLISHED, RELATED --dport 123 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --sport 123 -j ACCEPT
Impression = Permet d'activer les ports USB pour connecter les imprimantes
-A INPUT -p udp -m udp --dport 631 -j ACCEPT -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A OUTPUT -p udp -m udp --sport 631 -j ACCEPT -A SORTIE -p tcp -m tcp --sport 631 -j ACCEPTER
Email = Nous pouvons activer les différents protocoles de messagerie
# IMAP -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 993 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 993 -j ACCEPT
# POP3 -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 995 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 995 -j ACCEPT
# SMTP -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 465 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 465 -j ACCEPT
SSH = Activer les connexions sécurisées à l'ordinateur à l'aide du protocole SSH
# Entrée -A INPUT -i ens3 -p tcp -m state --state NOUVEAU, ÉTABLI --dport 22 -j ACCEPT -A OUTPUT -o ens3 -p tcp -m state --state ÉTABLI --sport 22 -j ACCEPT
# Sortie -A SORTIE -o ens3 -p tcp -m état --état NOUVEAU, ÉTABLISSÉ --dport 22 -j ACCEPTER -A ENTRÉE -i ens3 -p tcp -m état --état ÉTABLISSÉ --sport 22 -j ACCEPTER
DHCP : Nous pouvons créer des règles pour autoriser l'adressage IP via DHCP
-A INPUT -i eth0 -p udp -m state --state ESTABLISHED, RELATED --sport 67:68 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --dport 67:68 -j ACCEPT
Rejeter toutes les connexions : nous pouvons ajouter les lignes suivantes pour désactiver tout ce qui précède :
-A ENTREE -j REJET -A FORWARD -j REJET -A SORTIE -j REJET
Toutes ces lignes seront ajoutées dans le fichier mentionné :
AGRANDIR
Nous enregistrons les modifications
Ctrl + O
Nous quittons l'éditeur en utilisant
Ctrl + X
4. Importer les règles à l'aide d'Iptables Linux
Une fois le fichier édité, nous pouvons importer ces règles dans Iptable en exécutant la commande suivante :
sudo iptables -F && sudo iptables -XOn peut voir l'état des règles à l'aide de la commande sudo iptables -S :
AGRANDIR
Dans le cas où nous souhaitons restaurer toutes les règles, nous exécuterons la ligne suivante :
sudo iptables-restore </ tmp / itpables-ip4Si nous voulons que ces règles soient permanentes, nous exécuterons ce qui suit :
sudo apt installer iptables-persistentDe cette façon, Iptables est notre meilleur allié lors de la configuration du pare-feu dans les environnements Linux.