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é?

Ph0en1x
la source

Réponses:

18

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

nux
la source
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.

MeOMy
la source
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.

Stavarengo
la source
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
mikebridge
la source