[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux-team] IP Aliasing et ports + note interssante



At 14:59 12/02/2001 +0100, you wrote:
Si je définis un IP aliasing, je devrais pourvoir faire
tourner deux serveurs sur le même port, mais chacun sur
une IP différente, non ?
En effet, il suffit que le serveur fasse un bind sur l'IP spécifique.

Petite explication théorique sur le sujet pour expliquer un truc important à savoir.

Quand un serveur se met à l'écoute sur un port précis, il fait un bind(). Jusque là c'est simple. En général, il fait un bind sur l'adresse IP 0.0.0.0 (IN_ADDR_ANY) parfois noté *.
Dans le cas comme ici pour les interfaces multiples, on peut faire un bind sur une IP précise. Par exemple, chez moi, le routeur vers internet a tous ses services en bind sur 127.0.0.1 et 10.x.x.x. Ainsi, personne ne voit de service à l'écoute sur internet.
Jusque là, c'est bien.

La différence maintenant entre Linux, Windows et certains Unix, c'est quand tu fais un bind spécifique sur port qui a déjà un bind général.
Genre, mon programme "bofklet" écoute le port 1234 et fait naturellement un bind *.1234.
Un utilisateur mal intentionné lance netcat -l -p1234 -s10.11.12.13 pour se mettre à l'écoute sur 10.11.12.13.1234.
Sur Linux, il se fait jeter avec "address already in use".
Sur Windows NT (j'ai pas essayé 2000), AIX et plein d'autres, le netcat est à l'écoute ET PRIORITAIRE ! La prochaine connexion sur le port 1234 de cette machine sera sur le netcat !! Alors, imaginez un programme qui relaye la connexion au port localhost.1234 mais sauve au passage les données...

Bien sûr, un utilisateur ne peut "rebinder" que les ports au-delà de 1024 sans les droits root mais bon, c'est quand même bon à savoir... Pensez aussi aux risques pour un firewall qui laisse passer un protocole applicatif qui peut se faire rediriger innocemment sur le port telnet... (nc -l ne prendra que la 1e connexion, les autres iront normalement. Pratique...)

Eric.


[ linux-team@rtfm.be and linux@lists.linuxbe.org in ONE :) ]
[ To subscribe or unsubscribe, go to http://linuxbe.org/ml.php ]
[ http://LinuxBe.org - http://OpenBe.net - listmaster@linuxbe.org ]