12 MySQL/Mariadb Security Best Practices für Linux

12 MySQL/Mariadb Security Best Practices für Linux

Mysql ist das beliebteste Open -Source -Datenbanksystem der Welt und Mariadb (Eine Gabel von MySQL) ist das am schnellsten wachsende Open -Source -Datenbanksystem der Welt. Nach der Installation von MySQL Server ist es in seiner Standardkonfiguration unsicher und es ist eine der wesentlichen Aufgaben in der allgemeinen Datenbankverwaltung.

Lesen Sie auch: Lernen Sie MySQL/Mariadb für Anfänger - Teil 1

Dies wird zur Verhärtung und Steigerung der Gesamtsicherheit der Linux -Server beitragen, da Angreifer in jedem Teil eines Systems immer Schwachstellen scannen und Datenbanken in der Vergangenheit wichtige Zielbereiche waren. Ein häufiges Beispiel ist das Brute-Forcing des Stammkennworts für die MySQL-Datenbank.

In diesem Leitfaden werden wir nützlich erklären Mysql/Mariadb Sicherheitswährung Best Practice für Linux.

1. Sichern Sie die MySQL -Installation

Dies ist der erste empfohlene Schritt nach der Installation von MySQL -Server zur Sicherung des Datenbankservers. Dieses Skript erleichtert die Verbesserung der Sicherheit Ihres MySQL -Servers, indem Sie auffordert:

  • Legen Sie ein Passwort für das Root -Konto fest, wenn Sie es während der Installation nicht festgelegt haben.
  • Deaktivieren Sie die Remote -Root -Benutzeranmeldung, indem Sie Root -Konten entfernen, auf die außerhalb des lokalen Hosts zugegriffen werden kann.
  • Entfernen Sie anonyme Benutzerkonten und Testdatenbank, auf die standardmäßig von allen Benutzern, sogar anonymen Benutzer, zugegriffen werden kann.
# Mysql_secure_installation 

Setzen Sie nach dem Ausführen das Stammkennwort und beantworten Sie die Fragen der Fragen, indem Sie [eingeben [Ja/Y] und drücke [Eingeben].

Sichern Sie die MySQL -Installation

2. Binden Sie den Datenbankserver an eine Loopback -Adresse

Diese Konfiguration beschränkt den Zugriff von Remote -Maschinen und teilt dem MySQL -Server mit. Sie können es in der Hauptkonfigurationsdatei festlegen.

# vi /etc /mein.cnf [rhel/centos] # vi/etc/mysql/my.conf [debian/ubuntu] oder # vi/etc/mysql/mysql.Conf.D/Mysqld.CNF [Debian/Ubuntu] 

Fügen Sie die folgende Zeile unten unter hinzu [Mysqld] Abschnitt.

Bind-Address = 127.0.0.1 

3. Deaktivieren Sie den lokalen Infile in MySQL

Als Teil der Sicherheitshärten müssen Sie deaktivieren local_infile Um den Zugriff auf das zugrunde liegende Dateisystem von innerhalb von MySQL mit der folgenden Anweisung unter zu verhindern [Mysqld] Abschnitt.

Lokale Infile = 0 

4. Ändern Sie den Standardport von MySQL

Der Hafen Variable legt die MySQL -Portnummer fest, mit der TCP/ IP -Verbindungen anhören werden. Die Standardportnummer lautet 3306 Aber Sie können es unter dem ändern [Mysqld] Abschnitt wie gezeigt.

Port = 5000 

5. Aktivieren Sie die MySQL -Protokollierung

Protokolle sind eine der besten Möglichkeiten, um zu verstehen, was auf einem Server passiert, bei Angriffen können Sie leicht intrusionsbezogene Aktivitäten von Protokolldateien sehen. Sie können die MySQL -Protokollierung aktivieren, indem Sie die folgende Variable unter dem hinzufügen [Mysqld] Abschnitt.

log =/var/log/mysql.Protokoll 

6. Legen Sie die entsprechende Berechtigung für MySQL -Dateien fest

Stellen Sie sicher, dass Sie für alle MySQL -Serverdateien und Datenverzeichnisse entsprechende Berechtigungen festgelegt haben. Der /etc/mein.Conf Die Datei sollte nur zum Stamm beschrieben sein. Dadurch wird andere Benutzer daran gehindert, die Datenbankserverkonfigurationen zu ändern.

# Chmod 644 /etc /my.CNF 

7. MySQL Shell History löschen

Alle Befehle, die Sie auf MySQL Shell ausführen, werden vom MySQL -Client in einer Verlaufsdatei gespeichert: ~/.Mysql_history. Dies kann gefährlich sein, da für alle von Ihnen erstellten Benutzerkonten alle in der Shell eingegebenen Benutzernamen und Passwörter in der Verlaufsdatei aufgezeichnet werden.

# cat/dev/null> ~/.Mysql_history 

8. Führen Sie nicht MySQL -Befehle aus Befehlszeilen aus

Wie Sie bereits wissen, werden alle Befehle, die Sie auf dem Terminal eingeben ~/.bash_history für Bash). Ein Angreifer, der es schafft, Zugriff auf diese Verlaufsdatei zu erhalten.

