Sichere MariaDB mit SSL-Unterstützung unter Ubuntu 16.04

MariaDB ist eine kostenlose Open-Source-Datenbank und der am häufigsten verwendete Drop-In-Ersatz für MySQL. Es wurde von den Entwicklern von MySQL erstellt und soll unter der GNU-GPL kostenlos bleiben. Es ist sehr schnell, skalierbar und verfügt über eine Vielzahl von Funktionen, die es für eine Vielzahl von Anwendungsfällen sehr vielseitig machen.

In diesem Tutorial erfahren Sie, wie Sie MariaDB mit SSL-Unterstützung unter Ubuntu 16.04 installieren und konfigurieren.

Bedarf

  • Eine neue Ubuntu 16.04 Vultr-Instanz.
  • Ein Nicht-Root-Benutzer mit Sudo-Berechtigungen.
  • Auf der Serverinstanz ist eine statische IP-Adresse 192.168.0.190 konfiguriert.
  • Auf dem Clientcomputer ist eine statische IP-Adresse 192.168.0.191 konfiguriert.

Schritt 1: Installieren Sie MariaDB

Standardmäßig ist die neueste Version von MariaDB nicht im Ubuntu 16.04-Repository verfügbar. Daher müssen Sie das MariaDB-Repository zu Ihrem System hinzufügen.

Laden Sie zuerst den Schlüssel mit dem folgenden Befehl herunter:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Fügen Sie als Nächstes das MariaDB-Repository zur /etc/apt/sources.listDatei hinzu:

sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list

Aktualisieren Sie den apt-Index mit dem folgenden Befehl:

sudo apt-get update -y

Nachdem der apt-Index aktualisiert wurde, installieren Sie den MariaDB-Server mit dem folgenden Befehl:

sudo apt-get install mariadb-server -y

Starten Sie den MariaDB-Server und aktivieren Sie ihn beim Start:

sudo systemctl start mysql
sudo systemctl enable mysql

Als Nächstes müssen Sie ein mysql_secure_installationSkript ausführen , um die MariaDB-Installation zu sichern. Mit diesem Skript können Sie das Root-Passwort festlegen, anonyme Benutzer entfernen, die Remote-Root-Anmeldung nicht zulassen und die Testdatenbank entfernen:

sudo mysql_secure_installation

Schritt 2: Erstellen Sie ein SSL-Zertifikat und einen privaten Schlüssel für den Server

Erstellen Sie zunächst ein Verzeichnis zum Speichern aller Schlüssel- und Zertifikatdateien.

sudo mkdir /etc/mysql-ssl

Ändern Sie als Nächstes das Verzeichnis in /etc/mysql-sslund erstellen Sie das CA-Zertifikat und den privaten Schlüssel mit dem folgenden Befehl:

sudo cd /etc/mysql-ssl
sudo openssl genrsa 2048 > ca-key.pem
sudo openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem

Beantworten Sie alle Fragen wie folgt:

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:GUJ
Locality Name (eg, city) []:JND
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ENJ
Organizational Unit Name (eg, section) []:SYSTEM
Common Name (e.g. server FQDN or YOUR name) []:HITESH
Email Address []:[email protected]

Erstellen Sie als Nächstes einen privaten Schlüssel für den Server mit dem folgenden Befehl:

sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem

Beantworten Sie alle Fragen wie im vorherigen Befehl.

Exportieren Sie als Nächstes den privaten Schlüssel des Servers mit dem folgenden Befehl in einen Schlüssel vom Typ RSA:

sudo sudo openssl rsa -in server-key.pem -out server-key.pem

Generieren Sie abschließend ein Serverzertifikat mit dem CA-Zertifikat wie folgt:

sudo openssl x509 -req -in server-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

Sie können jetzt alle Zertifikate und Schlüssel mit dem folgenden Befehl anzeigen:

ls

Sie sollten die folgende Ausgabe sehen:

ca-cert.pem  ca-key.pem  server-cert.pem  server-key.pem  server-req.pem

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Schritt 3: Konfigurieren Sie MariaDB Server für die Verwendung von SSL

Sie sollten über alle Zertifikate und einen privaten Schlüssel verfügen. und jetzt müssen Sie MariaDB konfigurieren, um den Schlüssel und die Zertifikate zu verwenden. Sie können dies tun, indem Sie die /etc/mysql/mariadb.conf.d/50-server.cnfDatei bearbeiten :

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Fügen Sie die folgenden Zeilen unter dem [mysqld]Abschnitt hinzu:

ssl-ca=/etc/mysql-ssl/ca-cert.pem
ssl-cert=/etc/mysql-ssl/server-cert.pem
ssl-key=/etc/mysql-ssl/server-key.pem

