Gentoo/Rediriger un port vers un autre

Un article de Le wiki de 2 noisettes - noisette.ch.

Comment faire pour rediriger un port vers un autre ?

Pour illustrer ce problème, je vous propose un exemple concret : derière ma ligne ADSL, 2 serveurs sous Gentoo se tournent les pouces. Le problème est que les 2 devraient être accessibles depuis l'extérieur sur le port 22, mais le routeur ne permet pas, vu que je ne dispose pas d'un pool d'adresse. Alors je me dis : j'en configure un ssh sur le port 2222 et l'autre sur le 22, et le tour est joué. Mais une fois sur le réseau local, faire de ssh -p2222 c'est vite gonflant.

La solution à ce problème s'appelle rinetd, qui permet de rediriger les connexions d'un port sur un autre. Dans mon exemple, rediriger le port 2222 vers le 22, et dire au routeur que le port 2222 va vers le port 2222 de la machine où rinetd tourne. De l'extérieur je peux donc me connecter sur les 2 machines (port 22 et 2222), et de l'intérieur je n'ai rien besoin de changer.

Installation de rinetd sour Gentoo :

emerge rinetd

Puis édition du fichier /etc/rinetd.conf comme souhaité selon la syntaxe :

[Source Address] [Source Port] [Destination Address] [Destination Port]

Dans mon exemple :

0.0.0.0 2222 localhost 22

A noter aussi que le [Destination Address] peut être n'importe quel nom de domaine ou adresse ip, www.gentoo.org par exemple.

Ainsi

0.0.0.0 80 www.gentoo.org 80

permet d'accéder au site de Gentoo sans pour autant entrer le mon "gentoo" dans le navigateur.

Ce petit exemple nous montre comment bypasser des restrictions de proxy :

Si on a un compte sur une machine qui peut sortir du réseau, et que notre poste utilisateur est bloqué par un proxy/firewall, on lance sur la première machine rinetd qui avec par exemple dans le fichier de configuration 0.0.0.0 8080 www.gentoo.org 80

La redirection est transparente pour l'utilisateur, et pour le firewall, ça n'est plus le poste d'utilisateur qui essaye d'accéder à internet...