Быстро, доступно, безопасно!
Магазин готовых сайтов

Резервное копирование на 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%)