Обновить README.md
This commit is contained in:
parent
fc5ccc8c7b
commit
6b38d26708
48
README.md
48
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
|
||||
```
|
||||
|
||||
Использование этих техник значительно повысит безопасность вашего резервного копирования и уменьшит вероятность компрометации сервера бэкапов в случае взлома основного сервера.
|
Loading…
Reference in New Issue
Block a user