GNU/Linux >> Tutoriels Linux >  >> Linux

Ouvrir un port sous Linux

Avant d'apprendre à ouvrir un port sur Linux, comprenons ce que sont les ports réseau. Un port est un terminal de communication. Au sein d'un système d'exploitation, un port permet aux paquets de données des processus spécifiques ou des services réseau.

Généralement, les ports identifient un service réseau spécifique qui leur est attribué. Cela peut être modifié en configurant manuellement le service pour utiliser un port différent, mais en général, les valeurs par défaut peuvent être utilisées.

Le premier 1024 ports (Ports 0-1023 ) sont appelés numéros de port bien connus et sont réservés aux services les plus couramment utilisés, notamment SSH (port 22), HTTP et HTTPS (ports 80 et 443), etc. Les numéros de port supérieurs à 1024 sont appelés éphémères ports .

Parmi les ports éphémères, les numéros de port 1024-49151 sont appelés Enregistré/Utilisateur Ports. Le reste des ports, 49152-65535 sont appelés Dynamique/Privé Ports.

Dans ce didacticiel, nous montrerons comment ouvrir un port éphémère sous Linux, car les services les plus courants utilisent les ports bien connus.

Répertorier tous les ports ouverts

Avant d'ouvrir un port sur Linux, vérifions d'abord la liste de tous les ports ouverts et choisissons un port éphémère à ouvrir dans cette liste.

Nous pouvons utiliser le netstat commande pour lister tous les ports ouverts, y compris ceux de TCP , UDP , qui sont les protocoles les plus courants pour la transmission de paquets dans la couche réseau.

REMARQUE :Si votre distribution n'a pas netstat , Ce n'est pas un problème. Vous pouvez utiliser le ss commande pour afficher les ports ouverts via les sockets d'écoute.

netstat -lntu

Cela imprimera tous les écoutes sockets (-l ) avec le numéro de port (-n ), avec TCP ports (-t ) et UDP ports (-u ) également répertorié dans la sortie.

Juste pour nous assurer que nous obtenons des sorties cohérentes, vérifions cela en utilisant le ss commande pour lister les sockets en écoute avec un port ouvert.

ss -lntu

Cela donne plus ou moins les mêmes ports ouverts que netstat , nous sommes donc prêts à partir !

Ouverture d'un port sous Linux pour autoriser les connexions TCP

Ouvrons un port fermé et faisons-le écouter TCP Connexions, pour les besoins de cet exemple.

Depuis le port 4000 n'est pas utilisé dans mon système, je choisis d'ouvrir le port 4000 . Si ce port n'est pas ouvert dans votre système, n'hésitez pas à choisir un autre port fermé. Assurez-vous simplement qu'il est supérieur à 1023 !

Encore une fois, juste pour être sûr, assurons-nous que le port 4000 n'est pas utilisé, en utilisant le netstat ou le ss commande.

netstat -na | grep :4000
ss -na | grep :4000

La sortie doit rester vide, vérifiant ainsi qu'elle n'est pas utilisée actuellement, afin que nous puissions ajouter manuellement les règles de port au pare-feu système iptables .

Pour les utilisateurs Ubuntu et les systèmes basés sur un pare-feu ufw

Ubuntu a un pare-feu appelé ufw , qui prend en charge ces règles pour les ports et les connexions, au lieu de l'ancien iptables pare-feu. Si vous êtes un utilisateur Ubuntu, vous pouvez directement ouvrir le port en utilisant ufw

sudo ufw allow 4000

Vous pouvez ignorer les étapes suivantes et tester directement votre nouveau port !

Pour les systèmes basés sur CentOS et pare-feu

Pour ces types de systèmes, si vous avez firewalld comme pare-feu principal, il est recommandé d'utiliser le firewall-cmd pour mettre à jour vos règles de pare-feu, au lieu de l'ancien iptables pare-feu.

firewall-cmd --add-port=4000/tcp

REMARQUE :Cela réinitialisera le firewalld règles par défaut lors d'un redémarrage, donc si vous souhaitez modifier ce paramètre de manière permanente, ajoutez le --permanent drapeau à la commande.

firewall-cmd --add-port=4000/tcp --permanent

Vous pouvez ignorer les étapes suivantes et tester directement votre nouveau port !

Pour les autres distributions Linux

Ajoutons donc ce nouveau port à nos règles système iptables, en utilisant iptables commande.

Si cette commande n'est pas encore installée, récupérez-la à l'aide de votre gestionnaire de packages.

iptables -A INPUT -p tcp --dport 4000 -j ACCEPT

Cela définit le pare-feu pour ajouter (-A ) la nouvelle règle pour accepter les paquets d'entrée via le protocole (-p ) TCP où le port de destination (--dport ) est 4000 , et spécifie le saut cible (-j ) règle comme ACCEPTER .

Pour mettre à jour les règles du pare-feu, redémarrez iptables services.

