сервер_резервного_копирования_rsyncd

Сервер резервного копирования rsyncd

rsync должен быть установлен на всех хостах. На сервере резервного копирования работает rsyncd, а клиенты используют команду rsync для подключения к серверу.

apt -y install rsync


Nota Bene! Демон Rsync rsyncd использует TCP порт 873, поэтому служба SSH в данном случае не нужна.


На сервере резервного копирования, создаем или редактируем файл /etc/rsyncd.conf со следующим содержимым:

# create new
# any name you like
[backup]
# target directory to copy
path = /var/backup
comment = "ServerName public archive"
# hosts you allow to access
# hosts allow = 10.0.0.30
# hosts deny = *
list = true
uid = root
gid = root
read only = false

Рассмотрим некоторые настройки в файле /etc/rsyncd.conf:

  • [backup] – имя модуля, может быть любым по нашему выбору;
  • path – определяет каталог для использования модулем;
  • comment – краткое описание того, кому принадлежит модуль или для чего он предназначен;
  • list = yes – позволяет пользователям видеть список файлов в модуле. Значение no скроет модуль;
  • read only = no – позволяет пользователям выгружать файлы на сервер;
  • use chroot = no – отменяет настройку по умолчанию chroot = yes.
  • uid и gid – значение root или 0. Это обеспечит сохранность UID и GID и разрешений.

Создаем директорию указанную в конфиге, и запускаем демон:

sudo mkdir /var/backup
sudo systemctl start rsync.service

На сервере резервного копирования проверим, принимает ли соединения rsyncd:

rsync localhost::
 
backup          "ServerName public archive"

А так же, проверим на клиентах, указав имя сервера либо его ip-адрес:

rsync 10.10.10.14::
backup          "ServerName public archive"

Если все в порядке, то можно приступать к копированию файлов:

rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /home/work/source ServerName_or_ip::backup

Для большей безопасности добавьте в файл /etc/rsyncd.conf следующие директивы:

hosts allow – ее можно использовать для перечисления хостов, которым разрешен доступ к архивам rsyncd. С ее помощью, например, можно разрешить доступ только хостам из одной подсети:

hosts allow = *.local.net
hosts allow = 192.168.1.

Всем остальным хостам доступ будет закрыт, поэтому можно обойтись без директивы hosts deny

hosts deny – обычно нет нужды использовать эту директиву, если уже работает hosts allow. С ее помощью удобно закрыть доступ определенным хостам, вызывающим острое раздражение заднего технического отверстия.

Настройка защищенных модулей, недоступных другим пользователям.

Сервер rsyncd поддерживает простую аутентификацию и имеет средства управления доступом. Создадим файл, содержащий пары UserName/Password, и добавьте в конфигуратор /etc/rsyncd.conf директивы auth users и secrets file.

Сначала создайте файл с паролями. В следующем примере показано содержимое файла /etc/rsyncd-users со списком из трех пользователей и их паролями:

cat /etc/rsyncd-users
jhondoe:P@$$w0rd
babydoe:$ecre+
janedoe:8437002i

Пары UserName/Password могут быть совершенно произвольными, поскольку они никак не связаны с системными учетными записями пользователей. Пользователи rsyncd не имеют доступа к хост-системе за границами выделенных им каталогов.

Настроим для этого файла разрешения на чтение и запись только для root:

sudo chmod 0600 /etc/rsyncd-users

Определите в конфиге /etc/rsyncd.conf модули для каждого пользователя. В следующем примере показано определение модуля для babydoe, который выделяет для резервных копий этого пользователя каталог /var/backups/baby на сервере rsync:

[babydoe]
path = /var/backup/baby
comment = "Baby Doe's private storage"
log file = /var/log/rsync.log
list = true
read only = false
auth users = babydoe
secrets file = /etc/rsyncd-users
# use chroot = no
uid = root
gid = root

Создадим объявленные в модулях каталоги с разрешениями 0700, как показано ниже на примере для jhondoe_backup:

sudo mkdir /var/backup/babydoe
sudo chmod -R 0755 /var/backup/babydoe/

Попробуем аутентифицироваться:

rsync babydoe@10.10.10.14::babydoe
Password:
drwxr-xr-x          4,096 2022/11/21 08:14:10 .

И попробуем отправить файлы:

rsync -av /home/vs/source babydoe@10.10.10.14::babydoe

Nota Bene! Вывод приветственных сообщений – старая добрая традиция Unix. Эта возможность позволяет поприветствовать пользователей, объявить о простоях в обслуживании, дать советы по безопасности, резервному копированию и всему тому, что мы считаем важным.


Запишем свое сообщение в обычный текстовый файл, например в /etc/rsync-motd:

Welcome to Nevvad's rsync server. Have fun!

Затем зададим местоположение файла в начале файла /etc/rsyncd.conf:

[global]
motd file = /etc/rsync-motd

Подключаясь к серверу, пользователи будут видеть наше сообщение:

rsync 10.10.10.14::
Welcome to Nevvad's rsync server. Have fun!

backup          "ServerName public archive"
jhondoe         "Jhon Doe's private archive"
babydoe         "Baby Doe's private storage"


  • сервер_резервного_копирования_rsyncd.txt
  • Последнее изменение: 2022/11/21 14:13
  • admin