Es wird dringend nicht empfohlen, Kennwörter in die Befehlszeile zu tippen, so ähnlich wie folgt:

# MySQL -U root -ppassword_ 
Schließen Sie MySQL mit Passwort an

Wenn Sie den letzten Abschnitt der Befehlsverlaufsdatei überprüfen, sehen Sie das oben eingegebene Passwort.

# Geschichte 
Überprüfen Sie den Befehlsverlauf

Der geeignete Weg, um MySQL zu verbinden, ist.

# MySQL -U Root -P geben Sie Passwort ein: 

9. Definieren Sie anwendungsspezifische Datenbankbenutzer

Geben Sie für jede auf dem Server ausgeführte Anwendung nur einen Benutzer, der für eine Datenbank für eine bestimmte Anwendung verantwortlich ist, Zugriff auf. Wenn Sie beispielsweise über eine WordPress -Site verfügen, erstellen Sie einen bestimmten Benutzer für die WordPress -Site -Datenbank wie folgt.

# MySQL -U root -p mariadb [(keine)]> Datenbank erstellen OSCLASS_DB; Mariadb [(keine)]> Benutzer erstellen 'OSClassDmin'@'localhost' durch '[E -Mail geschützt]% identifiziert!2 '; Mariadb [(keine)]> Geben Sie alle Berechtigungen auf OSCLASS_DB GEBEN.* Zu 'osclassdmin'@'localhost'; Mariadb [(keine)]> Flush -Privilegien; Mariadb [(keine)]> 

und denken Sie daran, immer Benutzerkonten zu entfernen, die keine Anwendungsdatenbank mehr auf dem Server verwalten.

10. Verwenden Sie zusätzliche Sicherheits -Plugins und Bibliotheken

MySQL enthält eine Reihe von Sicherheits-Plugins für: Authentifizierung von Clients, eine Verbindung zu MySQL Server, Kennwortvalidierung und Speicher für vertrauliche Informationen zu erhalten, die alle in der kostenlosen Version verfügbar sind.

Hier finden Sie mehr: https: // dev.Mysql.com/doc/refman/5.7/EN/Sicherheitsplugins.html

11. Ändern Sie die MySQL -Passwörter regelmäßig

Dies ist eine gemeinsame Information/Anwendung/Systemsicherheitsberatung. Wie oft Sie dies tun, hängt vollständig von Ihrer internen Sicherheitsrichtlinie ab. Es kann jedoch „Snoopers“ verhindern, die Ihre Aktivitäten möglicherweise über einen langen Zeitraum verfolgt haben, daran, Zugriff auf Ihren MySQL -Server zu erlangen.

Mariadb [(keine)]> Benutze MySQL; Mariadb [(keine)]> Aktualisieren Sie Benutzer set password = password ('IhrPassword') Wobei user = "root" und host =' localhost '; Mariadb [(keine)]> Spülung Privilegien; 

12. Aktualisieren Sie das MySQL -Serverpaket regelmäßig

Es wird dringend empfohlen, MySQL/MariadB -Pakete regelmäßig zu aktualisieren, um mit Sicherheitsaktualisierungen und Fehlerbehebungen über das Repository des Anbieters Schritt zu halten. Normalerweise sind Pakete in Standardbetriebssystem -Repositorys veraltet.

# YUM Update # APT -Update 

Nachdem Sie Änderungen am MySQL/MariADB -Server vorgenommen haben, starten Sie den Dienst immer neu.

# SystemCTL Neustart Mariadb # rhel/Centos # SystemCTL Neustart MySQL # Debian/Ubuntu 

Lesen Sie auch: 15 nützliche MySQL/Mariadb -Leistungsstimm- und Optimierungs -Tipps

Das ist alles! Wir lieben es, über das Kommentarformular unten von Ihnen zu hören. Teilen Sie uns alle MySQL/Mariadb -Sicherheits -Tipps mit, die in der obigen Liste fehlen.