Ebben a cikkben megtanuljuk konfigurálni az adatbázis szintű titkosítást a MariaDB számára.
Elkezdeni
A nyugalmi állapotú titkosításhoz a kulcskezeléssel együtt titkosítási pluginra van szükség. A titkosító plugin felelős a titkosítási kulcs kezeléséért, valamint az adatok titkosításáért / visszafejtéséért.
A MariaDB három titkosítási kulcs kezelési megoldást kínál, így az adatbázisok kezelése a titkosítási kulcsok használatától függ. Ez az oktatóanyag az adatbázis szintű titkosítást mutatja be a MariaDB File Key Management megoldás segítségével. Ez a bővítmény azonban nem nyújt kulcselforgatási funkciót.
Ha LAMP szervert használ, akkor a plugin hozzáadásához szükséges fájlok a „/ Opt / lamp” Könyvtár. Ha nem, akkor a változásokat a “/ Etc / mysql / conf.d ” mappába.
Titkosítási kulcsok létrehozása
Mielőtt titkosítanánk az adatbázist a File key management plugin segítségével, létre kell hoznunk a titkosítási kulcsokat tartalmazó fájlokat. Létrehozunk egy fájlt két információval. Ez egy hexakódolt formátumú titkosítási kulcs, 32 bites kulcsazonosítóval együtt.
Létrehozunk egy új mappát "kulcsok" ban,-ben „/ Etc / mysql /” könyvtárba, és az OpenSSL segédprogram segítségével véletlenszerűen generál 3 Hex karakterláncot, és a kimenetet egy új fájlba irányítja a kulcsok mappába. Írja be a következő parancsokat:
[e-mail védett]: ~ $ sudo mkdir / etc / mysql / keys[e-mail védett]: ~ $ echo -n "1;" $ openssl rand hex 32> / etc / mysql / keys / enc_keys "
[e-mail védett]: ~ $ echo -n "2;" $ openssl rand hex 32> / etc / mysql / keys / enc_keys "
[e-mail védett]: ~ $ echo -n "3;" $ openssl rand hex 32> / etc / mysql / keys / enc_keys "
Ahol az 1,2,3 a kulcsazonosítók; felvesszük őket, hogy létrehozzunk egy hivatkozást a titkosítási kulcsokra az innodb_default_encryption_key_id változó használatával a MariaDB-ben. A kimeneti fájl így fog kinézni:
1; 01495ba35e1c9602e14e40bd6de41bb82; 3cffa4a5d288e90108394dbf639664f8
3; 9953297ed1a58ae837486318840f5f1d
Kulcsfájl titkosítás
Könnyedén beállíthatjuk a file_key_management_filename rendszerváltozót a megfelelő elérési úttal a File Key Management plugin belsejében. De nem biztonságos a kulcsokat egyszerű szövegben hagyni. A kockázatokat bizonyos mértékben csökkenthetjük fájlengedélyek hozzárendelésével, de ez nem elegendő.
Most a korábban létrehozott kulcsokat egy véletlenszerűen generált jelszóval titkosítjuk. Ezzel szemben a kulcsméret 128/192/256 bit között változhat.
[e-mail védett]: ~ $ openssl rand -hex 192> / etc / mysql / keys / enc_paswd.kulcsEzért fogjuk használni a openssl enc parancs a terminálban a enc_key.txt fájlba enc_key.enc, a fent létrehozott titkosítási kulcs használatával. Ezenkívül a MariaDB csak az AES CBC módját támogatja a titkosítási kulcsok titkosításához.
[e-mail védett]: ~ $ openssl enc -aes-256-cbc -md sha1 -pass fájl: / etc / mysql / keys / enc_paswd.kulcs -in / etc / mysql / keys / enc_key.txt -out / etc / mysql / keys / enc_key.enc && sudo rm / etc / mysql / keys / enc_key.txtA mi is törli enc_keys.txt fájl, mivel már nincs rá szükség. Ezenkívül mindig visszafejthetjük adatainkat a MariaDB-ben, amennyiben a jelszófájlunk biztonságos.
A fájlkulcs-kezelő beépülő modul konfigurálása
Most konfiguráljuk a MariaDB-t a File Key Management beépülő modullal a következő változók hozzáadásával a konfigurációs fájlba. A konfigurációs fájlok általában itt találhatók '/ etc / mysql' és elolvassa az összes .cnf fájlok alapértelmezés szerint. Vagy létrehozhat egy új konfigurációs fájlt „Mariadb_enc.cnf ” alatt '/ etc / mysql / conf.d / Könyvtár.
Most a konfigurációs fájl ettől teljesen eltérhet. Azonban adja hozzá ezeket a titkosítási változókat az [sqld] alá. Ha a kulcs titkosítva van, a plugin konfigurálásához két rendszerváltozóra van szükség, azaz.e., file_key_management_filename és file_key_management_filekey.
[sqld]#Fájlkulcs-kezelő beépülő modul
plugin_load_add = fájl_kulcs_kezelés
file_key_management = BE 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.kulcs
# InnoDB / XtraDB titkosítás beállítása
innodb_default_encryption_key_id = 1
innodb_encrypt_tables = BE
innodb_encrypt_log = BE
innodb_encryption_threads = 4
# Aria titkosítás beállítása
aria_encrypt_tables = BE
# Temp & Log titkosítás
encrypt-tmp-disk-tables = 1
encrypt-tmp-files = 1
encrypt_binlog = BE
Az egyes rendszerváltozók részleteit a hivatalos MariaDB weboldalon találja meg.
A jelszófájl védelme
Megváltoztatjuk a MySQL könyvtár engedélyeit a jelszó és más érzékeny fájlok biztonsága érdekében. A MariaDB tulajdonjoga megváltozik az aktuális felhasználóra, amely az Ubuntuban található mysql.
sudo chown -R mysql: root / etc / mysql / keyssudo chmod 500 / etc / mysql / keys /
Most megváltoztatjuk a jelszót és a titkosított fájl engedélyeket
sudo chown mysql: root / etc / mysql / keys / enc_paswd.kulcs / etc / mysql / keys / enc_key.encsudo chmod 600 / etc / mysql / keys / enc_paswd.kulcs / etc / mysql / keys / enc_key.enc
Indítsa újra az adatbázis-szolgáltatást.
sudo service mysql indítsa újraKövetkeztetés
Ez a cikk megtudta, hogy az adatbázis-szintű titkosítás mennyire igényli az órát, és hogyan állíthatjuk be a nyugalmi állapotú titkosítást a MariaDB-ben. A File Key Management plugin egyetlen hátránya, hogy nem támogatja a kulcs forgatását. Ezen a beépülő modulon kívül azonban számos más kulcskezelési titkosítási megoldás, azaz.e., AWS Kulcskezelő beépülő modul és Eperi Kulcskezelő beépülő modul. Ezekről a bővítményekről további részleteket talál a MariaDB hivatalos weboldalán.