MySQL MariaDB

Kryptering i hvile i MariaDB

Kryptering i hvile i MariaDB
Kryptering i hvile forhindrer en hacker i at få adgang til krypterede data, der er gemt på disken, selvom han har adgang til systemet. Open source-databaser MySQL og MariaDB understøtter nu kryptering-i-hvile-funktion, der opfylder kravene i den nye EU-databeskyttelseslovgivning. MySQL-kryptering i hvile er lidt anderledes end MariaDB, da MySQL kun giver kryptering til InnoDB-tabeller. Mens MariaDB også giver mulighed for at kryptere filer såsom gentag logfiler, langsomme logfiler, revisionslogfiler, fejllogfiler osv. Begge kan imidlertid ikke kryptere data på en RAM og beskytte dem mod en ondsindet rod.

I denne artikel lærer vi at konfigurere kryptering på databaseniveau til MariaDB.

Kom godt i gang

Data i hvile kryptering kræver et krypterings plugin sammen med nøglehåndtering. Krypterings plugin er ansvarlig for styring af krypteringsnøglen samt kryptering / dekryptering af data.

MariaDB leverer tre løsninger til styring af krypteringsnøgler, så hvordan databaser styrer krypteringsnøglen afhænger af den løsning, du bruger. Denne tutorial demonstrerer kryptering på databaseniveau ved hjælp af MariaDB File Key Management-løsningen. Dette plugin giver dog ikke en nøglerotationsfunktion.

Hvis du bruger en LAMP-server, findes filerne til at tilføje dette plugin i “/ Opt / lampe” vejviser. Hvis ikke, foretages ændringerne i “/ Etc / mysql / conf.d ” folder.

Oprettelse af krypteringsnøgler

Før vi krypterer databasen ved hjælp af File Key Management-plugin, er vi nødt til at oprette de filer, der indeholder krypteringsnøgler. Vi opretter en fil med to stykker information. Det er en krypteringsnøgle i et hex-kodet format sammen med en 32-bit nøgle-id.

Vi opretter en ny mappe “Nøgler” i “/ Etc / mysql /” bibliotek og brug OpenSSL-værktøjet til tilfældigt at generere 3 Hex-strenge og omdirigere output til en ny fil i nøgler folder. Indtast følgende kommandoer:

[e-mail-beskyttet]: ~ $ sudo mkdir / etc / mysql / keys
[e-mailbeskyttet]: ~ $ echo -n "1;" $ openssl rand hex 32> / etc / mysql / keys / enc_keys "
[e-mailbeskyttet]: ~ $ echo -n "2;" $ openssl rand hex 32> / etc / mysql / keys / enc_keys "
[e-mailbeskyttet]: ~ $ echo -n "3;" $ openssl rand hex 32> / etc / mysql / keys / enc_keys "

Hvor 1,2,3 er nøgleidentifikatorerne; vi inkluderer dem for at oprette en henvisning til krypteringsnøglerne ved hjælp af variablen innodb_default_encryption_key_id i MariaDB. Outputtfilen vil se sådan ud:

1; 01495ba35e1c9602e14e40bd6de41bb8
2; 3cffa4a5d288e90108394dbf639664f8
3; 9953297ed1a58ae837486318840f5f1d

Nøglefilkryptering

Vi kan nemt indstille systemvariablen file_key_management_filename med den rette sti inde i File Key Management-plugin'et. Men det er ikke sikkert at lade nøglerne være i almindelig tekst. Vi kan reducere risikoen til en vis grad ved at tildele filtilladelser, men det er ikke tilstrækkeligt.

Nu krypterer vi tidligere oprettede nøgler ved hjælp af en tilfældig genereret adgangskode. I modsætning hertil kan nøglestørrelsen variere fra 128/192/256-bit.

[e-mail-beskyttet]: ~ $ openssl rand -hex 192> / etc / mysql / keys / enc_paswd.nøgle

