Cette semaine je me suis posé une question en écrivant un validateur pour le fichier de configuration d'une application: est-ce que je dois autoriser mon application à se connecter au port TCP 0?
La réponse est non, a priori. Ce port est marqué réservé dans la liste des ports de l'IANA, et avec les APIs POSIX, ce n'est pas possible de faire un serveur écoutant sur ce port: le système choisira un autre port au hasard.
Cependant, sur internet, des paquets circulent qui utilisent ce port, aussi bien comme source que comme destination. Qui sont ils? Ou vont-ils? Certaines réponses se trouvent dans cet article.
On y trouve donc:
- Du traffic généré pour faire du DDoS (qui s'attaque à tous les ports, y compris celui-ci)
- Du scanning de ports, mais ça n'a pas l'air d'être un des outils connus (par exemple en utilisant le port 0 comme port source pour scanner d'autres ports)
- Enfin, du fingerprinting, en utilisant des flags TCP un peu inhabituels, il est possible d'identifier le système d'exploitation qui répond à ces paquets
# on en apprend tous les jours !
Posté par nsbs . Évalué à 10.
Merci beaucoup d'avoir partagé cela !
Ça part d'une question à priori bête (je ne m'étais jamais posé par manque de curiosité), mais qui débouche sur des liens super intéressants.
C'est un peu un des mécanismes de la vulgarisation scientifique :)
# Noyau Linux
Posté par Benoît Sibaud (site web personnel) . Évalué à 10.
Merci pour ce partage.
Et l'info de l'article de 2015 est toujours vraie : source du noyau Linux : https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/ipv4/inet_connection_sock.c?h=v5.12-rc7#n350
[^] # Re: Noyau Linux
Posté par gUI (Mastodon) . Évalué à 2.
Je ferais mon chieur, je demanderais la RFC qui stipule ce comportement, ou au moins qui indique que le port 0 n'est pas utilisable.
Mais bon, je ne suis pas un chieur, donc ça ira
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Noyau Linux
Posté par raphj . Évalué à 8.
Le port zéro est indiqué comme réservé page 9 dans la RFC 1340, en TCP comme en UDP.
Cette RFC est rendu obsolète par transitivité par la RFC 3232 :
Je n'ai pas trouvé l'info sur iana.org après 5 minutes de recherche et j'ai abandonné. Je suis un peu perdu, ça ne ressemble pas du tout à une RFC.
[^] # Re: Noyau Linux
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 5. Dernière modification le 18 avril 2021 à 17:15.
C'est le premier lien dans le journal, la liste des ports TCP et UDP avec une recherche sur ceux qui sont "réservés". Il n'y a pas plus de détails.
Mais ça n'indique pas l'API "choix d'un port au hasard". Cependant, s'agissant d'une API, c'est plutôt du côté de la spécification POSIX que des RFC qu'il faudrait chercher.
[^] # Re: Noyau Linux
Posté par Krunch (site web personnel) . Évalué à 5.
Je trouve rien à ce sujet dans POSIX:2001 mais ça existe effectivement depuis au moins 4.2 BSD : https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.2BSD/usr/src/sys/netinet/in_pcb.c
if (lport == 0)
do {
if (head->inp_lport++ < IPPORT_RESERVED)
head->inp_lport = IPPORT_RESERVED;
lport = htons(head->inp_lport);
} while (in_pcblookup(head, zeroin_addr, 0, inp->inp_laddr, lport, 0));
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# Port 22
Posté par barmic 🦦 . Évalué à 10. Dernière modification le 18 avril 2021 à 17:18.
Récemment c'est l'histoire du port 22 que j'ai lu (The story of getting SSH port 22).
En particulier Tatu Ylonen (concepteur de SSH) a choisi 22 car il voulait remplacer telnet (port 23) et ftp (port 21) et quand il a demandé l'obtention de à l'IANA a reçu un mail surprenant de simplicité :
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll
[^] # Re: Port 22
Posté par liberforce (site web personnel) . Évalué à 1. Dernière modification le 19 avril 2021 à 00:49.
C'est pas trop la simplicité qui m'étonne, mais plutôt le fait qu'il s'est écoulé 14 heures entre la demande et l'obtention, avec la RFC d'un nouveau protocole mettant en avant la sécurité qui était jointe à la demande. Donc soit les décideurs étaient des brutes (et ils l'étaient), soit la sécurité craignait un max (et elle craignait), mais ça me parait quand même super court pour l'audit d'un nouveau protocole qui se dit sécurisé. Sans compter qu'on ne leur a même pas fourni l'implémentation, qui aurait aussi potentiellement pu être moisie. Autres temps…
[^] # Re: Port 22
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 10.
Si j'ai bien compris la réponse, c'était "ok, on a réservé le port 22 pour SSH". Ils ne disent pas avoir audité et validé le RFC pour SSH.
C'est ça qui est fou en fait: l'auteur de SSH a pris pas mal de temps à faire son mail pour demander la réservation du port, il a pris la peine de joindre un brouillon de RFC et d'avoir une version stable presque prête et le lendemain (très rapidement) on lui répond juste "ok" 😅
[^] # Re: Port 22
Posté par barmic 🦦 . Évalué à 6.
Je comprends la réaction de libreforce. Si ssh n'avait pas eu ce succès, on aurait un port réservé pour rien, mais je pense qu'on se formalise beaucoup aujourd'hui. Si tu regarde la liste des ports réservés, il y a pas mal de réservations qui sont inutiles (le plus connu c'est le port 666 pour doom, mais il y en a des dizaines d'autres).
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll
[^] # Re: Port 22
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Tout à fait. Et j'en suis perso arrivé à la conclusion que ce groupe maintien surtout la liste des ports officiels et n'est pas là pour enquiquiner les gens qui font une demande de réservation (mais ça a peut-être évolué depuis.) Cependant, rien ne nous dit qu'ils ne lisent pas, bien que ne se formalisant pas de plus de question que ne l'aurait voulu les gens en face (après tout, la norme sous-jacente n'est pas vraiment de leur domaine/compétence) :
ftp
(21) ettelnet
(23) ou un truc du genre, bah ça tombe bien 22 est libre“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Port 22
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 7.
La RFC https://tools.ietf.org/html/rfc6335 explique les procédures non seulement pour demander la réservation d'un port, mais aussi la façon dont les ports peuvent être révoqués à la demande de la personne qui a fait la réservation, ou sur décision de l'IANA (c'est une nouveauté par rapport aux versions précédentes de la RFC).
Ils ont aussi calculé que au rythme actuel d'allocation des ports, on était tranquilles pour 85 ans avant de devoir ré-allouer des ports. On peut espérer que d'ici là, FTP sera bien mort et enterré?
[^] # Re: Port 22
Posté par liberforce (site web personnel) . Évalué à 3.
Oui, ma remarque était sur le fait que le port risquait d'être alloué pour rien. Je ne savais pas que cela pouvait être révoqué par la suite, surtout vu l'âge des protocoles qu'on trouve dans les ports réservés, certains plus vraiment populaires. Cela explique l'apparente facilité à avoir un port.
[^] # Re: Port 22
Posté par J Avd . Évalué à 2.
Mouais,
C'est juste une demande de réservation de port… Que tu demandes 22 ou 34 ne va rien changer à la sécurité…
En plus eux aussi on du trouver ça cool d'avoir un remplaçant telnet/ftp juste au milieu…
j'avais toujours trouvé ça bizarre d'avoir 22 avant 23, j'imaginais que c'était ouvert dans l'ordre de création des protocoles :D et du coup c'était pas logique :)
"Gentoo" is an ancient african word, meaning "Read the F*ckin' Manual". "Gentoo" also means "I am what I am because you all are freaky n3rdz"
[^] # Re: Port 22
Posté par liberforce (site web personnel) . Évalué à 4.
Mon propos était que si les ports étaient alloués définitivement, on serait plus enclin à vérifier que le protocole/logiciel en question n'est pas bidon pour ne pas "gaspiller" un port.
Mais indiqué plus haut, la réservation peut être révoquée à tout moment, donc effectivement, on s'en fout.
[^] # Re: Port 22
Posté par octane . Évalué à 6.
bah c'est y'a longtemps. A cette époque, des numéros de ports il y en avait pleins. Le mec justifie sa demande par une explication pas trop mal branlée, le gars est d'accord, bim port 22.
c'est juste une association port <-> service, pas une revue formelle de protocole. Les ports peuvent changer, les associations aussi, personne t'empêche de dévier de ce fichier, donc y'a pas de risque à accepter.
Faut pas oublier que pendant longtemps, le DNS c'était un fichier texte /etc/hosts que les gens s'envoyaient par ftp et par mail (si si). Les gars se connaissaient tous par leurs prénoms et ça déconnait pas mal (les RFC du premier avril, le "I'm a teapot" etc…)
Tout ça pour dire que 14h, ouais, ça me parait pas anormal.
# museum of broken packets
Posté par Krunch (site web personnel) . Évalué à 6.
Voire aussi https://lcamtuf.coredump.cx/mobp/
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# Commentaire supprimé
Posté par Anonyme . Évalué à 6.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: À lire cette archive de 2013
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
En même temps, le clan des Mc Leod (surtout Connor et Duncan) était déjà là pour le port 0.A.D, et même avant.
# Idem
Posté par David . Évalué à 2. Dernière modification le 18 avril 2021 à 21:37.
Je me suis posé la même question cette semaine pour les raisons et je suis arrivé aux mêmes conclusions :p, mais je n'ai pas eu l'idée d'en faire un journal. Félicitation pour ta démarche !!!
# Gruik
Posté par devnewton 🍺 (site web personnel) . Évalué à 6.
C'est dommage d'utiliser un numéro pour identifier un service. Ce serait plus simple avec une url !
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: Gruik
Posté par J Avd . Évalué à 2.
🤣
"Gentoo" is an ancient african word, meaning "Read the F*ckin' Manual". "Gentoo" also means "I am what I am because you all are freaky n3rdz"
[^] # Re: Gruik
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 5.
Alors en fait, les numéros de ports sont associés à des noms et on peut utiliser par exemple getaddrinfo() pour faire la résolution du nom vers le numéro correspondant.
# Waouh !
Posté par J Avd . Évalué à 3.
Alors ton journal m'a permis de faire cette commande :
Et de m'apercevoir que :
J'en suis tout retourné 🙃
Du coup :
là on retombe sur ce que je connais
Mais du coup ?
a bien le même comportement.
Ok
#meCoucheraiMoinsCon
"Gentoo" is an ancient african word, meaning "Read the F*ckin' Manual". "Gentoo" also means "I am what I am because you all are freaky n3rdz"
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.