[Linux] [MASQUERADING] Les ports, c'est quoi ?
Éric Bischoff
eric.bischoff.fr@::1
Mer 18 Aou 19:06:46 CEST 2021
Salut le Toine,
Le mardi 17 août 2021, 14:33:42 CEST Antoine Delaporte a écrit :
> (...)
> Bon. Ma question est : quel est ce f...u range par defaut ?
>
> J'ai trouvé comment le parametré via ipables (et j'etais tellement
> persuadé que cela se reglé via le /proc...)
>
> pex "*iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports
> 1024-31000*" (issue de
> https://inetdoc.net/guides/iptables-tutorial/masqueradetarget.html )
>
> Mais cela ne me donnes pas la valeur par defaut !!!
La RFC 2663 constate l'usage suivant :
https://datatracker.ietf.org/doc/html/rfc2663#section-2.4
For most TCP/IP hosts, TU port range 0-1023 is used by servers
listening for incoming connections. Clients trying to initiate a
connection typically select a source TU port in the range of 1024-
65535. However, this convention is not universal and not always
followed. Some client stations initiate connections using a source TU
port number in the range of 0-1023, and there are servers listening
on TU port numbers in the range of 1024-65535.
donc en gros "l'habitude c'est de piocher des ports dans les ports
utilisateurs, au-dessus de 1024, mais ce n'est pas normalisé".
Dans le cas particulier du noyau Linux et de la commande iptables, j'ai
l'impression que c'est cette règle par défaut qui s'applique:
https://www.frozentux.net/iptables-tutorial/chunkyhtml/x4422.html
(masquerade, fait référence à snat:)
https://www.frozentux.net/iptables-tutorial/chunkyhtml/x4679.html
iptables will always try to avoid making any port alterations if
possible, but if two hosts try to use the same ports, iptables will
map one of them to another port. If no port range is specified, then if
they're needed, all source ports below 512 will be mapped to other ports
below 512. Those between source ports 512 and 1023 will be mapped to ports
below 1024. All other ports will be mapped to 1024 or above.
Donc, en gros toujours, iptables chercherait à respecter les limites de 512 et
1024, en restant aussi bien en-dessous qu'au-dessous .
Et si j'ai bien compris, une fois que la commande iptables a déterminé
l'intervalle, il le passe au noyau, qui obéit.
À prendre avec de très très grosses pincettes... la doc ci-dessus est pour
iptables 1.2.1, on en est plutôt à la version 1.8.4, et il y a une grosse dose
d'interprétation dans ce que je raconte.
--
Éric Bischoff
Plus d'informations sur la liste de diffusion linux