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.