Резервное копирование на AlmaLinux 8.10
В зависимости от стоящих задач и имеющихся возможностей организовать резервное копирование можно различными способами.
Настройка сервера на AlmaLinux 8.10 -> Резервное копирование
Архивация файлов сайта
Файлы сайта в AlmaLinux обычно расположены в следующем каталоге: /home/username/public_html соответственно надо архивировать все файлы, находящиеся в этом каталоге. Архивацию делаем скриптом на Perl или Bash. А вот дальше возникает вопрос: где её хранить?
Всё просто, когда пользователь только один. Когда их на сервере десятки или сотни возникает вопрос как их скачивать и как хранить, чтобы обеспечить конфиденциальность данных.
Для этого создадим пользователя "backup" и каталог для хранения архивов: /home/backup/users
Защита от случайного удаления
Чтобы защитить файлы от случайного удаления им необходимо изменить атрибуты файла в файловой системе Linux.
Установить дополнительную метку для защиты от удаления: chattr +i important.tar.gz Файл с атрибутом "i" нельзя изменить: его нельзя удалить или переименовать, на этот файл нельзя создать ссылку, большую часть метаданных файла нельзя изменить, а файл не может быть открыт в режиме записи. Только суперпользователь или процесс, обладающий возможностью CAP_LINUX_IMMUTABLE, может устанавливать или очищать этот атрибут.
Проверяем наличие атрибута "i": lsattr important.tar.gz
----i--------------- important.tar.gzтеперь удалить файл не сможет даже его владелец: rm important.tar.gz
rm: cannot remove 'important.tar.gz': Operation not permittedдля удаления метки используем команду: chattr -i important.tar.gz
Шифрование резервных копий
Для шифрования резервных копий будет использоваться age. Этот инструмент обеспечивает надёжное современное шифрование и при этом проще в настройке и автоматизации. За счёт более простой схемы работы снижается вероятность ошибок в эксплуатации, что для практической задачи резервного копирования особенно важно.
Для запуска по расписанию целесообразно использовать асимметричное шифрование:
- На сервере, где создаются бэкапы хранится только публичный ключ - им шифруется архив автоматически по cron;
- На сервере, где бэкап потом расшифровывают хранится приватный ключ - только он позволяет открыть архив.
Публичный ключ секретом не является, его компрометация не позволяет расшифровать архивы.
Устанавливаем age: cd /usr/local/src
curl -LO https://github.com/FiloSottile/age/releases/download/v1.3.1/age-v1.3.1-linux-amd64.tar.gz
tar -xzf age-v1.3.1-linux-amd64.tar.gz
install age/age /usr/local/bin/age
install age/age-keygen /usr/local/bin/age-keygen
Проверяем: age --version
v1.3.1
age-keygen --version
v1.3.1
Создаем ключи: age-keygen -o key.txt
Результат:
- в key.txt будет приватный ключ + публичный ключ;
- публичный ключ команда покажет на экране.
Шифруем архив: age -r age1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -o example.tar.gz.age example.tar.gz
Расшифровываем архив: age -d -i key.txt -o example.tar.gz example.tar.gz.age
Что важно:
- key.txt — секрет;
- строка age1... — не секрет;
- файл key.txt лучше сразу ограничить по правам:
chmod 600 key.txt
А лучше файл вообще удалить с сервера убедившись, что в наличии есть резервная копия. Создать его, при необходимости, достаточно просто, это обычный текстовой файл.
Метки: резервное копирование; backup
Опрос
Адаптирован ли ваш сайт для смартфонов и планшетов? (голосов: 35)
- Да - 4 (11%)

- Нет - 2 (6%)

- Не знаю - 1 (3%)

- Нет сайта - 28 (80%)

