Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment restreindre l'accès au port MySQL

Sur certaines distributions Linux, le port 3306 est ouvert après l'installation de MySQL. Cet article décrit deux méthodes pour restreindre ou bloquer l'accès au port 3306 sur un serveur non géré.

Les informations contenues dans cet article s'appliquent uniquement aux produits non gérés. Vous devez disposer d'un accès root au serveur pour suivre les procédures décrites ci-dessous.

Méthode n° 1 :Désactiver la mise en réseau MySQL

Si vous n'avez pas besoin d'accéder à MySQL depuis un ordinateur externe, vous pouvez désactiver la mise en réseau MySQL.

Suivez la procédure appropriée ci-dessous pour votre distribution Linux.

Même avec la mise en réseau MySQL désactivée, vous pouvez toujours accéder à MySQL en toute sécurité à partir d'un ordinateur distant si vous en avez besoin. Pour cela, vous pouvez configurer un tunnel SSH. Pour savoir comment procéder, veuillez consulter cet article.
CentOS et Fedora

Pour désactiver la mise en réseau MySQL sur CentOS et Fedora, suivez ces étapes :

  1. Connectez-vous à votre serveur à l'aide de SSH.
  2. À l'invite de commande, utilisez votre éditeur de texte préféré pour ouvrir le fichier /etc/my.cnf fichier.
  3. Recherchez la ligne suivante dans my.cnf fichier :
    #skip-networking
    Si cette ligne n'est pas dans my.cnf fichier, ajoutez-le.
  4. Supprimez le # signe au début de la ligne pour que la ligne ressemble à ceci :

    skip-networking
  5. Enregistrez vos modifications dans /etc/my.cnf fichier, puis quittez l'éditeur de texte.
  6. Saisissez la commande suivante pour redémarrer le service MySQL :

    service mysqld restart

    Le port 3306 est maintenant fermé sur le serveur.

Debian et Ubuntu

Par défaut, MySQL sur Debian et Ubuntu est configuré pour n'utiliser que localhost interface (adresse IP 127.0.0.1) pour la mise en réseau. Cela signifie que le port 3306 est fermé aux connexions externes. Pour confirmer qu'il s'agit bien de la configuration de votre serveur, procédez comme suit :

  1. Connectez-vous à votre serveur à l'aide de SSH.
  2. À l'invite de commande, utilisez votre éditeur de texte préféré pour ouvrir le fichier /etc/mysql/my.cnf fichier.
  3. Recherchez le MySQL adresse de liaison ligne dans mon.cnf dossier. Il devrait ressembler à ceci :
    bind-address = 127.0.0.1
    Si MySQL adresse de liaison la ligne est définie sur 0.0.0.0 (ou pas d'adresse du tout), alors les connexions sont ouvertes sur toutes les interfaces.
  4. Si vous avez apporté des modifications à /etc/my.cnf fichier, enregistrez-les, puis quittez l'éditeur de texte.
  5. Pour redémarrer le service MySQL, saisissez la commande suivante :

    service mysql restart

    Le port 3306 est maintenant fermé sur le serveur.

Méthode 2 :Configurer les règles de pare-feu

Vous pouvez utiliser iptables pour créer des règles de pare-feu qui restreignent l'accès au port 3306. L'avantage de cette méthode est que vous pouvez sélectivement accorder ou refuser l'accès au port 3306 en fonction des adresses IP ou d'autres critères.

Par exemple, pour bloquer complètement l'accès externe au port 3306, tapez la commande suivante :

iptables -A INPUT -p tcp --dport 3306 -j DROP

De même, pour accorder l'accès à une adresse IP spécifique et bloquer toutes les autres, tapez les commandes suivantes. Remplacez xxx.xxx.xxx.xxx avec l'adresse IP à laquelle vous souhaitez accorder l'accès :

iptables -A INPUT -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

Vous pouvez accorder à MySQL l'accès à des adresses IP supplémentaires en insérant des règles dans INPUT chaîne avant le DROP règle. Par exemple :

iptables -I INPUT 1 -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT