Skip to content

Référence des ports

Port 3306 (TCP) – MySQL / MariaDB

Écouteur par défaut des connexions aux bases relationnelles MySQL et MariaDB.

tcpRegistered

En bref

Transport
tcp
Catégorie
Registered
Niveau de risque
Élevé

Souvent ciblé — limitez l'exposition et durcissez-le.

État par défaut

Les paquets modernes se lient à localhost (127.0.0.1) par défaut, mais de nombreux déploiements fixent bind-address à 0.0.0.0, exposant 3306 sur le réseau ou à Internet.

À quoi sert le port 3306 ?

Le port 3306 est le port TCP par défaut de MySQL et de son fork compatible MariaDB, deux des bases relationnelles les plus utilisées. Les serveurs d'application et les outils d'administration — applications web, WordPress, et clients comme MySQL Workbench, DBeaver ou la ligne de commande mysql — se connectent via 3306 pour exécuter des requêtes SQL sur des bases qui alimentent sites web, produits SaaS et applications internes.

Quand faut-il l'ouvrir ?

Vous ouvrez le 3306 quand une application ou un outil d'administration sur une autre machine doit atteindre votre serveur MySQL/MariaDB. Le cas courant est un serveur web distinct se connectant à la base ; sinon il reste lié à localhost. Ne l'autorisez qu'aux hôtes de confiance précis qui en ont besoin, idéalement sur un réseau privé.

Est-ce risqué de l'ouvrir ?

Les bases sur le 3306 sont très scannées et soumises à la force brute, et une base exposée peut entraîner un vol total des données. Gardez-la liée à localhost ou à un réseau privé, utilisez des mots de passe forts, exigez TLS, et atteignez-la via un VPN ou un tunnel SSH. Voir les notes de sécurité ci-dessous.

Comment vérifier si ce port est ouvert

Linux
ss -tulpn | grep :3306
nmap -p 3306 <target>
Windows
netstat -ano | findstr :3306
Test-NetConnection <host> -Port 3306
macOS
lsof -i :3306
nmap -p 3306 <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 :

  1. Ouvrez la page d'administration de votre box (souvent http://192.168.1.1 ou http://192.168.0.1) et connectez-vous.
  2. Trouvez la section « Redirection de ports » — parfois appelée NAT, Serveur virtuel ou NAT/PAT.
  3. Ajoutez une règle redirigeant le port externe 3306 vers l'IP locale de votre appareil, port interne 3306, protocole TCP.
  4. 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

Linux (ufw)
sudo ufw allow 3306/tcp
Linux (firewalld)
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
Linux (iptables)
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
Windows
New-NetFirewallRule -DisplayName "Allow 3306" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Allow

Sécurité et risques

Attaques courantes

  • Force brute et pulvérisation de mots de passe contre root et les comptes applicatifs
  • Exploitation de mots de passe vides ou par défaut
  • Abus de privilèges et exfiltration de données via FILE après connexion
  • Injection SQL pivotant vers le moteur de base de données

Durcissement

  • Lier à localhost ou à une interface privée ; ne jamais exposer 3306 à Internet
  • Supprimer les comptes anonymes et à mot de passe vide (exécuter mysql_secure_installation)
  • Imposer des mots de passe forts, le moindre privilège et des utilisateurs restreints par hôte
  • Exiger TLS pour les connexions clientes et segmenter avec des pare-feu
  • Maintenir MySQL/MariaDB à jour et surveiller les échecs de connexion

Comment bloquer ce port

Linux (ufw)
sudo ufw deny 3306/tcp
Linux (firewalld)
sudo firewall-cmd --permanent --remove-port=3306/tcp
sudo firewall-cmd --reload
Linux (iptables)
sudo iptables -A INPUT -p tcp --dport 3306 -j DROP
Windows
New-NetFirewallRule -DisplayName "Block 3306" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Block

Commande nmap

nmap -p3306 --script mysql-info,mysql-empty-password <target>

Remplacez <target> par l’hôte ou la plage que vous êtes autorisé à scanner.

Ports liés

Questions fréquentes

Est-il sûr d'exposer le port 3306 à Internet ?
Non. Un MySQL exposé à Internet est constamment scanné et soumis à la force brute. Liez-le à localhost ou à un réseau privé et connectez-vous via un VPN, un tunnel SSH ou TLS.
Pourquoi mon MySQL écoute-t-il sur 0.0.0.0 ?
Parce que bind-address est réglé sur 0.0.0.0, souvent pour autoriser des serveurs d'application distants. Restreignez-le à une interface privée et limitez le port par pare-feu aux hôtes de confiance.

Parcourir par catégorie

Guides associés