- Vendredi 27 juillet 2018
- Uncategorized
Lorsque vous lisez des tutoriels sur la configuration des serveurs et les pare-feu, vous rencontrez souvent des adresses IP dans ce format :
La première partie vous est peut-être familière, mais celle qui suit les deux points ( 🙂 ne l’est peut-être pas. Ce chiffre (8080) représente un port réseau.
Une adresse IP est une séquence unique de chiffres qui représente une interface sur un réseau, souvent sur Internet. Avec une adresse IP, le réseau peut acheminer des paquets de données vers l’interface réseau d’un périphérique spécifique, qui peut être un serveur ou un routeur ou même votre téléphone.
Il y a beaucoup de programmes exécutés sur ces périphériques qui pourraient être intéressés à recevoir des données du réseau et à envoyer des données à d’autres périphériques. Mais l’adresse IP ne dit rien à l’appareil récepteur sur le programme auquel les données sont destinées. C’est le rôle du port réseau.
Dans chaque morceau de données envoyé sur une connexion TCP ou UDP (y compris HTTP (le web), SSH, FTP, DNS et la plupart des autres protocoles familiers), il y a un numéro de port source et un numéro de port de destination.
Ces numéros ne représentent pas une pièce d’équipement ou un port physique comme un port ethernet ou un port foudre. Ils sont une construction logicielle qui associe un processus qui fournit un service à des paquets de données qui ont le port de destination correspondant.
Un processus est un logiciel qui s’exécute sur le serveur. Un serveur web est un processus, tout comme les serveurs SSH, les serveurs FTP et les serveurs DNS. Chaque programme qui s’exécute sur un serveur est un processus.
Le système d’exploitation d’un serveur utilise des ports pour s’assurer que les données sont reçues par le bon processus, souvent en les délivrant à un morceau de mémoire mappé à cet effet. Les processus sont liés à un port spécifique, et – dans le cas des connexions TCP – un seul processus peut se lier à chaque port. Si plus d’un processus est lié à un port, il y aurait un conflit et les données pourraient ne pas être livrées au bon processus.
Les ports sont représentés par des nombres allant de 0 à 65535, le plus qui puisse tenir dans un entier non signé de 16 bits. Certains de ces numéros sont associés à des types de services particuliers. Les ports 0 à 1024 sont appelés ports bien connus et sont conventionnellement associés aux types de services réseau les plus courants. Les serveurs Web utilisent le port 80, les serveurs SSH le port 22, et ainsi de suite.
Les ports de 1024 à 49151 sont des ports enregistrés. Ils peuvent être enregistrés auprès de l’ICANN par des organisations pour être utilisés avec leurs logiciels. Les ports supérieurs à 49151 sont des ports privés qui peuvent être utilisés à des fins arbitraires.
Si vous exécutez la commande suivante sur votre serveur CentOS, vous pourrez voir une liste des ports et des services auxquels ils correspondent.
less /etc/services
Comprendre le fonctionnement des ports est utile dans diverses circonstances. Par exemple, de nombreux robots de force brute ciblent les serveurs SSH via le port 22. Vous pourriez vouloir associer SSH à un port différent afin que votre serveur n’ait pas à gérer des milliers de demandes de connexion illégitimes. Vous pouvez changer le port SSH pour l’un des ports privés (au-dessus de 49151) en modifiant le paramètre « Port » dans « /etc/ssh/sshd_config ». Les robots de force brute ne seront plus en mesure de le trouver. Si vous changez le port SSH, assurez-vous de vous souvenir de ce à quoi vous l’avez changé, sinon vous ne pourrez pas non plus vous connecter.
Les ports sont également utiles pour configurer les pare-feu et pour exécuter des serveurs de développement : il est courant d’utiliser le port 8080 comme alternative au port 80 pour les serveurs web.
Dans un prochain article, nous allons voir comment les ports sont utilisés pour sécuriser les serveurs CentOS avec le pare-feu iptables.