sudo service iptables restart

OU en utilisant systemctl si vous l'avez.

sudo systemctl restart iptables

Testez le port nouvellement ouvert pour les connexions TCP

Maintenant que nous avons ouvert avec succès un nouveau TCP port (Port 4000 dans mon cas), testons-le.

Tout d'abord, nous allons démarrer netcat (nc ) et écoutez sur le port 4000, tout en envoyant la sortie de ls à tout client connecté. Ainsi, après qu'un client a ouvert une connexion TCP sur le port 4000, il recevra la sortie de ls .

ls | nc -l -p 4000

Cela fait que netcat écoute sur le port 4000. Laissez cette session tranquille pour l'instant.

Ouvrez une autre session de terminal sur la même machine.

Depuis que j'ai ouvert un port TCP, je vais utiliser telnet pour vérifier la connectivité TCP. Si la commande n'existe pas, encore une fois, installez-la à l'aide de votre gestionnaire de packages.

Format pour telnet :

telnet [hostname/IP address] [port number]

Entrez donc l'adresse IP de votre serveur et le numéro de port, qui est 4000 dans mon cas, et exécutez cette commande.

telnet localhost 4000

Ceci essaie d'ouvrir une connexion TCP sur localhost sur le port 4000.

Vous obtiendrez une sortie similaire à celle-ci, indiquant qu'une connexion a été établie avec le programme d'écoute (nc ).

Comme vous pouvez le voir, la sortie de ls (while.sh dans mon cas) a également été envoyé au client, indiquant une connexion TCP réussie !

Pour vous montrer que le port est bien ouvert, nous pouvons utiliser nmap pour vérifier cela.

nmap localhost -p 4000

En effet, notre port a été ouvert ! Nous avons ouvert avec succès un nouveau port sur notre système Linux !

REMARQUE :nmap répertorie uniquement les ports ouverts qui ont une application en cours d'écoute. Si vous n'utilisez aucune application d'écoute telle que netcat, cela affichera le port 4000 comme fermé, car aucune application n'écoute actuellement sur ce port. De même, telnet ne fonctionnera pas non plus, car il a également besoin d'une application d'écoute à laquelle se connecter. C'est la raison pour laquelle nc est un outil tellement utile. Cela simule de tels environnements dans une simple commande.

Mais ce n'est que temporaire, car les modifications seront réinitialisées à chaque redémarrage du système.

Besoin de mettre à jour les règles après chaque redémarrage

L'approche présentée dans cet article ne mettra à jour que temporairement les règles de pare-feu jusqu'à ce que le système s'arrête/redémarre. Des étapes similaires doivent donc être répétées pour ouvrir à nouveau le même port après un redémarrage.

Pour le pare-feu ufw

Le ufw les règles ne sont pas réinitialiser au redémarrage, donc si vous êtes un utilisateur d'Ubuntu, vous n'avez pas à vous soucier de cette partie !

En effet, il est intégré au processus de démarrage et le noyau enregistre les règles du pare-feu à l'aide de ufw , via les fichiers de configuration appropriés.

Pour pare-feu

Comme mentionné précédemment, firewalld souffre également du même problème, mais cela peut être évité en ajoutant un --permananent drapeau à la commande initiale, lors de l'ouverture d'un port ou de la définition de toute autre règle.

Par exemple, vous pouvez ouvrir le port TCP 4000 en permanence à l'aide de la commande ci-dessous :

firewall-cmd --zone=public --add-port=400/tcp --permanent

Pour iptables

Pour les iptables pare-feu, bien que cet inconvénient ne puisse être évité, nous pourrions minimiser les tracas.

Nous pouvons enregistrer les iptables règles dans un fichier de configuration, tel que /etc/iptables.conf .

sudo iptables-save | sudo tee -a /etc/iptables.conf

Nous pouvons ensuite le récupérer à partir du fichier de configuration après le redémarrage, en utilisant la commande ci-dessous :

sudo iptables-restore < /etc/iptables.conf

Maintenant, les iptables les règles sont maintenant mises à jour et nos ports sont à nouveau ouverts !

Conclusion

Dans ce didacticiel, nous vous avons montré comment ouvrir un nouveau port sous Linux et le configurer pour les connexions entrantes.


Linux
  1. Comment changer le port SSH sous Linux

  2. Linux – Port série Raspberrypi ?

  3. Comment fermer les ports sous Linux ?

  4. Vérifier l'utilisation du port sous Linux

  5. Comment ouvrir un port sous Linux

Comment vérifier les ports d'écoute sous Linux (ports utilisés)

Comment faire une analyse de port sous Linux

Comment rechercher et fermer des ports ouverts sous Linux

Comment utiliser Netcat pour analyser les ports ouverts sous Linux

Comment envoyer un ping à un numéro de port sous Linux

Comment vérifier les ports ouverts sous Linux ?