##Change this value to connect the MariaDB server from another host.
bind-address = *

Speichern Sie die Datei und starten Sie den MariaDB-Dienst neu, um die folgenden Änderungen zu übernehmen:

sudo systemctl restart mysql

Jetzt können Sie mit der folgenden Abfrage überprüfen, ob die SSL-Konfiguration funktioniert oder nicht:

mysql -u root -p
MariaDB [(none)]> SHOW VARIABLES LIKE '%ssl%';

Wenn die Konfiguration erfolgreich war, sollte die folgende Ausgabe angezeigt werden:

+---------------+--------------------------------+
| Variable_name | Value                          |
+---------------+--------------------------------+
| have_openssl  | YES                            |
| have_ssl      | YES                            |
| ssl_ca        | /etc/mysql-ssl/ca-cert.pem     |
| ssl_capath    |                                |
| ssl_cert      | /etc/mysql-ssl/server-cert.pem |
| ssl_cipher    |                                |
| ssl_crl       |                                |
| ssl_crlpath   |                                |
| ssl_key       | /etc/mysql-ssl/server-key.pem  |
+---------------+--------------------------------+

Sie sollten beachten, dass die Werte have_sslund have_opensslin der obigen Ausgabe aktiviert sind.

Schritt 4: Erstellen Sie einen Benutzer mit SSL-Berechtigungen

Erstellen Sie einen Remotebenutzer, der über SSL auf den MariaDB-Server zugreifen darf. Führen Sie dazu den folgenden Befehl aus:

Melden Sie sich zunächst bei der MySQL-Shell an:

mysql -u root -p

Erstellen Sie als Nächstes einen Benutzer remoteund erteilen Sie ihm die Berechtigung, über SSL auf den Server zuzugreifen.

MariaDB [(none)]>GRANT ALL PRIVILEGES ON *.* TO 'remote'@'192.168.0.191' IDENTIFIED BY 'password' REQUIRE SSL;

Löschen Sie dann die Berechtigungen mit dem folgenden Befehl:

MariaDB [(none)]>FLUSH PRIVILEGES;

Beenden Sie schließlich die MySQL-Shell mit dem folgenden Befehl:

MariaDB [(none)]>exit;

Hinweis: 192.168.0.191 ist die IP-Adresse des Remotebenutzers (Client).

Ihr Server ist jetzt bereit, Verbindungen zum Remote-Benutzer zuzulassen.

Schritt 5: Erstellen Sie das Client-Zertifikat

Ihre serverseitige Konfiguration ist abgeschlossen. Als Nächstes müssen Sie einen neuen Schlüssel und ein neues Zertifikat für den Client erstellen.

Erstellen Sie auf dem Server den Clientschlüssel mit dem folgenden Befehl:

sudo cd /etc/mysql-ssl
sudo sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout client-key.pem -out client-req.pem

Verarbeiten Sie als Nächstes den Client-RSA-Schlüssel mit dem folgenden Befehl:

sudo openssl rsa -in client-key.pem -out client-key.pem

Signieren Sie abschließend das Client-Zertifikat mit dem folgenden Befehl:

sudo openssl x509 -req -in client-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

Schritt 6: Konfigurieren Sie den MariaDB-Client für die Verwendung von SSL

Alle Zertifikate und der Schlüssel sind für den Kunden bereit. Als Nächstes müssen Sie alle Clientzertifikate auf jeden Clientcomputer kopieren, auf dem Sie den MariaDB-Client ausführen möchten.

Sie müssen den MariaDB-Client auf dem Client-Computer installieren.

Laden Sie zunächst auf dem Client-Computer den Schlüssel für MariaDB mit dem folgenden Befehl herunter:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Fügen Sie dann das MariaDB-Repository zur /etc/apt/sources.listDatei hinzu:

sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list

Aktualisieren Sie als Nächstes den apt-Index mit dem folgenden Befehl:

sudo apt-get update -y

Sobald der apt-Index aktualisiert wurde, installieren Sie den MariaDB-Client mit dem folgenden Befehl auf dem Clientcomputer:

sudo apt-get install mariadb-client -y

Erstellen Sie nun ein Verzeichnis zum Speichern aller Zertifikate:

sudo mkdir /etc/mysql-ssl

Kopieren Sie anschließend mit dem folgenden Befehl alle Client-Zertifikate vom Server-Computer auf den Client-Computer:

sudo scp [email protected]:/etc/mysql-ssl/client-* /etc/mysql-ssl/

Anschließend müssen Sie den MariaDB-Client für die Verwendung von SSL konfigurieren. Sie können dies tun, indem Sie eine /etc/mysql/mariadb.conf.d/50-mysql-clients.cnfDatei erstellen:

