persistance du routage des ports de 80 à 8080


23

J'utilise l'instance amazon EC2 qui fonctionne via ubuntu. Par défaut, selon les restrictions de sécurité, je ne peux pas classer mon application sur le port 80, je le lie donc simplement au port 8080, puis je définis la redirection de routage du port 80 vers 8080 via la commande suivante:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080

Mais j'ai constaté que lorsque je redémarre le serveur, ces paramètres ne sont plus actifs jusqu'à ce que j'appelle à nouveau cette commande.

Ma question est donc de savoir comment activer le travail de redirection du port même si le système a été redémarré?

Réponses:


18

Vous pouvez ajouter cette commande /etc/rc.localafin qu'elle soit exécutée automatiquement après le redémarrage.


Je l'ai déjà fait, mais merci encore pour la réponse
Ph0en1x

bienvenue mon ami, c'est une bonne astuce
nux

2
Cela fonctionne, mais la vraie réponse est la réponse de @ MeOMy ci-dessous.
Dirk Groeneveld

15

Utilisez plutôt la commande iptables-save. Les règles de pare-feu ne doivent jamais entrer dans le script rc.local. rc.local est la dernière chose à exécuter. Si une règle de blocage a été placée dans rc.local, il y a un petit laps de temps où un attaquant peut exploiter une règle qui n'est pas en place. Bien que cela n'ait probablement pas d'importance dans cette situation, il est toujours préférable de ne pas prendre une mauvaise habitude qui pourrait vous mordre plus tard.


1
a exécuté "sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080" et "sudo iptables-save". Mais le routage a été réinitialisé au redémarrage. Ai-je mal compris comment procéder?
gromit190

2
La réponse est incomplète. iptables-save > some-file-pathenregistre les règles, puis vous les restaurez via iptables-restore < some-file-pathin rc.local. Ou installez iptables-persistentqui le fait lors du démarrage en tant que service.
Thomas Ward

J'aimerais comprendre comment procéder. Soyez plus précis, s'il vous plaît
gromit190

4

Voici comment nous enseigne la documentation officielle d'ipttable. Vois ici

Ajoutez ces deux lignes dans / etc / network / interfaces:
pre-up iptables-restore < /etc/iptables.rules post-down iptables-save > /etc/iptables.rules

La ligne "post-down iptables-save> /etc/iptables.rules" enregistrera les règles à utiliser au prochain démarrage.


Félicitations pour avoir utilisé la méthode officiellement recommandée et, dans ce cas, la méthode la plus simple, pour terminer cette tâche. Je ferais +2 si je pouvais utiliser la méthode KISS.
DeeJayh

0

J'ai découvert un ensemble de répertoires sur Ubuntu 16.04 dans /etc/networklesquels exécuter des scripts à différents moments pendant l'initialisation et l'arrêt du réseau:

if-down.d
if-post-down.d  
if-pre-up.d  
if-up.d
interfaces.d

J'ai donc trouvé que je pouvais vider la configuration comme d'habitude:

$ sudo sh -c "iptables-save > /etc/iptables.rules"

J'ai ensuite créé un fichier `/etc/network/if-pre-up.d/restore:

#!/bin/sh

iptables-restore < /etc/iptables.rules

... et l'a signalé comme exécutable

$ sudo chmod 755 /etc/network/if-pre-up.d/restore
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.