Ip Forward Debian
Je n'invente vraiment rien en écrivant ce post. Pour donner une chance de plus aux personnes qui se demandent comment faire, et comme aide-mémoire pour moi, je vais expliquer brièvement comment on fait de l'Ip Forward sur Debian.
Il faut savoir que chaque règle écrire fera le vol au prochain reboot, donc il faut faire un script qui se lancera a chaque boot.
Toutes les opérations suivantes devront être faites en root.
vim /etc/sysctl.conf
Dans ce fichier, en met à 1 cette option (si elle n'existe pas, ajoutez-la), sans oublier de la décommenter :
net.ipv4.ip_forward = 1
echo "#!/bin/sh" > /etc/init.d/ipForward.sh
vim /etc/init.d/ipForward.sh
On vide les tables FILTER, NAT et MANGLE :
# Vidage table FILTER
iptables -F
iptables -X
# Vidage table NAT
iptables -t nat -F
iptables -t nat -X
# Vidage table MANGLE
iptables -t mangle -F
iptables -t mangle -X
- La machine (A) qui reçoit les requêtes est "192.168.0.5"
- La machine (B) vers laquelle on va rediriger les requêtes est "192.168.0.10"
- Le port utilisé pour A est 1234
- Le port utilisé pour B est 5678
- Interface de A : eth0
- Protocole : TCP
Si on schématise :
Client ---> A:1234 ---> B:5678
On ajoute :
iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0
iptables -t nat -A PREROUTING -p tcp -i eth0 -d 192.168.0.5 --dport 1234 -j DNAT --to-destination 192.168.0.10:5678
iptables -A FORWARD -p tcp -i eth0 -d 192.168.0.10 --dport 5678 -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0
#!/bin/sh
# Vidage table FILTER
iptables -F
iptables -X
# Vidage table NAT
iptables -t nat -F
iptables -t nat -X
# Vidage table MANGLE
iptables -t mangle -F
iptables -t mangle -X
iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0
iptables -t nat -A PREROUTING -p tcp -i eth0 -d 192.168.0.5 --dport 1234 -j DNAT --to-destination 192.168.0.10:5678
iptables -A FORWARD -p tcp -i eth0 -d 192.168.0.10 --dport 5678 -j ACCEPT
On peut bien sur enchainer les règles.
On peut regarder les différentes règles crées avec :
iptables -L -v -n -t nat
Ce qui doit donner quelque chose comme :
Chain PREROUTING (policy ACCEPT 326 packets, 25473 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 192.168.0.5 tcp dpt:1234 to:192.168.0.6:5678
Chain POSTROUTING (policy ACCEPT 12 packets, 1972 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 75 packets, 12605 bytes)
pkts bytes target prot opt in out source destination
Voila

Matrix-Synapse : migrer de SQLite à PostgreSQL
Matrix-Synapse est un service de messagerie décentralisé et interopérable avec d'autres mess…

Détecter les vulnérabilités dans les dépendances de son projet
La gestion des dépendances dans un projet est quelque chose de complexe. Il y a autant de ge…

Sharepoint Office365 sur Linux : automatiser l'authentification (v2)
En septembre 2018, je publiais un article pour automatiser l'authentification sur Sharepoint…
- J'ai cherché des heures sur Internet comment forwarder une IP avec iptables. C'est le seul blog qui m'a donné une réponse qui fonctionne...
J'ai juste eu à changer eth0 par eth1 et tout fonctionne à merveille.
Mon but était de forwarder un accès FTP d'une adresse/IP publique vers une autre adresse/IP public
Merci merci
- Au plaisir :)