sudo nano /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf

Fügen Sie die folgenden Zeilen hinzu:

[client]
ssl-ca=/etc/mysql-ssl/ca-cert.pem
ssl-cert=/etc/mysql-ssl/client-cert.pem
ssl-key=/etc/mysql-ssl/client-key.pem

Speichern Sie die Datei, wenn Sie fertig sind.

Schritt 7: Überprüfen Sie die Remoteverbindungen

Nachdem alles konfiguriert ist, müssen Sie überprüfen, ob Sie erfolgreich eine Verbindung zum MariaDB-Server herstellen können oder nicht.

Führen Sie auf dem Clientcomputer den folgenden Befehl aus, um eine Verbindung zum MariaDB-Server herzustellen:

mysql -u remote -h 192.168.0.190 -p mysql

Sie werden aufgefordert, das remoteBenutzerpasswort einzugeben . Nachdem Sie das Passwort eingegeben haben, werden Sie am Remote-MariaDB-Server angemeldet.

Überprüfen Sie den Status der Verbindung mit dem folgenden Befehl:

MariaDB [mysql]> status

Sie sollten die folgende Ausgabe sehen:

--------------
mysql  Ver 15.1 Distrib 10.2.7-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Connection id:      62
Current database:   mysql
Current user:       [email protected]
SSL:            Cipher in use is DHE-RSA-AES256-SHA
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server:         MariaDB
Server version:     10.0.31-MariaDB-0ubuntu0.16.04.2 Ubuntu 16.04
Protocol version:   10
Connection:     192.168.0.190 via TCP/IP
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:       3306
Uptime:         1 hours 31 min 31 sec

Sie sollten SSL: Cipher in use is DHE-RSA-AES256-SHAin der obigen Ausgabe sehen. Das bedeutet, dass Ihre Verbindung jetzt mit SSL sicher ist.

Fazit

Herzliche Glückwünsche! Sie haben erfolgreich einen MariaDB-Server mit SSL-Unterstützung konfiguriert. Sie können jetzt anderen Clients Zugriff gewähren, um über SSL auf den MariaDB-Server zuzugreifen.



Leave a Comment

So installieren Sie Apache Cassandra 3.11.x unter Ubuntu 16.04 LTS

So installieren Sie Apache Cassandra 3.11.x unter Ubuntu 16.04 LTS

Verwenden Sie ein anderes System? Apache Cassandra ist ein kostenloses und Open-Source-NoSQL-Datenbankverwaltungssystem, das Skalierbarkeit bietet

MongoDB sichern

MongoDB sichern

MongoDB ist standardmäßig nicht sicher. Wenn Sie MongoDB installieren und starten, ohne es für die Authentifizierung zu konfigurieren, werden Sie eine schlechte Zeit haben

So installieren Sie Apache Cassandra 3.11.x unter Debian 9

So installieren Sie Apache Cassandra 3.11.x unter Debian 9

Verwenden Sie ein anderes System? Apache Cassandra ist ein kostenloses und Open-Source-NoSQL-Datenbankverwaltungssystem, das Skalierbarkeit bietet

Sichern von MySQL-Datenbanken

Sichern von MySQL-Datenbanken

MySQL ist die weltweit beliebteste Software für Datenbanken. Es ist sehr wichtig sicherzustellen, dass Sie Sicherungen Ihrer Datenbank haben. Diese Praxis erlauben

Installieren Sie neuere Versionen von MongoDB unter Debian 7

Installieren Sie neuere Versionen von MongoDB unter Debian 7

MongoDB ist eine schnelle und leistungsstarke NoSQL-Datenbank. Debian-Repositorys werden jedoch langsam aktualisiert und enthalten häufig sehr alte Versionen von Paketen. Diese Tutoria

So installieren Sie MyCLI unter Linux (CentOS, Debian, Fedora und Ubuntu)

So installieren Sie MyCLI unter Linux (CentOS, Debian, Fedora und Ubuntu)

Einführung MyCLI ist ein Befehlszeilenclient für MySQL und MariaDB, mit dem Sie automatisch vervollständigen können und der bei der Syntax Ihrer SQL-Befehle hilft. MyCL

So installieren Sie Laravel GitScrum unter CentOS 7

So installieren Sie Laravel GitScrum unter CentOS 7

Laravel GitScrum oder GitScrum ist ein Open-Source-Produktivitätswerkzeug, mit dem Entwicklungsteams die Scrum-Methodik auf ähnliche Weise implementieren können

Konfigurieren Sie MariaDB unter OpenBSD 6

Konfigurieren Sie MariaDB unter OpenBSD 6

