Säker MariaDB med SSL-stöd på Ubuntu 16.04

MariaDB är en gratis databas med öppen källkod och är den mest använda drop-in-ersättningen för MySQL. Den är gjord av utvecklarna av MySQL och avsedd att förbli gratis under GNU GPL. Den är väldigt snabb, skalbar och kommer med en mängd funktioner som gör den väldigt mångsidig för en mängd olika användningsfall.

Denna handledning går igenom hur du installerar och konfigurerar MariaDB med SSL-stöd på Ubuntu 16.04.

Krav

  • En ny Ubuntu 16.04 Vultr-instans.
  • En icke-root-användare med sudo-privilegier.
  • En statisk IP-adress 192.168.0.190 är konfigurerad på serverinstansen.
  • En statisk IP-adress 192.168.0.191 är konfigurerad på klientdatorn.

Steg 1: Installera MariaDB

Som standard är den senaste versionen av MariaDB inte tillgänglig i Ubuntu 16.04-förvaret; så du måste lägga till MariaDB-förvaret till ditt system.

Ladda först ner nyckeln med följande kommando:

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

Lägg sedan till MariaDB-förvaret i /etc/apt/sources.listfilen:

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

Uppdatera apt index med följande kommando:

sudo apt-get update -y

När apt index har uppdaterats installerar du MariaDB-servern med följande kommando:

sudo apt-get install mariadb-server -y

Starta MariaDB-servern och låt den starta vid uppstart:

sudo systemctl start mysql
sudo systemctl enable mysql

Därefter måste du köra mysql_secure_installationskript för att säkra MariaDB-installationen. Det här skriptet låter dig ställa in root-lösenordet, ta bort anonyma användare, förbjuda fjärrinloggning för root och ta bort testdatabasen:

sudo mysql_secure_installation

Steg 2: Skapa ett SSL-certifikat och en privat nyckel för servern

Skapa först en katalog för att lagra alla nyckel- och certifikatfiler.

sudo mkdir /etc/mysql-ssl

Ändra sedan katalogen till /etc/mysql-ssloch skapa CA-certifikatet och den privata nyckeln med följande kommando:

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

Svara på alla frågorna enligt nedan:

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]

Skapa sedan en privat nyckel för servern med följande kommando:

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

Svara på alla frågor som du gjorde i föregående kommando.

Exportera sedan serverns privata nyckel till en nyckel av RSA-typ med följande kommando:

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

Skapa slutligen ett servercertifikat med CA-certifikatet enligt följande:

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

Du kan nu se alla certifikat och nyckel med följande kommando:

ls

Du bör se följande utdata:

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

När du är klar kan du gå vidare till nästa steg.

Steg 3: Konfigurera MariaDB Server för att använda SSL

Du bör ha alla certifikat och en privat nyckel; och nu måste du konfigurera MariaDB för att använda nyckeln och certifikaten. Du kan göra detta genom att redigera /etc/mysql/mariadb.conf.d/50-server.cnffilen:

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

Lägg till följande rader under [mysqld]avsnittet:

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

Spara filen och starta sedan om MariaDB-tjänsten för att tillämpa dessa ändringar:

sudo systemctl restart mysql

Nu kan du kontrollera om SSL-konfigurationen fungerar eller inte med följande fråga:

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

Om konfigurationen lyckades bör du se följande utdata:

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

Du kommer att märka det have_ssloch have_opensslvärdena är aktiverade i ovanstående utgången.

Steg 4: Skapa en användare med SSL-rättigheter

Skapa en fjärranvändare som har behörighet att komma åt MariaDB-servern över SSL. Gör detta genom att köra följande kommando:

Logga först in på MySQL-skalet:

mysql -u root -p

Skapa sedan användare remoteoch ge behörighet att komma åt servern över SSL.

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

Rensa sedan privilegierna med följande kommando:

MariaDB [(none)]>FLUSH PRIVILEGES;

Slutligen, avsluta MySQL-skalet med följande kommando:

MariaDB [(none)]>exit;

