Comment migrer les règles du pare-feu Iptables vers un nouveau serveur

introduction

Lors de la migration d’un serveur à un autre, il est souvent souhaitable de migrer les règles de pare-feu iptables dans le cadre du processus. Ce tutoriel vous montrera comment copier facilement votre jeu de règles iptables actif d’un serveur à un autre.

Conditions préalables

Ce tutoriel nécessite deux serveurs. Nous nous référerons au serveur source, qui possède les règles iptables existantes, en tant que * Serveur A *. Le serveur de destination vers lequel les règles seront migrées sera appelé * Serveur B *.

Vous devrez également avoir un accès superutilisateur, ou + sudo +, aux deux serveurs.

Voir les règles Iptables existantes

Avant de migrer vos règles iptables, voyons ce qu’elles sont configurées. Vous pouvez le faire avec cette commande sur * Server A *:

sudo iptables -S
Example output:-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -s 15.15.15.51/32 -j DROP

Les exemples de règles ci-dessus seront utilisés pour illustrer le processus de migration du pare-feu.

Règles d’exportation Iptables

La commande + iptables-save écrit les règles iptables actuelles dans` + stdout` (sortie standard). Cela nous donne un moyen facile d’exporter les règles de pare-feu dans un fichier, en redirigeant + stdout + vers un fichier.

Sur le * serveur A *, celui avec les règles iptables que vous souhaitez migrer, utilisez le + iptables-save + pour exporter les règles actuelles dans un fichier nommé «iptables-export» comme ceci:

cd ~
sudo iptables-save >

Cela créera le fichier + iptables-export, dans votre répertoire personnel. Ce fichier peut être utilisé sur un autre serveur pour charger les règles de pare-feu dans iptables.

Afficher le contenu du fichier (facultatif)

Voyons rapidement le contenu du fichier. Nous allons utiliser la commande + cat pour l’imprimer sur le terminal:

cat iptables-export
iptables-export contents:# Generated by iptables-save v1.4.21 on Tue Sep  1 17:32:29 2015
*filter
:INPUT ACCEPT [135:10578]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [8364:1557108]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -s 15.15.15.51/32 -j DROP
COMMIT
# Completed on Tue Sep  1 17:32:29 2015

Comme vous pouvez le constater, le fichier contient la configuration des règles iptables actives. Nous sommes maintenant prêts à copier ce fichier sur notre serveur de destination, * Server B *.

Copier les règles exportées sur le serveur de destination

Nous devons copier le fichier de règles sur notre serveur de destination, * Server B *. Le moyen le plus simple consiste à utiliser + scp + ou à copier et coller le contenu du fichier dans un nouveau fichier sur * Server B *. Nous montrerons comment utiliser + scp + pour copier le fichier sur le réseau dans le répertoire + / tmp +.

Sur le * Serveur A *, exécutez cette commande + scp +. Assurez-vous de remplacer les parties en surbrillance par le nom de connexion et l’adresse IP de votre serveur:

scp iptables-export @:/tmp

Après avoir fourni une authentification appropriée, le fichier sera copié dans le répertoire + / tmp + sur le serveur B. Notez que le contenu de + / tmp + est supprimé lors d’un redémarrage. Vous pouvez le placer ailleurs si vous souhaitez le conserver.

Importer les règles d’Iptables

Avec les règles exportées sur le serveur de destination, vous pouvez les charger dans iptables. Toutefois, selon votre situation, vous pouvez souhaiter mettre à jour les règles du fichier avec de nouvelles adresses IP et de nouvelles plages, et éventuellement mettre à jour les noms d’interface. Si vous souhaitez modifier les règles avant de les charger, veillez à modifier le fichier + / tmp / iptables-export + maintenant.

Une fois que vous êtes prêt à charger les règles du fichier + iptables-export dans iptables, utilisons la commande` + iptables-restore` pour le faire.

Sur le * Serveur B *, le serveur de destination, exécutez cette commande pour charger les règles de pare-feu:

sudo iptables-restore < /tmp/iptables-export

Cela chargera les règles dans iptables. Vous pouvez le vérifier avec la commande sudo iptables -S +.

Enregistrer les règles

Les règles Iptables sont éphémères, il est donc important de veiller à ce qu’elles persistent après un redémarrage. Il est probable que vous souhaiterez effectuer cette étape sur * Server B *. Nous allons vous montrer comment sauvegarder les règles sur Ubuntu et CentOS.

Ubuntu

Sur Ubuntu, le moyen le plus simple de sauvegarder les règles iptables pour leur permettre de survivre à un redémarrage consiste à utiliser le paquet iptables-persistent. Installez-le avec apt-get comme ceci:

sudo apt-get install iptables-persistent

Au cours de l’installation, vous serez invité à indiquer si vous souhaitez enregistrer vos règles de pare-feu actuelles. Réponse + yes +, si vous souhaitez enregistrer le jeu de règles actuel.

Si vous mettez à jour vos règles de pare-feu et que vous souhaitez enregistrer les modifications, exécutez la commande suivante:

sudo invoke-rc.d iptables-persistent save

CentOS 6 et plus

Sur CentOS 6 et versions antérieures, CentOS 7 utilise FirewallD par défaut. Vous pouvez utiliser le script iptables init pour enregistrer vos règles iptables:

sudo service iptables save

Cela sauvegardera vos règles iptables actuelles dans le fichier + / etc / sysconfig / iptables +, qui sera chargé par iptables au démarrage.

Conclusion

Toutes nos félicitations! Vos règles de pare-feu ont été migrées de votre serveur d’origine vers votre nouveau.