web-dev-qa-db-fra.com

Tous les ports sont fermés jusqu'à ce qu'ils soient ouverts manuellement par l'utilisateur? Est-ce vrai?

Je suis nouveau sur Linux et Ubuntu. J'ai googlé et lu des articles indiquant que tous les ports sont fermés jusqu'à ce qu'ils soient ouverts manuellement par l'utilisateur. Est-ce correct?

Et qu'entendez-vous par "écouter sur un port" et "un port est établi" en termes simples?

2
n00b

J'ai googlé et lu des articles indiquant que tous les ports sont fermés jusqu'à ce qu'ils soient ouverts manuellement par l'utilisateur. Est-ce correct?

Cela dépend de ce que vous voyez comme "utilisateur". L'utilisateur ne dit généralement pas "hé, ouvrez le port X". Les services système (tels que CUPS pour l'impression, port UDP/TCP 631) ouvrent un port d'écoute. D'autres exemples incluent un serveur HTTP (port TCP 80), un serveur DNS (port UDP 53) et un serveur SMTP (courrier) (port TCP 25).

Jusqu'à présent, je n'ai mentionné que les ports, mais un programme doit également spécifier une adresse pour commencer à écouter. Il est important de comprendre que les programmes peuvent écouter localement (adresse IPv4 127.0.0.1, adresse IPv6 ::1) ou à une adresse telle que le service devient accessible par autre périphériques sur votre nwtwork (en utilisant votre adresse réseau, par exemple 10.0.1.4). Il existe également une "adresse générique" (0.0.0.0 pour IPv4, :: pour IPv6) également accessible à distance.

Les ports sont en effet "fermés" jusqu'à ce qu'un programme commence à l'écouter.

La commande Sudo netstat -tulpn peut être utilisée pour afficher les programmes TCP/UDP en écoute. Sur une installation de bureau Ubuntu par défaut, ceci indique:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      2254/dnsmasq    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1346/cupsd      
tcp6       0      0 ::1:631                 :::*                    LISTEN      1346/cupsd      
udp        0      0 0.0.0.0:59296           0.0.0.0:*                           1152/avahi-daemon: 
udp        0      0 127.0.0.1:53            0.0.0.0:*                           2254/dnsmasq    
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1684/dhclient   
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           1152/avahi-daemon: 
udp6       0      0 :::5353                 :::*                                1152/avahi-daemon: 
udp6       0      0 :::53537                :::*                                1152/avahi-daemon: 

Vous pouvez voir ici qu'avahi-daemon est accessible sur le réseau via les ports UDP 59296, 5353 et 53537. Les deux derniers sont standard pour avahi-daemon, la première est une adresse aléatoire probablement communiquée à l'aide des deux autres ports. Ce démon est utilisé pour "la découverte du réseau" et vous permet de faire des choses comme "le partage de fichiers". Un client DHCP écoute également globalement sur le port UDP 68.

Certains services n'écoutent que localement et ne sont pas accessibles via le réseau. Il s'agit du service de cache DNS Dnsmasq (port UDP 53) et du service d'impression CUPS (TCP 631).

Et qu'entendez-vous par "écouter sur un port" et "un port est établi" en termes simples?

Il n'y a pas de notion de "port établi", seulement une "connexion établie". Un port ouvert à l'écoute est sauvegardé par un programme qui s'intéresse aux données circulant dans ce port. Ces ports sont généralement statiques, HTTP s'exécute sur TCP port 80, DNS sur le port UDP 53. Ces normes permettent à d'autres périphériques réseau de trouver rapidement votre service.

Une connexion TCP est établie lorsque les deux périphériques réseau conviennent qu'ils veulent se parler.

5
Lekensteyn

Cette déclaration est pas correcte. Il est vrai que très peu de services sont installés par défaut. Et là où aucun service n’attend d’être contacté/demandé (c’est ce que signifie "écouter"), il n’est pas nécessaire de fermer ce port.

Mais par défaut, chaque service installé est en cours d'exécution et aucune règle de pare-feu n'est définie pour empêcher quiconque de contacter le service.

En ce qui concerne la question supplémentaire: les "ports" sont comme des numéros de poste, ils désignent un programme qui parle via ce numéro. Un numéro de poste désigne une personne ou un service dans une entreprise.

3
guntbert