From 6b38d26708ecbbc2c6fd2f19e9395d2e7233ce94 Mon Sep 17 00:00:00 2001 From: leo <426742@gmail.com> Date: Sun, 6 Oct 2024 10:03:18 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 48 ------------------------------------------------ 1 file changed, 48 deletions(-) diff --git a/README.md b/README.md index 54c566f..6d7bd4f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ - ### Backup all databases & files **Based on the:** https://lohvynenko.com/ru/blog/a-way-to-get-daily-postgresql-backups-from-docker-swarm.html @@ -12,50 +11,3 @@ * В скрипте `remote-backup.sh` приведен пример для удаленной синхронизации папки `backups` с другим сервером. * Скрипт должен быть запущен на другом сервере, нужно правильно указать настройки адреса сервера, пути, и кроме того, на сервере должен быть установлен ключ SSH для доступа. - - - -------------------------------------------- - -Использование rsync для создания резервных копий на удаленный сервер, при котором инициатором подключения выступает сервер бэкапов, является хорошей практикой, повышающей безопасность ваших данных. Вот несколько советов, чтобы выполнить это правильно и надежно: - -1. **Инвертируйте подключение**: - - Запускайте rsync с сервера бэкапов (сервер B), чтобы подключаться к основному серверу (сервер A) и забирать данные. Таким образом, у злоумышленника, который может получить контроль над сервером A, не будет прямого доступа к серверу B. - -2. **Используйте SSH**: - - Обязательно используйте SSH для передачи данных, чтобы обеспечить шифрование соединения. Rsync может работать через SSH (например, `rsync -avz -e ssh user@serverA:/path/to/data /local/path`). - -3. **Настройте управление доступом**: - - Ограничьте доступ к серверу A только для пользователя, который выполняет резервное копирование. - - Используйте ключи SSH для аутентификации, и храните закрытый ключ на сервере B. - -4. **Модифицируйте права на ключи**: - - Ограничьте права файлового доступа на закрытые ключи, чтобы только соответствующий пользователь мог их читать (`chmod 600`). - -5. **Используйте ограничения SSH**: - - Ограничьте команды, которые могут быть выполнены с использованием ключа SSH, назначив предопределенную команду в файле `authorized_keys` на сервере A. Это можно сделать следующим образом: - ```plaintext - command="rsync --server -logDtprze.iLsfx --delete --numeric-ids . /path/to/data",no-agent-forwarding,no-port-forwarding,no-pty ssh-rsa AAAA... user@hostname - ``` - -6. **Регулярные проверки и уведомления**: - - Настройте уведомления о сбоях и настраивайте регулярные проверки целостности данных. - -Вот пример настроек, чтобы запустить резервное копирование с сервера B (сервера бэкапов): - -1. На сервере B создайте ключ SSH (если он еще не создан): - ```sh - ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa - ``` - -2. Скопируйте публичный ключ на сервер A: - ```sh - ssh-copy-id user@serverA - ``` - -3. На сервере B настройте cron job или systemd timer для регулярного выполнения rsync. Пример крон-задачи для ежедневного выполнения копирования в 2:00 ночи: - ```plaintext - 0 2 * * * /usr/bin/rsync -avz -e ssh user@serverA:/path/to/data /local/path/to/backups - ``` - -Использование этих техник значительно повысит безопасность вашего резервного копирования и уменьшит вероятность компрометации сервера бэкапов в случае взлома основного сервера. \ No newline at end of file