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

Se connecter à distance à MySQL sur la VM Google Compute Engine

Je viens de trouver la solution à mon problème,

Un merci spécial à @Slava pour m'avoir indiqué le chemin, après tout c'était iptables.

Donc, j'ai continué à recevoir un message "Connexion MySQL refusée" lorsque j'essayais de me connecter à distance, j'ai donc cherché un moyen de voir les journaux de connexion TCP et j'ai trouvé le tcpdump commande.

En exécutant sudo tcpdump port 3306 -vvv -n J'ai vu le résultat suivant chaque fois que j'ai essayé de me connecter à distance :

J'ai cherché dans la page de manuel de tcpdump et j'ai vu que R signifie pour l'indicateur TCP RST (RESET).

J'ai cherché un peu et j'ai trouvé ceci question et sa réponse acceptée m'a conduit à nouveau dans IPTABLES que @Slava a suggéré depuis le premier commentaire.

C'est à ce moment-là que j'ai regardé de près et que j'ai vu que mon INPUT ACCEPT tcp:3306 était défini après la règle de rejet TCP REJECT-with tcp-reset, d'où l'affichage du journal.

Après cela, j'ai juste supprimé la règle pour accepter tcp:3306 et l'ai ajoutée aux règles de rejet tcp et le tour est joué !

iptables -D INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
iptables -I INPUT {line number from the first reject tcp rule} -p tcp -m tcp --dport 3306 -j ACCEPT

IPTABLES ressemble maintenant à ceci et je peux enfin me connecter à MySQL à distance :

Pour répertorier les iptables avec des numéros de ligne, tapez :

sudo iptables -nL --line-numbers

Réflexions finales :

  • Cela peut être amélioré en ajoutant à la liste blanche l'adresse IP source à partir de laquelle vous établissez la connexion à distance pour des raisons de sécurité.