Introduction
La mise en place d'un pare-feu est une étape importante dans la sécurisation de la plupart des systèmes d'exploitation modernes. La plupart des distributions Linux sont équipées de différents outils de pare-feu que nous pouvons utiliser pour configurer notre pare-feu. Dans ce guide, nous expliquerons comment configurer le pare-feu Iptables sur Ubuntu 14.04.
Remarque : Ce tutoriel couvre la sécurité IPv4. Sous Linux, la sécurité IPv6 est maintenue séparément d'IPv4. Par exemple, "iptables" ne gère que les règles de pare-feu pour les adresses IPv4, mais il a un équivalent IPv6 appelé "ip6tables", qui peut être utilisé pour maintenir les règles de pare-feu pour les adresses réseau IPv6.
Commandes de base
Avant de suivre ce guide, vous devez avoir accès à un compte de superutilisateur non root, avec des privilèges sudo configurés sur votre serveur. Vous devez d'abord savoir que les commandes iptables doivent être exécutées uniquement avec les privilèges root. Pour implémenter cette condition, nous ajouterons "sudo" avant toutes les commandes de ce guide. Nous pouvons également nous connecter en tant qu'utilisateur root en utilisant les commandes "su" ou "sudo -i", mais nous nous en tiendrons à "sudo" pour ce guide.
Au départ, nous devons trouver les règles actuelles qui sont configurées pour les iptables. Ceci est réalisé en utilisant la commande suivante :
# sudo iptables -L
Chain INPUT (policy ACCEPT)target prot opt source destination Chain FORWARD (policy ACCEPT)target prot opt source destination Chain OUTPUT (policy ACCEPT)target prot opt sourceNous pouvons également voir les règles actuelles dans un format plus simple en utilisant le drapeau -S au lieu du drapeau -L :
# sudo iptables -S-P ENTRÉE ACCEPTÉE-P TRANSFERT ACCEPTÉE-P SORTIE ACCEPTÉEDans les deux résultats, nous pouvons voir trois chaînes affichées comme INPUT, FORWARD et OUTPUT. Nous voyons également que la politique par défaut de chaque chaîne est définie sur ACCEPT , mais aucune règle réelle n'est définie dans les résultats ci-dessus. C'est parce qu'Ubuntu n'est pas livré avec un jeu de règles par défaut.
S'il existe des règles déjà configurées dans les Iptables, nous pouvons les vider complètement en utilisant l'indicateur -F comme suit :
Remarque :si vous videz les règles à distance, les stratégies des chaînes INPUT et OUTPUT doivent être définies sur ACCEPT. Cela peut être fait en tapant
# sudo iptables -P INPUT ACCEPT# sudo iptables -P OUTPUT ACCEPT# sudo iptables -FDéfinition des règles pour Iptables
Les règles pour iptables peuvent être définies de deux manières. Une façon consiste à autoriser la règle par défaut à ACCEPTER et à bloquer tout trafic indésirable en définissant des règles spécifiques. L'autre méthode consiste à configurer le trafic autorisé et à bloquer tout le reste. La deuxième méthode est souvent la préférée .
La première règle à attribuer est d'accepter tout le trafic entrant en tapant la commande suivante :
# sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTNous pouvons voir le résultat de la commande ci-dessus en utilisant à nouveau le drapeau -L.
# sudo iptables -LEntrée de la chaîne (Accept de politique) Target Prot Opt Source Destination Acceptez tous - partout où n'importe où CTSTAT est lié à la sortie de la chaîne de destination de la chaîne de destination de la chaîne de destination de la chaîne de la chaîne de la chaîne de la chaîne cible Prot-Forward.Ici, nous pouvons voir que la politique de la chaîne INPUT est modifiée par rapport à avant l'application de la règle.
L'étape suivante consiste à autoriser le trafic vers un port spécifique pour activer les connexions SSH. Cela peut être fait en suivant :
# sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPTER« ssh » se traduit par le numéro de port 22 par défaut. N'importe quel numéro de port peut être utilisé à la place de "ssh". Pour autoriser l'accès au serveur Web HTTP, saisissez la commande suivante :
# sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTERIl y a une autre règle ACCEPT qui doit être assignée à nos Iptables pour que notre serveur fonctionne correctement.
# sudo iptables -I INPUT 1 -i lo -j ACCEPTERAjout d'une règle de suppression
Jusqu'à présent, nous n'avons ajouté que des règles ACCEPT à nos Iptables. Nous devons également attribuer des règles de blocage, car tous les paquets réseau seront acceptés conformément aux règles attribuées à nos Iptables. Une façon consiste à affecter une règle DROP dans la politique par défaut de notre chaîne INPUT. Cela intercepte tous les paquets qui traversent notre chaîne INPUT et les supprime.
# sudo iptables -P INPUT DROPL'une des implications de ce type de conception est qu'il revient à supprimer des paquets si les règles sont vidées.
L'approche alternative consiste à conserver la stratégie par défaut pour la chaîne en tant qu'acceptation et à ajouter une règle qui dépose chaque paquet restant au bas de la chaîne elle-même.
Si vous avez modifié la stratégie par défaut pour la chaîne INPUT ci-dessus, vous pouvez la rétablir pour qu'elle suive en tapant :
# sudo iptables -P INPUT ACCEPTMaintenant, vous pouvez ajouter une règle au bas de la chaîne qui supprimera tous les paquets restants :
# sudo iptables -A INPUT -j DROPAvant d'enregistrer les Iptables, il est préférable de vérifier une fois les règles attribuées. Nos règles actuelles sont définies comme suit :
-P INPUT ACCEPT-P FORWARD ACCEPT-P OUTPUT ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -m conntrack --ctstate RELATED,ETABLISHED -j ACCEPT-A INPUT -p tcp -m tcp -- dport 22 -j ACCEPTER-A ENTRÉE -p tcp -m tcp --dport 80 -j ACCEPTER-A ENTRÉE -j ABANDONNEREnregistrement des règles Iptables
Par défaut, les règles Iptables seront effacées une fois le serveur redémarré. Pour enregistrer les règles Iptabels de manière permanente, les paramètres peuvent être enregistrés de différentes manières, mais la manière la plus simple consiste à utiliser le package "iptables-persistent". Cela peut être téléchargé à partir des dépôts par défaut d'Ubuntu :
# sudo apt-get update# sudo apt-get install iptables-persistentEnregistrez vos règles de pare-feu avec cette commande :
# sudo invoke-rc.d iptables-persistent savePour savoir comment configurer et enregistrer les règles de pare-feu à l'aide d'iptables-persistent sur Ubuntu 10.04/Debian 6.0, cliquez sur le lien ci-dessous :
Comment configurer et enregistrer Iptables-persistent pour Ubuntu 10.04/ Debian 6.0