PARE-FEU : Iptables port forwarding

Bonsoir,
j’utilise depuis peu des serveurs debian et j’ai un petit soucis …
Admettons j’ai deux serveur ( [color=#408000]A/color et B (108.61.221.50) )

J’aimerais que les gens qui se connectent sur 108.61.221.50:6587 arrivent sur 37.187.34.50:9987
Et ce, pour d’autres port …
J’ai fais pas mal de recherches et je trouve pas mon bonheur, pouvez vous m’aider ?

Cordialement.

salut,

au levé du lit avec meme pas le premier café dans le gosier, je répond iptables
iptables -t nat -A PREROUTING -d 108.61.221.50 -i eth0 -p tcp -m tcp --dport 6587 -j DNAT --to-destination 37.187.34.50:9987

et oublie pas d activer le forwarding dans ton /etc/sysctl.conf

net.ipv4.ip_forward=1

Voila a tester j ai qu un demi café :033

Wazaa, merci de formater ton titre correctement, conformément à la règle (en éditant ton 1er post)

[quote=“ivanb”]iptables -t nat -A PREROUTING -d 108.61.221.50 -i eth0 -p tcp -m tcp --dport 6587 -j DNAT --to-destination 37.187.34.50:9987
et oublie pas d activer le forwarding dans ton /etc/sysctl.conf

[mono]-i eth0[/mono] et [mono]-p tcp[/mono] me semblent présomptueux, Wazaa n’a pas indiqué par quelle interface les paquets destinés à 108.61.221.50 arrivaient ni quel était le protocole utilisé.

Il faut aussi ajouter quelques conditions que la machine qui va réaliser la redirection doit remplir pour que ladite redirection fonctionne :

  • elle doit se trouver sur le chemin réseau entre les machines clientes et 108.61.221.50, c’est-à-dire que les paquets envoyés à cette adresse doivent passer par elle (c’est évidemment le cas si cette adresse appartient à la machine) ;
  • elle doit se trouver sur le chemin réseau entre 37.187.34.50 et les machines clientes, c’est-à-dire que les paquets envoyés depuis le serveur qui a cette adresse vers les clients doivent passer par elle.

Bonjour,
tout d’abord merci pour vos réponses, et désolé pour le titre incorrect de mon post.
J’ai oublié de préciser, je passe par eth0, j’utilise le protocole udp (teamspeak) et j’aimerais que les personnes qui passent par 108.61.221.50:6587 utilisent cette ip et non leur véritable ip.
J’ai vu quelque part qu’il fallait que je passe par une règle SNAT mais j’en suis pas sure …

Cordialement.

Si le flux à rediriger est en UDP, il faut remplacer [mono]tcp[/mono] par [mono]udp[/mono] dans la règle qui a été proposée plus haut. D’autre part si la machine n’a qu’une seule interface réseau, il n’est pas très utile de spécifier l’option -i.

Si par “utiliser cette ip” tu veux dire remplacer l’adresse source des paquets redirigés par l’adresse 108.61.221.50, alors effectivement il faut ajouter une règle en sortie avec la cible SNAT :

(à ce stade l’adresse et le port destination des paquets ont déjà été modifiés par la règle DNAT, donc il faut faire la correspondance sur l’adresse et le port destination finaux)

Pourquoi vouloir masquer l’adresse source réelle du client au serveur final ? Cela a des inconvénients en terme de journalisation, identification…

Note : Une alternative à la combinaison DNAT+ip_forward+SNAT est l’utilisation d’un relais de port pouvant fonctionner en UDP, comme [mono]socat[/mono] ou [mono]stone[/mono].

J'ai le message [code]iptables: Invalid argument. Run `dmesg' for more information[/code]

[quote]Pourquoi vouloir masquer l'adresse source réelle du client au serveur final ? Cela a des inconvénients en terme de journalisation, identification...[/quote]

C'est justement pour masquer certaines ip sur mon serveur vocal.

Merci pour l’intérêt que tu y met sur mon post !

J’ai le message iptables: Invalid argument. Run `dmesg' for more information

C’est justement pour masquer certaines ip sur mon serveur vocal.

Merci pour l’intérêt que tu y met sur mon post !

Il faut remplacer les deux occurences de [mono]tcp[/mono]. Ta règle dit que tu veux sélectionner les paquets selon le protocole UDP ([mono]-p udp[/mono]) et un port TCP ([mono]-m tcp --dport 6587[/mono]), c’est incohérent.

[quote=“PascalHambourg”]
[mono]-i eth0[/mono] et [mono]-p tcp[/mono] me semblent présomptueux, Wazaa n’a pas indiqué par quelle interface les paquets destinés à 108.61.221.50 arrivaient ni quel était le protocole utilisé.[/quote]

C etait a titre d’exemple :laughing:

A lui apres d adapter a ses besoins , et tu l as tres bien guidé par la suite

L’expérience montre que si on ne précise pas explicitement qu’il s’agit d’un exemple à adapter à sa propre situation, les gens ont tendance à appliquer les commandes indiquées littéralement.