Ако някога сте използвали MySQL, има вероятност да сте направили резервни копия на вашата база данни. Ако сте направили резервни копия на вашата база данни, има вероятност поне веднъж да сте помислили как бихте могли да ги защитите. В тази публикация в блога ще ви кажем как да направите точно това.
Защо трябва да защитите своите MySQL архиви?
Преди да ви кажем как трябва да защитите вашите MySQL резервни копия, вероятно трябва да ви кажем защо трябва да ги защитите на първо място. Какво изобщо имаме предвид под „осигуряване“ на вашите MySQL архиви? Резервните копия на MySQL трябва да са защитени по подразбиране, нали? За съжаление, не всичко е толкова просто, колкото изглежда. За да вземете и поддържате защитени резервни копия на MySQL, трябва да имате предвид следните неща:
-
Сигурно вземете своите резервни копия на MySQL
-
Съхранете сигурно вашите резервни копия на MySQL
-
Безопасно прехвърляне на вашите резервни копия на MySQL
Сега очевидно това е по-лесно да се каже, отколкото да се направи, но ние ще предоставим някои общи съвети, които могат да ви насочат в правилната посока.
Осигуряване на MySQL архиви
-
За да вземете сигурно вашите резервни копия на MySQL, като използвате например mysqldump, помислете за поставянето на потребителското име и паролата на вашия Потребител на MySQL вътре в my.cnf. Можете дори да създадете .my.cnf файл във вашата домашна директория, да съхраните потребителското име и паролата там, след което да използвате опцията --defaults-extra-file, за да кажете на MySQL да прочете този файл след глобалния файл с опции:
[mysqldump] user=demo_user password=demo_password
По този начин вече не е необходимо да предоставяте паролата си за MySQL, когато изпълнявате mysqldump - като поставите вашето потребителско име и парола вътре в my.cnf, вие правите паролата си невидима за никой друг, освен за администратори на база данни.
-
Помислете да разгледате mysqldump-secure:това е POSIX съвместим скрипт за обвивка за mysqldump с възможности за криптиране. Инструментът може да архивира бази данни като отделни файлове. Базите данни също могат да бъдат поставени в черен списък от архивиране. Инструментът може също да криптира вашите MySQL бази данни и също така е самоутвърждаващ се, което означава, че ако нещо се обърка, той ще ви каже какво се е случило и как да го поправите, така че ако търсите алтернатива на mysqldump, определено помислете да му дадете опитайте.
-
След като направите резервно копие на вашите MySQL или MariaDB екземпляри от база данни, помислете за криптирането му. Вероятно данните са един от най-ценните активи за вашата организация и като ги криптирате, можете да сте сигурни, че са защитени правилно. За щастие, криптирането на MySQL архиви не е много сложно и може да се направи по няколко начина, включително криптиране на локалния файл и криптиране на архива в движение. За да шифровате локално копие на архива си, просто направете резервно копие на данните, съхранявани в MySQL, след което го криптирайте, като използвате, например, OpenSSL (заменете паролата с паролата, която искате да използвате):
$ openssl enc -aes-256-cbc -salt -in backup.tar.gz -out backup.tar.gz.enc -k password
Вашето архивно копие може да бъде дешифрирано, като изпълните:
$ openssl aes-256-cbc -d -in backup.tar.gz.enc -out backup.tar.gz -k password
Можете също да помислите за криптиране на резервните си копия в движение. За да направите това, като цяло ще трябва да приложите криптиране, когато архивът се генерира (т.е. генериране на архива, компресиране и криптиране). Ето как да направите това за MySQL с помощта на mysqldump (вашият архив ще се нарича encrypted_backup.xb.enc):mysqldump --all-databases --single-transaction --triggers --routines | gzip | openssl enc -aes-256-cbc -k password > encrypted_backup.xb.enc
Можете също да шифровате вашите архиви с помощта на ClusterControl:просто поставете отметка в квадратчетата „Използване на компресия“ и (или) „Активиране на криптиране“ в последния етап от архивирането и сте готови . Да, толкова е лесно!
Може да искате да разгледате и шел скрипт, наречен mysql_secure_installation (или mariadb_secure_installation, ако използвате MariaDB). Скриптът ви позволява да:
-
Задайте парола за root акаунтите на MySQL.
-
Премахнете root акаунти, които са достъпни извън локалния хост.
-
Премахнете всички анонимни потребителски акаунти и тестовата база данни, до които могат да имат достъп анонимни потребители.
Ако внедрявате MySQL или MariaDB с помощта на ClusterControl, нещо, което можете да правите свободно с Community Edition, процесът на внедряване автоматично се грижи за тези мерки за сигурност.
Резюме
Когато става въпрос за защита на вашите MySQL архиви, списъкът с нещата, които можете да направите, е доста дълъг. Надяваме се, че тази публикация в блога ви е дала някои идеи за това какво можете да направите, за да защитите вашите резервни копия на MySQL или MariaDB:като цяло, резервните копия могат да бъдат защитени, като направите паролата ви незабележима, когато mysqldump се извика, също и когато криптирате вашите резервни копия локално или на- мухата.