Je reçois des connexions à mon serveur à partir de plusieurs adresses IP. Je souhaite acheminer ces connexions comme le fait rinetd, mais sur la base de l'adresse IP d'où provient la connexion pour se connecter à un hôte spécifié.
Juste comme ça:
IP 10.10.12.1 => CONNECTS TO MY SERVER => MY SERVER REDIRECTS IT TO 82.12.12.1
IP 10.10.12.2 => CONNECTS TO MY SERVER => MY SERVER REDIRECTS IT TO 81.121.12.10
etc
Est-il possible ou dois-je écrire mon propre démon pour obtenir cette fonctionnalité?
iptables
peut faire cela:
Sudo iptables -t nat -A PREROUTING -s 10.10.12.1 -j DNAT --to 82.12.12.1
Sudo iptables -t nat -A POSTROUTING -s 10.10.12.1 -d 82.12.12.1 -j MASQUERADE
La première commande modifie l'adresse de destination du paquet et le redirige vers l'hôte externe. La deuxième commande change l'adresse source afin que l'hôte externe puisse envoyer une réponse à votre serveur.
Vous souhaiterez probablement rediriger uniquement les paquets destinés à des ports spécifiques, par exemple. si 10.10.12.1 parle à 82.12.12.1 uniquement via TCP ports 80 et 1234, la première commande iptables
serait:
Sudo iptables -t nat -A PREROUTING -s 10.10.12.1 -p tcp -m multiport --destination-ports 80,1234 -j DNAT --to 82.12.12.1