Obs: 192.168.0.191 är IP-adressen för fjärranvändarens (klient) maskin.

Din server är nu redo att tillåta anslutningar till fjärranvändare.

Steg 5: Skapa klientcertifikatet

Konfigurationen på serversidan är klar. Därefter måste du skapa en ny nyckel och certifikat för klienten.

På serverdatorn skapar du klientnyckeln med följande kommando:

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

Bearbeta sedan klientens RSA-nyckel med följande kommando:

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

Slutligen, signera klientcertifikatet med följande kommando:

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

Steg 6: Konfigurera MariaDB-klienten för att använda SSL

Alla certifikat och nyckeln är redo för klienten. Därefter måste du kopiera alla klientcertifikat till valfri klientdator där du vill köra MariaDB-klienten.

Du måste installera MariaDB-klienten på klientdatorn.

Först, på klientdatorn, ladda ner nyckeln för MariaDB med följande kommando:

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

Lägg sedan till MariaDB-förvaret i /etc/apt/sources.listfilen:

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

Uppdatera sedan apt index med följande kommando:

sudo apt-get update -y

När apt index har uppdaterats installerar du MariaDB-klienten på klientdatorn med följande kommando:

sudo apt-get install mariadb-client -y

Skapa nu en katalog för att lagra alla certifikat:

sudo mkdir /etc/mysql-ssl

Kopiera sedan alla klientcertifikat från serverdatorn till klientdatorn med följande kommando:

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

Sedan måste du konfigurera MariaDB-klienten för att använda SSL. Du kan göra detta genom att skapa en /etc/mysql/mariadb.conf.d/50-mysql-clients.cnffil:

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

Lägg till följande rader:

