Référence des ports
Port 2181 (TCP) – Apache ZooKeeper
Port client par défaut d'Apache ZooKeeper, service distribué de coordination et de configuration.
En bref
- Transport
- tcp
- Catégorie
- Registered
- Niveau de risque
- Élevé
Souvent ciblé — limitez l'exposition et durcissez-le.
État par défaut
Historiquement, ZooKeeper se lie à toutes les interfaces sans authentification et avec les commandes d'administration « four-letter words » activées ; tout client atteignant 2181 peut donc lire ou modifier l'arbre de znodes.
À quoi sert le port 2181 ?
Le port 2181 est le port client par défaut d'Apache ZooKeeper, un service de coordination distribué qui stocke des données de configuration, de nommage et de synchronisation dans un arbre de « znodes ». Des systèmes big-data et de messagerie comme Apache Kafka, HBase, Hadoop et Solr s'y connectent pour élire des leaders et suivre l'état du cluster. Les clients et applications utilisent 2181 pour lire et écrire ces métadonnées partagées.
Quand faut-il l'ouvrir ?
Vous ouvrez 2181 quand vous exploitez un ensemble ZooKeeper et que ses applications clientes (par exemple des brokers Kafka ou vos propres services) doivent l'atteindre. En général vous ne l'autorisez qu'au sein de votre réseau de cluster privé pour que les nœuds qui dépendent de ZooKeeper puissent se connecter.
Est-ce risqué de l'ouvrir ?
ZooKeeper est livré sans authentification par défaut, donc un port exposé permet à quiconque de lire ou modifier les données du cluster. Gardez-le sur un réseau privé, activez l'authentification SASL/Kerberos et les ACL sur les znodes, et restreignez l'accès par pare-feu. Voir les notes de sécurité ci-dessous.
Comment vérifier si ce port est ouvert
ss -tulpn | grep :2181
nmap -p 2181 <target>netstat -ano | findstr :2181
Test-NetConnection <host> -Port 2181lsof -i :2181
nmap -p 2181 <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 2181 vers l'IP locale de votre appareil, port interne 2181, 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 2181/tcpsudo firewall-cmd --permanent --add-port=2181/tcp
sudo firewall-cmd --reloadsudo iptables -A INPUT -p tcp --dport 2181 -j ACCEPTNew-NetFirewallRule -DisplayName "Allow 2181" -Direction Inbound -Protocol TCP -LocalPort 2181 -Action AllowSécurité et risques
Attaques courantes
- « Four-letter words » non authentifiés (mntr, stat, conf, envi) divulguant la configuration et la topologie
- Lecture et altération des znodes pour perturber ou détourner les clusters dépendants
- Divulgation d'informations sur les brokers, le cluster et les métadonnées de service
- Déni de service par suppression ou corruption des données de coordination
Durcissement
- Lier à une interface privée et limiter 2181 par pare-feu aux hôtes de confiance
- Activer l'authentification (SASL/Kerberos) et des ACL sur les znodes
- Restreindre ou désactiver les commandes « four-letter words » via 4lw.commands.whitelist
- Exiger TLS pour le trafic client et quorum
- Exécuter sous un utilisateur non privilégié et appliquer les correctifs régulièrement
Comment bloquer ce port
sudo ufw deny 2181/tcpsudo firewall-cmd --permanent --remove-port=2181/tcp
sudo firewall-cmd --reloadsudo iptables -A INPUT -p tcp --dport 2181 -j DROPNew-NetFirewallRule -DisplayName "Block 2181" -Direction Inbound -Protocol TCP -LocalPort 2181 -Action BlockCommande nmap
nmap -p2181 --script zookeeper-info <target>Remplacez <target> par l’hôte ou la plage que vous êtes autorisé à scanner.
Ports liés
Questions fréquentes
- Les commandes « four-letter words » de ZooKeeper sont-elles un risque de sécurité ?
- Oui. Des commandes comme mntr, stat, conf et envi renvoient la configuration et la topologie du cluster à tout client non authentifié. Restreignez-les avec 4lw.commands.whitelist et limitez le port 2181 par pare-feu.
- ZooKeeper exige-t-il une authentification par défaut ?
- Non. Par défaut, tout client atteignant 2181 peut lire et modifier les znodes. Activez l'authentification SASL/Kerberos et définissez des ACL sur les znodes pour protéger l'arbre de données.