Beveilig MariaDB met SSL-ondersteuning op Ubuntu 16.04

MariaDB is een gratis open source database en is de meest gebruikte drop-in vervanging voor MySQL. Het is gemaakt door de ontwikkelaars van MySQL en is bedoeld om gratis te blijven onder de GNU GPL. Het is erg snel, schaalbaar en wordt geleverd met een uitgebreide reeks functies die het zeer veelzijdig maken voor een breed scala aan gebruikssituaties.

Deze tutorial zal je helpen bij het installeren en configureren van MariaDB met SSL-ondersteuning op Ubuntu 16.04.

Vereisten

  • Een nieuwe Ubuntu 16.04 Vultr-instantie.
  • Een niet-rootgebruiker met sudo-rechten.
  • Een statisch IP-adres 192.168.0.190 is geconfigureerd op de serverinstantie.
  • Op de clientcomputer is een statisch IP-adres 192.168.0.191 geconfigureerd.

Stap 1: Installeer MariaDB

Standaard is de nieuwste versie van MariaDB niet beschikbaar in de Ubuntu 16.04-repository; dus u moet de MariaDB-repository aan uw systeem toevoegen.

Download eerst de sleutel met de volgende opdracht:

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

Voeg vervolgens de MariaDB-repository toe aan het /etc/apt/sources.listbestand:

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

Werk de apt-index bij met de volgende opdracht:

sudo apt-get update -y

Nadat de apt-index is bijgewerkt, installeert u de MariaDB-server met de volgende opdracht:

sudo apt-get install mariadb-server -y

Start de MariaDB-server en schakel deze in tijdens het opstarten:

sudo systemctl start mysql
sudo systemctl enable mysql

Vervolgens moet u een mysql_secure_installationscript uitvoeren om de MariaDB-installatie te beveiligen. Met dit script kunt u het root-wachtwoord instellen, anonieme gebruikers verwijderen, root-login op afstand weigeren en de testdatabase verwijderen:

sudo mysql_secure_installation

Stap 2: Maak een SSL-certificaat en een privésleutel voor de server

Maak eerst een map om alle sleutel- en certificaatbestanden op te slaan.

sudo mkdir /etc/mysql-ssl

Wijzig vervolgens de map in /etc/mysql-sslen maak het CA-certificaat en de persoonlijke sleutel met de volgende opdracht:

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

Beantwoord alle vragen zoals hieronder weergegeven:

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 []:example@example.com

Maak vervolgens een privésleutel voor de server met de volgende opdracht:

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

Beantwoord alle vragen zoals je deed in de vorige opdracht.

Exporteer vervolgens de privésleutel van de server naar een RSA-type sleutel met de volgende opdracht:

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

Genereer als volgt een servercertificaat met het CA-certificaat:

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

U kunt nu alle certificaten en sleutels zien met de volgende opdracht:

ls

Je zou de volgende output moeten zien:

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

Als je klaar bent, kun je doorgaan naar de volgende stap.

Stap 3: Configureer MariaDB Server om SSL te gebruiken

U zou alle certificaten en een privésleutel moeten hebben; en nu moet je MariaDB configureren om de sleutel en certificaten te gebruiken. U kunt dit doen door het /etc/mysql/mariadb.conf.d/50-server.cnfbestand te bewerken :

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

Voeg de volgende regels toe onder de [mysqld]sectie:

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 = *

Sla het bestand op en start de MariaDB-service opnieuw om deze wijzigingen toe te passen:

sudo systemctl restart mysql

Nu kunt u controleren of de SSL-configuratie werkt of niet met de volgende vraag:

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

Als de configuratie is geslaagd, ziet u de volgende uitvoer:

+---------------+--------------------------------+
| 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  |
+---------------+--------------------------------+

Je zou moeten opvallen het have_sslen have_opensslwaarden worden ingeschakeld in de bovenstaande uitvoer.

Stap 4: Maak een gebruiker met SSL-rechten

Maak een externe gebruiker aan die gemachtigd is om via SSL toegang te krijgen tot de MariaDB-server. Doe dit door de volgende opdracht uit te voeren:

Log eerst in op de MySQL-shell:

mysql -u root -p

Maak vervolgens een gebruiker remoteen verleen rechten om toegang te krijgen tot de server via SSL.

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

Spoel vervolgens de rechten met de volgende opdracht:

MariaDB [(none)]>FLUSH PRIVILEGES;

Sluit ten slotte de MySQL-shell af met de volgende opdracht:

MariaDB [(none)]>exit;

Opmerking: 192.168.0.191 is het IP-adres van de externe gebruiker (client) -machine.

Uw server is nu klaar om verbindingen met externe gebruikers toe te staan.

Stap 5: Maak het clientcertificaat

Uw serverconfiguratie is voltooid. Vervolgens moet u een nieuwe sleutel en een nieuw certificaat voor de klant maken.

Maak op de servercomputer de clientsleutel met de volgende opdracht:

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

Verwerk vervolgens de client-RSA-sleutel met de volgende opdracht:

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

Teken ten slotte het clientcertificaat met de volgende opdracht:

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

Stap 6: Configureer MariaDB Client om SSL te gebruiken

Alle certificaten en de sleutel zijn klaar voor de klant. Vervolgens moet u alle clientcertificaten naar elke clientcomputer kopiëren waarop u de MariaDB-client wilt uitvoeren.

U moet de MariaDB-client op de clientcomputer installeren.

Download eerst op de clientcomputer de sleutel voor MariaDB met de volgende opdracht:

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

Voeg vervolgens de MariaDB-repository toe aan het /etc/apt/sources.listbestand:

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

Werk vervolgens de apt-index bij met de volgende opdracht:

sudo apt-get update -y

Nadat de apt-index is bijgewerkt, installeert u de MariaDB-client op de clientcomputer met de volgende opdracht:

sudo apt-get install mariadb-client -y

Maak nu een map om alle certificaten op te slaan:

sudo mkdir /etc/mysql-ssl

Kopieer vervolgens alle clientcertificaten van de servercomputer naar de clientcomputer met de volgende opdracht:

sudo scp root@192.168.0.190:/etc/mysql-ssl/client-* /etc/mysql-ssl/

Vervolgens moet u de MariaDB-client configureren om SSL te gebruiken. U kunt dit doen door een /etc/mysql/mariadb.conf.d/50-mysql-clients.cnfbestand te maken:

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

Voeg de volgende regels toe:

[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

Sla het bestand op als je klaar bent.

Stap 7: Controleer externe verbindingen

Nu alles is geconfigureerd, is het tijd om te controleren of u met succes verbinding kunt maken met de MariaDB-server.

Voer op de clientcomputer de volgende opdracht uit om verbinding te maken met de MariaDB-server:

mysql -u remote -h 192.168.0.190 -p mysql

U wordt gevraagd om het remotegebruikerswachtwoord in te voeren . Nadat u het wachtwoord heeft opgegeven, wordt u aangemeld bij de externe MariaDB-server.

Controleer de status van de verbinding met de volgende opdracht:

MariaDB [mysql]> status

Je zou de volgende output moeten zien:

--------------
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:       remote@192.168.0.191
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

Je zou SSL: Cipher in use is DHE-RSA-AES256-SHAin de bovenstaande uitvoer moeten zien . Dat betekent dat uw verbinding nu veilig is met SSL.

Gevolgtrekking

Gefeliciteerd! U heeft met succes een MariaDB-server met SSL-ondersteuning geconfigureerd. U kunt nu toegang verlenen aan andere clients voor toegang tot de MariaDB-server via SSL.

Laat een reactie achter

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.