[Linux] [MASQUERADING] Les ports, c'est quoi ?

Antoine Delaporte adlp@::1
Mer 18 Aou 20:04:25 CEST 2021


MERVEILLEUX !!!

FABULEUX !!!!


Pile poil ce que je recherchais comme explication !!!

25k merci !!!

(Bon, a Jean-Marc et Eric aussi, mais là, moi je dis chapi chapo 
chamallow, chapi chapo bravo !!!!!)


Merci les keums merci Daniel !



Le 18/08/2021 à 18:41, Daniel Huhardeaux a écrit :
> Complément
>
> Le 18/08/2021 à 14:55, Antoine Delaporte a écrit :
>
>
>> [...]
>>> . si je prends un poste IP SNOM il sort systematiquement avec le 
>>> port 2048 comme port source de l'IP publique.
>>
>> Bon, ca c'est plus sérieux, on tape dans mon acculturation : Selon 
>> une légende que j'ai entendu (ie, jamais pris le temps de regarder, 
>> ni comprendre comment ça marche) mais il existerais un mécanisme qui 
>> permettrais a un équipement Internet de se faire natter a l’extérieur 
>> sur un port particulier. Cela me dérange bcp intellectuellement (coté 
>> sécu c'est pas GG, c'est plutôt LéGé, pour LaGaffe Gaston)
>>
>> Donc si quelqu'un un jour s'ennuie, je ne suis pas contre un bon 
>> pointeur.
>
> Si déjà je m'ennuie, que ce soit pour la bonne cause :D
>
> dh@::1:~$ sudo cat /proc/sys/net/ipv4/ip_local_port_range
> 32768   60999
>
> J'ai réalisé le test sur Debian 10, Ubuntu 20 et RHEL8, même valeurs. 
> Info donnée par la liste NetFilter.
>
> En fait il semble que ce soit la source et non le NAT qui décide du 
> port source externe. qui sera rectifié par le FW si pas libre.
>
> Extraits:
> 1) Are you talking about SNAT/MASQUERADE?
>
> It will try to use whatever port is used.  If the source address
> replacement results in a collision, it tries to pick a different source
> port between 1024 and 65535. The initiator is free to pick whatever 
> source port they like
>
> 2) the port number for outgoing NATted connections is chosen from the 
> emphemeral port number range, which can be read and configured via the 
> /proc/sys/net/ipv4/ip_local_port_range file.
>
> While one probably could use NAT rules to force an outgoing connection 
> to use a particular source port, it would not make sense to do so 
> because that would lead to problems when two hosts on the internal 
> network would try to connect to the same outside service, since the 
> port tuple for both connections would be identical, which means that 
> they would be mapped to the same connection.
>
> I'm guessing that on the system that establishes an outgoing 
> connection, i.e. a SNOM phone, one can chose to use a fixed source 
> port programmatically by setting a port number in the sockaddr_in 
> structure that's passed to the connect() syscall. I'm presuming you'd 
> get a EADDRNOTAVAIL error when that port is already in use. You can 
> probably look this up in Stevens' TCP/IP Illustrated.
>
> 3) a tuple is "src-ip:src-port dst-ip:dst-port" and as long there is 
> no collision it's 1:1, if there is a collison a random port is used - 
> that's what conntrack is for
>
> 4) bind() fails for listener socket, connect() fails for outgoing (if 
> everything is full). On conntrack machine, connection tracking table 
> gets queried after SNAT to see if the new tuple is still unique.
>
> Ca te va ;) ?
>


Plus d'informations sur la liste de diffusion linux