Derfor vil vi bruge openssl enc kommando i terminalen for at kryptere enc_key.txt fil til enc_key.enc, ved hjælp af krypteringsnøglen oprettet ovenfor. Desuden understøtter MariaDB kun CBES-tilstanden for AES for at kryptere dens krypteringsnøgler.

[e-mail-beskyttet]: ~ $ openssl enc -aes-256-cbc -md sha1 -pasfil: / etc / mysql / keys / enc_paswd.nøgle -in / etc / mysql / keys / enc_key.txt -out / etc / mysql / keys / enc_key.enc && sudo rm / etc / mysql / keys / enc_key.txt

Vi sletter også vores enc_keys.txt fil, da den ikke længere er påkrævet. Desuden kan vi altid dekryptere vores data i MariaDB, så længe vores adgangskodefil er sikker.

Konfiguration af plugin til filhåndtering

Vi konfigurerer nu MariaDB med plugin File File Management ved at tilføje følgende variabler i konfigurationsfilen. Konfigurationsfilerne er normalt placeret i '/ etc / mysql' og læs alle de .cnf-filer som standard. Eller du kan oprette en ny konfigurationsfil “Mariadb_enc.cnf ” under '/ etc / mysql / conf.d / vejviser.

Nu kan din konfigurationsfil se helt anderledes ud end dette. Tilføj dog disse krypteringsvariabler under [sqld]. Hvis nøglen er krypteret, kræver pluginet to systemvariabler at konfigurere, dvs.e., file_key_management_filename and file_key_management_filekey.

[sqld]
#File Key Management Plugin
plugin_load_add = file_key_management
file_key_management = ON file_key_management_encryption_algorithm = aes_cbc file_key_management_filename = / etc / mysql / keys / enc_keys.enc
file_key_management_filekey = / etc / mysql / keys / enc_paswd.nøgle
# InnoDB / XtraDB Encryption Setup
innodb_default_encryption_key_id = 1
innodb_encrypt_tables = TIL
innodb_encrypt_log = TIL
innodb_encryption_threads = 4
# Opsætning af Aria-kryptering
aria_encrypt_tables = TIL
# Temp & Log Encryption
krypter-tmp-disk-tabeller = 1
krypter-tmp-filer = 1
encrypt_binlog = TIL

Du kan finde detaljer for hver systemvariabel fra det officielle MariaDB-websted.

Sikring af adgangskodefilen

Vi ændrer vores MySQL-katalogtilladelser for at sikre adgangskoden og andre følsomme filer. Ejerskabet af MariaDB vil blive ændret til den nuværende bruger, som på Ubuntu er mysql.

sudo chown -R mysql: root / etc / mysql / keys
sudo chmod 500 / etc / mysql / keys /

Nu ændrer vi adgangskoden og krypterede filtilladelser til

sudo chown mysql: root / etc / mysql / keys / enc_paswd.nøgle / etc / mysql / keys / enc_key.enc
sudo chmod 600 / etc / mysql / keys / enc_paswd.nøgle / etc / mysql / keys / enc_key.enc

Genstart nu databasetjenesten.

sudo service mysql genstart

Konklusion

Denne artikel har lært, hvordan kryptering på databaseniveau er timens behov, og hvordan vi kan konfigurere kryptering i hvile i MariaDB. Den eneste ulempe ved plugin File Management Management er, at det ikke understøtter nøglerotation. Men bortset fra dette plugin, mange andre nøglehåndtering krypteringsløsninger, jeg.e., AWS Key Management Plugin og Eperi Key Management Plugin. Du kan finde flere detaljer om disse plugins fra MariaDBs officielle hjemmeside.

Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....
Bedste spil at spille med håndsporing
Oculus Quest introducerede for nylig den gode idé om håndsporing uden controllere. Med et stadigt stigende antal spil og aktiviteter, der udfører supp...
Sådan vises OSD-overlay i fuldskærms Linux-apps og -spil
Afspilning af fuldskærmsspil eller brug af apps i distraktionsfri fuldskærmstilstand kan afskære dig fra relevante systemoplysninger, der er synlige i...