Категории

Как сделать ежедневный бэкап почты через rsync по SSH

2025-10-07 10:33:51 | Статья из категории: Linux
Организация ежедневных бэкапов почты с помощью rsync по SSH

Если у вас есть почтовый сервер на Linux (например, с Postfix и Dovecot, использующий формат Maildir), и вы хотите делать регулярные резервные копии почтовых ящиков — лучший способ это сделать — rsync по SSH. Это безопасно, эффективно и не нарушает работу почтового сервера.

В этой статье мы рассмотрим пошаговую настройку ежедневного бэкапа без использования сетевых файловых систем (NFS, Samba), без монтирования и без риска повредить "живую" почту.

Почему rsync по SSH?

Требования

Шаг 1: Подготовка на почтовом сервере

Убедитесь, что у вас есть пользователь, от имени которого будет происходить копирование. Лучше создать отдельного пользователя без прав на запись в систему:

sudo adduser backupuser
sudo usermod -s /usr/sbin/nologin backupuser

Убедитесь, что этот пользователь имеет права на чтение почтовой директории (обычно /var/mail или /mnt/mail). Например:

sudo setfacl -R -m u:backupuser:rx /mnt/mail

Или добавьте его в группу владельца:

sudo usermod -aG mail backupuser

Шаг 2: Настройка SSH-ключа на бэкап-сервере

На сервере, который будет забирать бэкапы (например, с IP 10.11.12.113), выполните:

ssh-keygen -t ed25519 -f ~/.ssh/mail_backup -N ""

Это создаст приватный ключ ~/.ssh/mail_backup и публичный ~/.ssh/mail_backup.pub.

Скопируйте публичный ключ на почтовый сервер:

ssh-copy-id -i ~/.ssh/mail_backup.pub backupuser@внешний_IP_почтового_сервера

Если ssh-copy-id недоступен, вручную добавьте содержимое mail_backup.pub в файл /home/backupuser/.ssh/authorized_keys на почтовом сервере.

Проверьте подключение:

ssh -i ~/.ssh/mail_backup backupuser@внешний_IP_почтового_сервера

Должно подключиться без пароля.

Шаг 3: Тестовая синхронизация

Запустите вручную команду rsync для проверки:

rsync -avz --delete \
-e "ssh -i /home/user/.ssh/mail_backup -o StrictHostKeyChecking=yes" \
backupuser@внешний_IP_почтового_сервера:/mnt/mail/ \
/mnt/mail_backup/

Обратите внимание на слэш в конце /mnt/mail/ — он означает "содержимое папки", а не саму папку.

Флаг --delete удаляет на бэкап-сервере файлы, которые уже удалены на почтовом (опционально, но рекомендуется для экономии места).

Шаг 4: Автоматизация через cron

Откройте crontab на бэкап-сервере:

crontab -e

Добавьте строку для ежедневного бэкапа в 02:00 ночи:

0 2 * * * /usr/bin/rsync -avz --delete -e "ssh -i /home/user/.ssh/mail_backup -o StrictHostKeyChecking=yes -o ConnectTimeout=30" backupuser@внешний_IP_почтового_сервера:/mnt/mail/ /mnt/mail_backup/ >> /var/log/mail_backup.log 2>&1

Разбор параметров:

Шаг 5: (Опционально) Ограничение доступа по IP

Если ваш бэкап-сервер выходит в интернет через статический внешний IP (например, IP вашего pfSense), ограничьте SSH-доступ на почтовом сервере только для этого IP.

В файле /etc/ssh/sshd_config добавьте:

AllowUsers backupuser@123.45.67.89

Или через /etc/hosts.allow:

sshd: 123.45.67.89
sshd: ALL : deny

После изменений перезапустите SSH:

sudo systemctl reload sshd

Важные замечания

Заключение

Синхронизация почты через rsync по SSH — это простой, безопасный и надёжный способ делать резервные копии. Он не требует дополнительных сервисов, не мешает работе почтового сервера и отлично работает даже в условиях ограниченного дискового пространства.

Настройте один раз — и спите спокойно, зная, что ваша почта в безопасности.

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

Важно: Блог-эксперимент

Внимание: Cтатьи здесь сгенерированны через нейросеть, не правил ошибки, да и не до этого пока. Блог только запустил. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я делал минимум один раз. Сервера стоят, клиенты довольны, дата-центры не горят.

Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.

Посетителей сегодня: 0


© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA
Кто я | Контакты и регион