Cet article fournit des conseils sur la façon de réserver une plage de ports spécifique sur les systèmes CentOS/RHEL lorsque ces ports sont nécessaires pour une application tierce. Par exemple, on a besoin d'une plage de ports entre "10000 et 15000" pour être utilisée par l'application A et on a besoin d'une plage de ports entre "20000 et 25000" pour être utilisée par l'application B. Ces ports entre "10000 et 15000" et " 20000 à 25000″ vont être exclusivement réservés aux Applications A et B.
Du côté du système d'exploitation CentOS/RHEL, il faut réserver une plage de ports nécessaires à l'application tierce, et il est important de savoir que la plage de ports ne réservera pas strictement le port pour une application spécifique mais du côté de l'application. est l'endroit où il faut définir le port à utiliser par cette application spécifique.
Pour changer la plage de ports, modifiez simplement le fichier proc/sys/net/ipv4/ip_local_port_range et modifiez les valeurs souhaitées respectives.
1. Vérifiez la plage de ports actuelle :
# cat /proc/sys/net/ipv4/ip_local_port_range
Par exemple :
# cat /proc/sys/net/ipv4/ip_local_port_range 32768 61000
ou
# sysctl net.ipv4.ip_local_port_range
Par exemple :
# sysctl net.ipv4.ip_local_port_range net.ipv4.ip_local_port_range = 32768 61000
2. Modifiez la plage de ports avec les valeurs souhaitées :
# echo 10000 25000 > /proc/sys/net/ipv4/ip_local_port_range
ou
# sudo sysctl -w net.ipv4.ip_local_port_range="10000 25000"
3. Modifier le fichier /etc/sysctl.conf
Editez le fichier de configuration /etc/sysctl.conf file, pour apporter des modifications permanentes et ajouter la ligne suivante :
# vi /etc/sysctl.conf net.ipv4.ip_local_port_range = 10000 25000
Pour réserver un ou plusieurs ports spécifiques en dehors de la plage de ports réservés sous "ip_local_port_range ” dans un but précis, ajoutez le port au fichier suivant :
/proc/sys/net/ipv4/ip_local_reserved_ports
Remarques
ip_local_port_range – 2 ENTIERS
Définit la plage de ports locaux utilisée par TCP et UDP pour choisir le port local. Le premier numéro est le premier, le second le dernier numéro de port local. Si possible, il est préférable que ces nombres aient une parité différente (une valeur paire et une valeur impaire). Les valeurs par défaut sont respectivement 32768 et 60999.
ip_local_reserved_ports – liste de plages séparées par des virgules.
Spécifiez les ports réservés aux applications tierces connues. Ces ports ne seront pas utilisés par les affectations de ports automatiques (par exemple lors de l'appel de connect() ou bind() avec le numéro de port 0). Le comportement d'allocation de port explicite est inchangé.
Le format utilisé pour l'entrée et la sortie est une liste de plages séparées par des virgules (par exemple "1,2-4,10-10" pour les ports 1, 2, 3, 4 et 10). L'écriture dans le fichier effacera tous les ports précédemment réservés et mettra à jour la liste actuelle avec celle donnée dans l'entrée.
Remarque :les paramètres ip_local_port_range et ip_local_reserved_ports sont indépendants et les deux sont pris en compte par le noyau lors de la détermination des ports disponibles pour les affectations de ports automatiques.Vous pouvez réserver des ports qui ne sont pas dans la plage ip_local_port_actuelle, par exemple :
$ cat /proc/sys/net/ipv4/ip_local_port_range 32000 60999 $ cat /proc/sys/net/ipv4/ip_local_reserved_ports 8080,9148
bien que cela soit redondant. Cependant, un tel paramètre est utile si ultérieurement la plage de ports est remplacée par une valeur qui inclura les ports réservés.