Étapes faciles pour ouvrir un port sous Linux RHEL/CentOS 7/8

Table des Matières

Publicité

Dans cet article, je vais partager des exemples pour vérifier l’état du port et ouvrir un port sous Linux. Cet article a été écrit lors de l’utilisation de CentOS 8, il est donc prudent de dire qu’il couvre également entièrement CentOS / RHEL 7/8, Fedora, Oracle Enterprise Linux et généralement toute la famille de systèmes d’exploitation Red Hat et éventuellement SLES et openSUSE de Novell.

Avant de sauter dans les exemples pour ouvrir un port sous Linux, nous devons comprendre clairement l’exigence. La question très fondamentale qui me vient à l’esprit

  1. Avez-vous besoin d’ouvrir un port pour un service? Comme un port personnalisé 5555 pour le service apache?
  2. Voulez-vous dire que le port écoute déjà mais est bloqué par le pare-feu, vous souhaitez donc ouvrir un port dans le pare-feu?
  3. Ouvrez un port pour des tâches temporaires personnalisées telles que le transfert et la réception de fichiers à l’aide de ce port, puis fermez le port.

Nous allons couvrir tous ces scénarios dans cet article

Vérifiez l’état du port

Pour vérifier la liste des ports existants ouverts, nous utiliserons nmap pour vérifier l’état du port:

# nmap localhost
Starting Nmap 7.70 ( https://nmap.org ) at 2020-03-22 12:08 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000024s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
Nmap done: 1 IP address (1 host up) scanned in 1.71 seconds

Actuellement, seuls deux ports sont ouverts sur mon nœud CentOS 8.

Vérifier la liste des ports d’écoute

Nous utiliserons netstat pour répertorier les ports TCP qui sont en état d’écoute. Le nombre total de ports est plus élevé que la sortie nmap.

# netstat -ntlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1627/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 26893/sshd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp6 0 0 :::22 :::* LISTEN 26893/sshd tcp6 0 0 :::111 :::* LISTEN 1/systemd

Ouvrez un port pour un service

Si c’est votre besoin, vous cherchez la mauvaise question. Fondamentalement, c’est l’inverse, c’est-à-dire qu’un service ouvrira un port. Par exemple, lorsque vous démarrez le service SSHD, par défaut, il démarrera le port 22 et non l’inverse, c’est-à-dire que si vous ouvrez le port 22, il ne démarrera pas automatiquement le service SSHD.

Publicité

Observons ceci dans l’exemple, nous savons que le port 22 est ouvert sur mon nœud CentOS 8. Si j’arrête le service sshd

# systemctl stop sshd

, vous pouvez voir que le port 22 n’est plus ouvert.

# netstat -ntlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1627/dnsmasq tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp6 0 0 :::111 :::* LISTEN 1/systemd

Vous devez utiliser le fichier de configuration du service respectif pour modifier le port par défaut. Une fois cela fait, vous pouvez redémarrer le service et cela devrait ouvrir automatiquement le port respectif sur votre nœud Linux.

CONSEIL:

Si vous prévoyez d’utiliser un port personnalisé pour un service, vous devez également l’ajouter dans /etc/services

Cela couvre le premier scénario.

port ouvert firewalld

Il est également possible que vos ports soient désactivés dans le pare-feu. Si votre port n’est pas répertorié dans nmap, il est probablement bloqué par un pare-feu.

Nous utiliserons firewalld pour ouvrir un port car c’est l’interface la plus utilisée aujourd’hui dans RHEL/CentOS 7 et 8. Déterminez dans quelle zone se trouvent les interfaces réseau du système. Dans l’exemple suivant, l’interface eth0 et eth1 se trouve dans la zone ‘publique’:

# firewall-cmd --get-active-zones
libvirt
interfaces: virbr0
public
interfaces: eth0 eth1

Pour ouvrir définitivement le port firewalld dans une zone, utilisez l’option --add-port. L’exemple ci-dessous ouvre définitivement le port TCP 1234 dans la zone ‘publique’. Notez que les modifications permanentes ne prennent effet que lorsque le service firewalld est rechargé.

# firewall-cmd --zone=public --add-port=1234/tcp --permanentsuccess# firewall-cmd --reloadsuccess
REMARQUE :

Pour effectuer une modification non persistante, exécutez la même commande sans l’option --permanent définie. Tout changement non permanent prendra effet instantanément et persistera jusqu’à ce que le pare-feu soit rechargé.

Une fois le port firewalld ouvert, utilisez ensuite netstat pour vérifier l’état du port:

Publicité

# netstat -ntlpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1627/dnsmasqtcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 28188/sshdtcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemdtcp6 0 0 :::22 :::* LISTEN 28188/sshdtcp6 0 0 :::111 :::* LISTEN 1/systemd

Nous ne voyons toujours pas le port 1234 ici. En effet, actuellement, le port 1234 n’est lié à aucun service. Donc notre port est OUVERT mais PAS À L’ÉCOUTE. Dès qu’une demande ou un service essaie d’utiliser le port 1234, nous l’obtiendrons en état d’ÉCOUTE.

Utilisez nc ou ncat pour ouvrir un port sous Linux

Vérifions cette théorie Utiliser nc ou ncat pour ouvrir un port sous Linux nc ou ncat est livré dans le cadre de nmap-ncat rpm dans RHEL/CentOS que vous pouvez installer en utilisant yum ou dnf. Utilisez --listen avec --port pour ouvrir un port à l’aide de la commande nc. Dans l’exemple ci-dessous, nous ouvrons le port 1234

# nc --listen --source-port 1234

Ouvrez un autre terminal de ce serveur et vérifiez l’état du port

# netstat -ntlp | grep 1234tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 28983/nctcp6 0 0 :::1234 :::* LISTEN 28983/nc

Comme vous le voyez, le port 1234 écoute à la fois IPv4 et IPv6. Pour utiliser uniquement IPv4, utilisez -4 avec la commande ci-dessus

# nc --listen --source-port 1234 -4

Suivant sur un autre terminal, vous pouvez vérifier l’état du port pour le port 1234

# netstat -ntlp | grep 1234tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 29329/nc

Utilisez nc ou ncat pour ouvrir un port et transférer des fichiers

Nous pouvons également utiliser nc pour transférer des fichiers d’un hôte à un autre hôte. Ici, je transférerai mon « inputfile » de centos-8 à rhel-8 Sur le client, nous ouvrirons un port aléatoire, ici nous utiliserons 9899. J’ai activé verbose pour que vous puissiez voir plus de détails sur l’écran

# ncat --verbose --listen 9899 > outputfileNcat: Version 7.70 ( https://nmap.org/ncat )Ncat: Listening on :::9899Ncat: Listening on 0.0.0.0:9899Ncat: Connection from 192.168.43.250.Ncat: Connection from 192.168.43.250:40242.

À côté de démarrer le transfert, utilisez la commande ci-dessous

# ncat --verbose 192.168.43.157 9899 < inputfileNcat: Version 7.70 ( https://nmap.org/ncat )Ncat: Connected to 192.168.43.157:9899.Ncat: 19 bytes sent, 0 bytes received in 0.01 seconds.

Si vous rencontrez des problèmes, vous pouvez vérifier le pare-feu entre votre serveur et votre client. Il est possible que le port respectif soit bloqué et vous devez utiliser le port ouvert firewalld

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.