Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So beschränken Sie den Zugriff auf den MySQL-Port

Bei einigen Linux-Distributionen ist Port 3306 nach der Installation von MySQL geöffnet. Dieser Artikel beschreibt zwei Methoden zum Einschränken oder Blockieren des Zugriffs auf Port 3306 auf einem nicht verwalteten Server.

Die Informationen in diesem Artikel gelten nur für nicht verwaltete Produkte. Sie müssen Root-Zugriff auf den Server haben, um die unten beschriebenen Verfahren ausführen zu können.

Methode 1:MySQL-Netzwerk deaktivieren

Wenn Sie nicht von einem externen Computer aus auf MySQL zugreifen müssen, können Sie das MySQL-Netzwerk deaktivieren.

Befolgen Sie das entsprechende Verfahren unten für Ihre Linux-Distribution.

Selbst wenn das MySQL-Netzwerk deaktiviert ist, können Sie bei Bedarf immer noch sicher von einem entfernten Computer aus auf MySQL zugreifen. Dazu können Sie einen SSH-Tunnel konfigurieren. Informationen dazu finden Sie in diesem Artikel.
CentOS und Fedora

Führen Sie die folgenden Schritte aus, um das MySQL-Netzwerk auf CentOS und Fedora zu deaktivieren:

  1. Melden Sie sich mit SSH bei Ihrem Server an.
  2. Verwenden Sie an der Eingabeaufforderung Ihren bevorzugten Texteditor, um /etc/my.cnf zu öffnen Datei.
  3. Suchen Sie die folgende Zeile in my.cnf Datei:
    #skip-networking
    Steht diese Zeile nicht in der my.cnf Datei, fügen Sie sie hinzu.
  4. Löschen Sie das # Zeichen am Anfang der Zeile, sodass die Zeile wie folgt aussieht:

    skip-networking
  5. Speichern Sie Ihre Änderungen in /etc/my.cnf Datei und beenden Sie dann den Texteditor.
  6. Geben Sie den folgenden Befehl ein, um den MySQL-Dienst neu zu starten:

    service mysqld restart

    Port 3306 ist jetzt auf dem Server geschlossen.

Debian und Ubuntu

Standardmäßig ist MySQL unter Debian und Ubuntu so konfiguriert, dass nur der localhost verwendet wird Schnittstelle (IP-Adresse 127.0.0.1) für die Vernetzung. Das bedeutet, dass Port 3306 für externe Verbindungen geschlossen ist. Gehen Sie wie folgt vor, um zu bestätigen, dass dies die Konfiguration auf Ihrem Server ist:

  1. Melden Sie sich mit SSH bei Ihrem Server an.
  2. Verwenden Sie an der Eingabeaufforderung Ihren bevorzugten Texteditor, um /etc/mysql/my.cnf zu öffnen Datei.
  3. Suchen Sie MySQL bind-Adresse Zeile in der my.cnf Datei. Es sollte wie folgt aussehen:
    bind-address = 127.0.0.1
    Wenn die MySQL bind-Adresse Zeile ist auf 0.0.0.0 gesetzt (oder gar keine Adresse), dann sind Verbindungen auf allen Schnittstellen offen.
  4. Falls Sie Änderungen an /etc/my.cnf vorgenommen haben Datei, speichern Sie sie und beenden Sie dann den Texteditor.
  5. Um den MySQL-Dienst neu zu starten, geben Sie den folgenden Befehl ein:

    service mysql restart

    Port 3306 ist jetzt auf dem Server geschlossen.

Methode 2:Firewallregeln konfigurieren

Sie können iptables verwenden, um Firewall-Regeln zu erstellen, die den Zugriff auf Port 3306 einschränken. Der Vorteil dieser Methode besteht darin, dass Sie den Zugriff auf Port 3306 basierend auf IP-Adressen oder anderen Kriterien selektiv gewähren oder verweigern können.

Um beispielsweise den externen Zugriff auf Port 3306 vollständig zu blockieren, geben Sie den folgenden Befehl ein:

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

Geben Sie auf ähnliche Weise die folgenden Befehle ein, um einer bestimmten IP-Adresse Zugriff zu gewähren und alle anderen zu blockieren. Ersetzen Sie xxx.xxx.xxx.xxx mit der IP-Adresse, für die Sie den Zugriff gewähren möchten:

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

Sie können MySQL Zugriff auf zusätzliche IP-Adressen gewähren, indem Sie Regeln in INPUT einfügen Kette vor dem DROP Regel. Zum Beispiel:

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