Pokud jste někdy používali MySQL, je pravděpodobné, že jste si vytvořili zálohy své databáze. Pokud jste si udělali zálohy své databáze, je pravděpodobné, že jste alespoň jednou přemýšleli o tom, jak byste je mohli zabezpečit. V tomto příspěvku na blogu vám řekneme, jak přesně to udělat.
Proč byste měli zabezpečit zálohy MySQL?
Než vám řekneme, jak byste měli zabezpečit zálohy MySQL, měli bychom vám pravděpodobně říci, proč byste je měli zabezpečit. Co vůbec máme na mysli „zabezpečením“ vašich záloh MySQL? Zálohy MySQL by měly být ve výchozím nastavení zabezpečené, že? Bohužel ne vše je tak jednoduché, jak se zdá. Chcete-li pořizovat a udržovat zabezpečené zálohy MySQL, měli byste zvážit následující věci:
-
Bezpečně si zálohujte MySQL
-
Bezpečně ukládejte zálohy MySQL
-
Bezpečně přeneste své zálohy MySQL
Je zřejmé, že se to snadněji řekne, než udělá, ale poskytneme vám několik obecných rad, které vás mohou navést správným směrem.
Zabezpečení záloh MySQL
-
Chcete-li bezpečně provádět zálohy MySQL pomocí například mysqldump, zvažte zadání uživatelského jména a hesla Uživatel MySQL uvnitř my.cnf. Můžete dokonce vytvořit soubor .my.cnf ve svém domovském adresáři, uložit do něj uživatelské jméno a heslo a poté pomocí volby --defaults-extra-file sdělit MySQL, aby četl tento soubor za globálním souborem voleb:
[mysqldump] user=demo_user password=demo_password
Tímto způsobem již nemusíte při spuštění mysqldump zadávat své heslo pro MySQL – vložením uživatelského jména a hesla do souboru my.cnf bude vaše heslo neviditelné pro kohokoli jiného než pro správce databází.
-
Zvažte možnost podívat se na mysqldump-secure:je to obalový skript pro mysqldump kompatibilní s POSIX s možností šifrování. Nástroj dokáže zálohovat databáze jako samostatné soubory. Databáze mohou být také chráněny před zálohováním. Nástroj také dokáže zašifrovat vaše databáze MySQL a má také autovalidaci, což znamená, že pokud se něco pokazí, řekne vám, co se stalo a jak to opravit, takže pokud hledáte alternativu k mysqldump, rozhodně zvažte, zda mu dát zkuste.
-
Jakmile si uděláte zálohu instancí databáze MySQL nebo MariaDB, zvažte její šifrování. Je pravděpodobné, že data jsou pro vaši organizaci jedním z nejcennějších aktiv a jejich šifrováním se můžete ujistit, že jsou správně chráněna. Naštěstí šifrování záloh MySQL není příliš složité a lze jej provést několika způsoby, včetně šifrování místního souboru a šifrování zálohy za běhu. Chcete-li zašifrovat místní kopii zálohy, jednoduše vytvořte zálohu dat uložených v MySQL a poté ji zašifrujte například pomocí OpenSSL (heslo nahraďte heslem, které chcete použít):
$ openssl enc -aes-256-cbc -salt -in backup.tar.gz -out backup.tar.gz.enc -k password
Zálohu lze dešifrovat spuštěním:
$ openssl aes-256-cbc -d -in backup.tar.gz.enc -out backup.tar.gz -k password
Můžete také zvážit šifrování záloh za běhu. Chcete-li to provést, obecně byste při vytváření zálohy museli implementovat šifrování (tj. vygenerovat zálohu, komprimovat ji a zašifrovat). Zde je návod, jak to udělat pro MySQL pomocí mysqldump (vaše záloha by se jmenovala encrypted_backup.xb.enc):mysqldump --all-databases --single-transaction --triggers --routines | gzip | openssl enc -aes-256-cbc -k password > encrypted_backup.xb.enc
Zálohy můžete také šifrovat pomocí ClusterControl:jednoduše zaškrtněte políčka „Použít kompresi“ a (nebo) „Povolit šifrování“ v poslední fázi zálohování a máte hotovo . Ano, je to tak snadné!
Mohli byste se také podívat do skriptu prostředí s názvem mysql_secure_installation (nebo mariadb_secure_installation, pokud používáte MariaDB). Skript vám umožňuje:
-
Nastavte heslo pro kořenové účty MySQL.
-
Odeberte účty root, které jsou přístupné mimo místní hostitel.
-
Odstraňte všechny anonymní uživatelské účty a testovací databázi, ke kterým mají anonymní uživatelé přístup.
Pokud nasazujete MySQL nebo MariaDB pomocí ClusterControl, což je něco, co můžete volně dělat s Community Edition, proces nasazení se o tato bezpečnostní opatření automaticky postará.
Shrnutí
Pokud jde o zabezpečení záloh MySQL, seznam věcí, které můžete udělat, je poměrně dlouhý. Doufáme, že vám tento příspěvek na blogu dal nějaké nápady, co můžete udělat pro zabezpečení záloh MySQL nebo MariaDB:obecně lze zálohy zabezpečit tak, že vaše heslo bude nepozorovatelné při vyvolání mysqldump, také při šifrování záloh lokálně nebo na- moucha.