In diesem Artikel werde ich Ihnen zeigen, wie Sie MariaDB unter OpenBSD 6 installieren und so konfigurieren, dass ein Chroot-Webserver (Apache oder Nginx) darauf zugreifen kann. Sie werden auch

So installieren und verwenden Sie ArangoDB unter Ubuntu 16.04

So installieren und verwenden Sie ArangoDB unter Ubuntu 16.04

Verwenden Sie ein anderes System? Einführung ArangoDB ist eine Open-Source-NoSQL-Datenbank mit einem flexiblen Datenmodell für Dokumente, Grafiken und Schlüsselwerte. Es ist

So installieren Sie PostgreSQL 11.1 unter Arch Linux

So installieren Sie PostgreSQL 11.1 unter Arch Linux

Voraussetzungen Ein Vultr-Server, auf dem Arch Linux auf dem neuesten Stand ist (siehe diesen Artikel). Sudo-Zugriff. Befehle, die als root ausgeführt werden müssen, werden mit dem Präfix # und eins versehen

Bereitstellen eines Replikatsets mit hoher Verfügbarkeit in MongoDB 3.4 Verwenden von Keyfile für die Zugriffssteuerung unter Ubuntu 16.04

Bereitstellen eines Replikatsets mit hoher Verfügbarkeit in MongoDB 3.4 Verwenden von Keyfile für die Zugriffssteuerung unter Ubuntu 16.04

Seit seiner Konzeption im Jahr 2009 ist MongoDB führend in der NoSQL-Branche. Eines der Kernkonzepte von MongoDB ist das Replikatset, also bevor Sie mit i arbeiten

Mehrere MySQL- oder MariaDB-Datenbanken automatisch sichern

Mehrere MySQL- oder MariaDB-Datenbanken automatisch sichern

Einführung In diesem Artikel erfahren Sie, wie Sie mehrere MySQL- oder MariaDB-Datenbanken, die sich auf demselben Computer befinden, mithilfe eines benutzerdefinierten Bash-Skripts sichern

So sichern, wiederherstellen oder übertragen Sie MySQL / MariaDB-Datenbanken unter Ubuntu 16.04

So sichern, wiederherstellen oder übertragen Sie MySQL / MariaDB-Datenbanken unter Ubuntu 16.04

Das Sichern ist ein wichtiger Bestandteil des Umgangs mit Datenbanken. Unabhängig davon, ob Sie eine Unternehmenswebsite betreiben oder nur WordPress hosten, ist es wichtig, Sie zu sichern

So installieren und konfigurieren Sie ArangoDB unter CentOS 7

So installieren und konfigurieren Sie ArangoDB unter CentOS 7

Verwenden Sie ein anderes System? Einführung ArangoDB ist eine Open-Source-NoSQL-Datenbank mit einem flexiblen Datenmodell für Dokumente, Grafiken und Schlüsselwerte. Es ist

Richten Sie Barnyard 2 mit Snort ein

Richten Sie Barnyard 2 mit Snort ein

Barnyard2 ist eine Möglichkeit, die Binärausgaben von Snort in einer MySQL-Datenbank zu speichern und zu verarbeiten. Bevor wir beginnen Bitte beachten Sie, dass Sie kein Schnarchen haben

So installieren Sie Redis unter Ubuntu 15.10

So installieren Sie Redis unter Ubuntu 15.10

Redis ist eine Schlüsselwert-Datenspeicherlösung, die häufig als NoSQL-Datenbank bezeichnet wird. Es kann sehr hohe Lese- / Schreibgeschwindigkeiten erreichen, da es sich um ein In-Memory-Bu handelt

Erste Schritte mit SQL Server 2017 (MS-SQL) unter CentOS 7 mit Docker

Erste Schritte mit SQL Server 2017 (MS-SQL) unter CentOS 7 mit Docker

Voraussetzungen Docker Engine 1.8+. Mindestens 4 GB Speicherplatz. Mindestens 4 GB RAM. Schritt 1. Docker installieren Um SQL-Server zu installieren, muss Docker mus

So installieren Sie MariaDB 10.3 oder MySQL 8.0 unter Arch Linux

So installieren Sie MariaDB 10.3 oder MySQL 8.0 unter Arch Linux

Voraussetzungen Ein Vultr-Server, auf dem Arch Linux auf dem neuesten Stand ist (siehe diesen Artikel). Sudo-Zugriff: Befehle, die als Root ausgeführt werden müssen, werden mit dem Präfix # und eins versehen

So installieren Sie Apache Cassandra 3.11.x unter CentOS 7

So installieren Sie Apache Cassandra 3.11.x unter CentOS 7

Verwenden Sie ein anderes System? Apache Cassandra ist ein kostenloses und Open-Source-NoSQL-Datenbankverwaltungssystem, das Skalierbarkeit bietet

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.