[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

Spara filen när du är klar.

Steg 7: Verifiera fjärranslutningar

Nu när allt är konfigurerat är det dags att verifiera om du kan ansluta till MariaDB-servern framgångsrikt eller inte.

På klientdatorn, kör följande kommando för att ansluta till MariaDB-servern:

mysql -u remote -h 192.168.0.190 -p mysql

Du kommer att bli ombedd att ange remoteanvändarlösenordet. Efter att ha angett lösenordet kommer du att loggas in på den fjärranslutna MariaDB-servern.

Kontrollera anslutningens status med följande kommando:

MariaDB [mysql]> status

Du bör se följande utdata:

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

Du bör se SSL: Cipher in use is DHE-RSA-AES256-SHAi utgången ovan. Det betyder att din anslutning nu är säker med SSL.

Slutsats

Grattis! Du har framgångsrikt konfigurerat en MariaDB-server med SSL-stöd. Du kan nu ge åtkomst till andra klienter för att komma åt MariaDB-servern över SSL.


Installera InfluxDB på Ubuntu 14

Installera InfluxDB på Ubuntu 14

Inledning InfluxDB är en öppen källkod, distribuerad, tidsseriedatabas utan externa beroenden. Ja, du läser paragrafen för inga externa beroenden

Hur man installerar Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Hur man installerar Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar och konfigurerar ArangoDB på CentOS 7

Hur man installerar och konfigurerar ArangoDB på CentOS 7

Använder du ett annat system? Inledning ArangoDB är en NoSQL-databas med öppen källkod med en flexibel datamodell för dokument, grafer och nyckel-värden. Det är

Hur man installerar Laravel GitScrum på CentOS 7

Hur man installerar Laravel GitScrum på CentOS 7

Laravel GitScrum, eller GitScrum är ett produktivitetsverktyg med öppen källkod designat för att hjälpa utvecklingsteam att implementera Scrum-metoden på ett liknande sätt

Säkerhetskopiera flera MySQL- eller MariaDB-databaser automatiskt

Säkerhetskopiera flera MySQL- eller MariaDB-databaser automatiskt

Inledning I den här artikeln, gå igenom hur man säkerhetskopierar flera MySQL- eller MariaDB-databaser som sitter på samma maskin med hjälp av ett anpassat bash-skript

Hur man installerar och konfigurerar OrientDB Community Edition på CentOS 7

Hur man installerar och konfigurerar OrientDB Community Edition på CentOS 7

OrientDB är en nästa generations multi-modell öppen källkod NoSQL DBMS. Med stöd för flera datamodeller kan OrientDB ge mer funktionalitet och flexibilitet i

Säkra MongoDB

Säkra MongoDB

MongoDB är inte säkert som standard. Om du installerar MongoDB och startar den utan att konfigurera den för autentisering, kommer du att ha en dålig tid

Säkerhetskopiera MySQL-databaser

Säkerhetskopiera MySQL-databaser

MySQL är den mest populära programvaran i världen som används för databaser. Att se till att du har säkerhetskopior av din databas är mycket viktigt. Denna praxis tillåter

Hur man säkerhetskopierar och återställer PostgreSQL-databaser på Ubuntu 16.04

Hur man säkerhetskopierar och återställer PostgreSQL-databaser på Ubuntu 16.04

Introduktion PostgreSQL är ett gratis och öppen källkod för databashanteringssystem som kan användas för att lagra information relaterad till webbplatser. Det är också känt a

Hur man installerar PostgreSQL 11.1 på Arch Linux

Hur man installerar PostgreSQL 11.1 på Arch Linux

Förutsättningar En Vultr-server som kör uppdaterad Arch Linux (se den här artikeln.) Sudo-åtkomst. Kommandon som krävs för att köras som root har prefixet # och ett

Distribuera en replikuppsättning med hög tillgänglighet i MongoDB 3.4 med nyckelfil för åtkomstkontroll på Ubuntu 16.04

Distribuera en replikuppsättning med hög tillgänglighet i MongoDB 3.4 med nyckelfil för åtkomstkontroll på Ubuntu 16.04

Sedan starten 2009 har MongoDB lett NoSQL-branschen. Ett av kärnkoncepten i MongoDB är Replica Set, så innan du arbetar med i

Installera nyare versioner av MongoDB på Debian 7

Installera nyare versioner av MongoDB på Debian 7

MongoDB är en snabb och kraftfull NoSQL-databas. Debians arkiv uppdateras dock långsamt och innehåller ofta mycket gamla versioner av paket. Denna handledning

Ställ in Barnyard 2 med snor

Ställ in Barnyard 2 med snor

Barnyard2 är ett sätt att lagra och bearbeta de binära utdata från Snort till en MySQL-databas. Innan vi börjar Observera att om du inte har snor

Hur man installerar Apache Cassandra 3.11.x på Debian 9

Hur man installerar Apache Cassandra 3.11.x på Debian 9

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Installera RockMongo på CentOS 7

Installera RockMongo på CentOS 7

RockMongo är ett webbaserat MongoDB Management-verktyg som liknar MySQL Management-verktyget: phpMyAdmin. Denna handledning kommer att täcka installationsprocessen

Installera InfluxDB på Debian Jessie med Telegraf

Installera InfluxDB på Debian Jessie med Telegraf

Introduktion InfluxDB är en tidsseriebaserad databas skriven i Go. InfluxDB har många praktiska användningsområden, varav en är att lagra övervakningsdata på servrar. jag

Säker MariaDB med SSL-stöd på Ubuntu 16.04

Säker MariaDB med SSL-stöd på Ubuntu 16.04

MariaDB är en gratis databas med öppen källkod och är den mest använda drop-in-ersättningen för MySQL. Den är gjord av utvecklarna av MySQL och avsedd att vara kvar

Hur man installerar phpRedisAdmin på CentOS 7

Hur man installerar phpRedisAdmin på CentOS 7

phpRedisAdmin är en webbapplikation som hanterar Redis-databaser med ett intuitivt grafiskt användargränssnitt. Denna handledning kommer att förklara hur man installerar

Hur man installerar och använder ArangoDB på Ubuntu 16.04

Hur man installerar och använder ArangoDB på Ubuntu 16.04

Använder du ett annat system? Inledning ArangoDB är en NoSQL-databas med öppen källkod med en flexibel datamodell för dokument, grafer och nyckel-värden. Det är

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer