Référence des ports
Port 9300 (TCP) – Transport Elasticsearch
Port par défaut du protocole de transport binaire d'Elasticsearch utilisé pour la communication nœud-à-nœud et de cluster.
En bref
- Transport
- tcp
- Catégorie
- Registered
- Niveau de risque
- Critique
Activement exploité et à fort impact — gardez-le hors d'Internet.
État par défaut
Les anciennes versions d'Elasticsearch exposaient le protocole de transport sur 9300 sans authentification ni TLS ; un hôte atteignant 9300 pouvait donc rejoindre ou interroger le cluster. Les versions modernes activent la sécurité et se lient de façon privée.
À quoi sert le port 9300 ?
Le port 9300 est le port par défaut du protocole de transport d'Elasticsearch, le canal binaire interne que les nœuds utilisent pour communiquer entre eux afin de former le cluster, répliquer les shards et exécuter des requêtes internes. Contrairement à l'API HTTP/REST orientée client sur 9200, le port 9300 n'est destiné qu'au trafic entre les nœuds Elasticsearch eux-mêmes. OpenSearch utilise le même port pour la communication entre ses nœuds. Les clients applicatifs ne touchent normalement jamais directement au 9300.
Quand faut-il l'ouvrir ?
Ouvrez le 9300 uniquement entre les nœuds Elasticsearch qui forment un cluster, afin qu'ils puissent se découvrir et répliquer les données entre différents hôtes. Vous le restreignez aux membres du cluster sur un réseau privé. Dans une configuration mono-nœud, il n'a pas besoin d'être joignable de l'extérieur.
Est-ce risqué de l'ouvrir ?
Exposer le 9300 est dangereux, car un port de transport joignable peut permettre à un tiers de rejoindre le cluster ou de lire ses données. Gardez-le lié de façon privée, activez le TLS et l'authentification nœud-à-nœud, et limitez-le par pare-feu aux seuls membres du cluster. Voir les notes de sécurité ci-dessous.
Comment vérifier si ce port est ouvert
ss -tulpn | grep :9300
nmap -p 9300 <target>netstat -ano | findstr :9300
Test-NetConnection <host> -Port 9300lsof -i :9300
nmap -p 9300 <target>Comment ouvrir ce port sur votre box/routeur
Pour joindre ce service depuis l'extérieur de votre réseau, redirigez le port sur votre box :
- Ouvrez la page d'administration de votre box (souvent http://192.168.1.1 ou http://192.168.0.1) et connectez-vous.
- Trouvez la section « Redirection de ports » — parfois appelée NAT, Serveur virtuel ou NAT/PAT.
- Ajoutez une règle redirigeant le port externe 9300 vers l'IP locale de votre appareil, port interne 9300, protocole TCP.
- Enregistrez, redémarrez la box si demandé, puis testez le port depuis l'extérieur de votre réseau.
Ne redirigez que des ports que vous maîtrisez — cela expose l'appareil à Internet. Pour un accès distant d'administration, un VPN est plus sûr que la redirection de port.
Autoriser ce port dans le pare-feu
sudo ufw allow 9300/tcpsudo firewall-cmd --permanent --add-port=9300/tcp
sudo firewall-cmd --reloadsudo iptables -A INPUT -p tcp --dport 9300 -j ACCEPTNew-NetFirewallRule -DisplayName "Allow 9300" -Direction Inbound -Protocol TCP -LocalPort 9300 -Action AllowSécurité et risques
Attaques courantes
- Accès transport non authentifié pour interroger ou exfiltrer les données du cluster
- Nœuds malveillants rejoignant le cluster pour lire ou manipuler les index
- RCE de scripting propre à certaines versions, comme l'ère Groovy de CVE-2015-1427
- Divulgation de l'état du cluster et des documents indexés
Durcissement
- Lier le transport à une interface privée (transport.host) ; ne jamais exposer 9300 à Internet
- Activer les fonctions de sécurité (authentification et TLS nœud-à-nœud)
- Limiter 9300 par pare-feu aux seuls membres du cluster
- Désactiver le scripting dynamique sur les anciennes versions et corriger les failles RCE
- Maintenir Elasticsearch à jour et auditer l'appartenance au cluster
Comment bloquer ce port
sudo ufw deny 9300/tcpsudo firewall-cmd --permanent --remove-port=9300/tcp
sudo firewall-cmd --reloadsudo iptables -A INPUT -p tcp --dport 9300 -j DROPNew-NetFirewallRule -DisplayName "Block 9300" -Direction Inbound -Protocol TCP -LocalPort 9300 -Action BlockCommande nmap
nmap -p9300 --script banner <target>Remplacez <target> par l’hôte ou la plage que vous êtes autorisé à scanner.
Ports liés
Questions fréquentes
- Quelle est la différence entre les ports Elasticsearch 9200 et 9300 ?
- Le 9200 est l'API HTTP/REST utilisée par les clients, tandis que le 9300 est le protocole de transport binaire utilisé pour la communication nœud-à-nœud et de cluster. Les deux doivent être liés de façon privée, sécurisés par TLS et authentification, et limités par pare-feu.
- Est-il sûr d'exposer le transport Elasticsearch sur le port 9300 ?
- Non. Sans sécurité, un hôte atteignant 9300 peut rejoindre le cluster ou interroger les données, et les anciennes versions permettaient le RCE de scripting (CVE-2015-1427). Liez le transport de façon privée, activez le TLS nœud-à-nœud et limitez le port par pare-feu.