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 []:[email protected]

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 [email protected]:/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:       [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

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.



Hoe Apache Cassandra 3.11.x op CentOS 7 te installeren

Hoe Apache Cassandra 3.11.x op CentOS 7 te installeren

Gebruikt u een ander systeem? Apache Cassandra is een gratis en open source NoSQL-databasebeheersysteem dat is ontworpen om schaalbaarheid te bieden

Hoe MongoDB 4.0 op Arch Linux te installeren

Hoe MongoDB 4.0 op Arch Linux te installeren

Vereisten Een Vultr-server die up-to-date is Arch Linux (zie dit artikel) Sudotoegang: opdrachten die als root moeten worden uitgevoerd, worden voorafgegaan door # en één

MongoDB beveiligen

MongoDB beveiligen

MongoDB is standaard niet veilig. Als u MongoDB installeert en start zonder het voor authenticatie te configureren, zult u een slechte tijd hebben

MariaDB 10.3 of MySQL 8.0 installeren op Arch Linux

MariaDB 10.3 of MySQL 8.0 installeren op Arch Linux

Vereisten Een Vultr-server die up-to-date is Arch Linux (zie dit artikel.) Sudotoegang: opdrachten die als root moeten worden uitgevoerd, worden voorafgegaan door # en één

Configureer MariaDB op OpenBSD 6

Configureer MariaDB op OpenBSD 6

In dit artikel laat Ill zien hoe je MariaDB op OpenBSD 6 installeert en configureert om toegankelijk te zijn voor een gechrooted webserver (Apache of Nginx). Je zult ook

ArangoDB installeren en gebruiken op Ubuntu 16.04

ArangoDB installeren en gebruiken op Ubuntu 16.04

Gebruikt u een ander systeem? Inleiding ArangoDB is een open source NoSQL-database met een flexibel gegevensmodel voor documenten, grafieken en sleutel / waarden. Het is

Hoe WordPress te configureren met Redis

Hoe WordPress te configureren met Redis

Redis is een datastructuurwinkel. Het is populair bij WordPress-sites omdat het grote prestatieverbeteringen biedt vanwege de geoptimaliseerde aanpak bij caching.

Een back-up maken van MySQL-databases

Een back-up maken van MySQL-databases

MySQL is de meest populaire software ter wereld die wordt gebruikt voor databases. Het is erg belangrijk om ervoor te zorgen dat u back-ups van uw database heeft. Deze praktijk staat toe

Maak automatisch een back-up van meerdere MySQL- of MariaDB-databases

Maak automatisch een back-up van meerdere MySQL- of MariaDB-databases

Inleiding In dit artikel leest u goed hoe u een back-up maakt van meerdere MySQL- of MariaDB-databases die op dezelfde machine zitten met behulp van een aangepaste bash-scrip

Installeer RockMongo op CentOS 7

Installeer RockMongo op CentOS 7

RockMongo is een webgebaseerde MongoDB-beheertool die vergelijkbaar is met de MySQL-beheertool: phpMyAdmin. Deze tutorial behandelt het installatieproces

ArangoDB installeren en configureren op CentOS 7

ArangoDB installeren en configureren op CentOS 7

Gebruikt u een ander systeem? Inleiding ArangoDB is een open source NoSQL-database met een flexibel gegevensmodel voor documenten, grafieken en sleutel / waarden. Het is

Hoe Apache Cassandra 3.11.x op Ubuntu 16.04 LTS te installeren

Hoe Apache Cassandra 3.11.x op Ubuntu 16.04 LTS te installeren

Gebruikt u een ander systeem? Apache Cassandra is een gratis en open source NoSQL-databasebeheersysteem dat is ontworpen om schaalbaarheid te bieden

Implementeer een replicaset met hoge beschikbaarheid in MongoDB 3.4 met behulp van Keyfile voor toegangscontrole op Ubuntu 16.04

Implementeer een replicaset met hoge beschikbaarheid in MongoDB 3.4 met behulp van Keyfile voor toegangscontrole op Ubuntu 16.04

Sinds de oprichting in 2009 leidt MongoDB de NoSQL-industrie. Een van de kernconcepten van MongoDB is de replicaset, dus voordat u met i gaat werken

Installeer nieuwere versies van MongoDB op Debian 7

Installeer nieuwere versies van MongoDB op Debian 7

MongoDB is een snelle en krachtige NoSQL-database. Debian-repositorys worden echter langzaam bijgewerkt en bevatten vaak zeer oude versies van pakketten. Deze tutoria

Stel boerenerf 2 in met snuiven

Stel boerenerf 2 in met snuiven

Barnyard2 is een manier om de binaire uitvoer van Snort op te slaan en te verwerken in een MySQL-database. Voordat we beginnen Houd er rekening mee dat als u geen snurkt

Hoe phpRedisAdmin op CentOS 7 te installeren

Hoe phpRedisAdmin op CentOS 7 te installeren

phpRedisAdmin is een webapplicatie die Redis-databases beheert met een intuïtieve grafische gebruikersinterface. Deze tutorial legt uit hoe te installeren

Hoe Redis op Ubuntu 15.10 te installeren

Hoe Redis op Ubuntu 15.10 te installeren

Redis is een oplossing voor gegevensopslag met een sleutel en wordt vaak een NoSQL-database genoemd. Het kan zeer hoge lees- / schrijfsnelheden bereiken omdat het een in-memory bu is

MyCLI installeren op Linux (CentOS, Debian, Fedora en Ubuntu)

MyCLI installeren op Linux (CentOS, Debian, Fedora en Ubuntu)

Inleiding MyCLI is een opdrachtregelclient voor MySQL en MariaDB waarmee u automatisch kunt aanvullen en helpt met de syntaxis van uw SQL-opdrachten. MyCL

MySQL / MariaDB-databases back-uppen, herstellen of overdragen op Ubuntu 16.04

MySQL / MariaDB-databases back-uppen, herstellen of overdragen op Ubuntu 16.04

Back-up maken is een belangrijk onderdeel van het omgaan met databases. Ongeacht of u een bedrijfssite runt of alleen WordPress host, het is belangrijk om een ​​back-up van u te maken

OrientDB Community Edition installeren en configureren op CentOS 7

OrientDB Community Edition installeren en configureren op CentOS 7

OrientDB is een next-gen multi-model open source NoSQL DBMS. Met ondersteuning voor meerdere datamodellen kan OrientDB meer functionaliteit en flexibiliteit bieden in

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.