Настройка сервера rsync с авторизацией

rsync (англ. Remote Synchronization) — программа для UNIX-подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодирование данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию.
© Wikipedia

Сегодня мы рассмотрим возможность использования Rsync в качестве сервера.

Все работы, будем выполнять на Debian Linux.
Для начала нам необходимо установить rsync:
apt-get install rsync

Теперь будем настраивать его в роли сервера.
Нам необходимо создать несколько конфигурационных файлов и установить необходимые права
mkdir /etc/rsyncd/
touch /etc/rsyncd/rsyncd.conf
touch /etc/rsyncd/motd
touch /etc/rsyncd/auth.conf
chown root:wheel /etc/rsyncd/auth.conf
chmod 0600 /etc/rsyncd/auth.conf

rsyncd.conf — основной конфигурационный файл сервера.
motd — файл, содержащий общую информацию о сервере.
auth.conf — файл с логинами и паролями пользователей сервера. Обратите внимание на права доступа к данному файлу. Их необходимо поставить именно в 0600, т.к. при других — сервер будет попросту отклонять авторизацию.

Содержимое rsyncd.conf:
max connections = 50 # Максимальное кол-во соединений
syslog facility = local5 # Уровень детализации лога в syslog
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz *.rar *.mp3 # Не сжимать файлы подпадающие под маску
motd file = /etc/rsyncd/motd # Путь до файла приветствия

# Далее описываем секции их настройки для доступа к ним через rsync сервер
[backup]
# Указываем uid и gid пользователя под которыми будет предоставлен доступ к указанной директории
uid = root
gid = sys
# Доступ только для чтения (yes), или для записи (no)
read only = no
# Позволять листинг содержимого директорий? (yes/no)
list = yes
# Путь к директории, которая будет доступна в данной секции
path = /backup
# Поясняющий комментарий
comment = Backup files
# Указываем пользователя, которому будет разрешен доступ к данной секции
auth users = admin
# Указываем путь к файлу с логинами и паролями
secrets file = /etc/rsyncd/auth.conf
Можно указывать множество секций для доступа к разным директориям.
Настройки ‘auth users’ и ‘secrets file’ можно убрать и мы получим анонимный доступ к данной секции.

Содержимое файла /etc/rsyncd/auth.conf:
admin:password
someuser:somepassword

Файл /etc/rsyncd/motd можно наполнить абсолютно любой информацией.

Теперь нам необходимо выполнить настройку файла /etc/default/rsync:
Необходимо изменить следующие опции:
RSYNC_ENABLE=true # Разрешаем запуск rsync сервера
RSYNC_CONFIG_FILE=/etc/rsyncd/rsyncd.conf # Указываем путь до конфигурационного файла
RSYNC_OPTS='' # Тут можно указать дополнительные опции запуска демона

Вот и всё. Теперь мы готовы к запуску демона. Стартуем:
/etc/init.d/rsync start

Проверить работу можно следующим образом: запускаем rsync на другом сервере или пк с установленным rsync.
rsync servername::
В результате сервер должен ответить вам приветственным сообщением, а так же выдать список доступных секций.
Например так:
# rsync localhost::
#################################################################
#
# Hello from rsync server (localhost)
# Contact Name : adm@example.com
#
#################################################################

backup Backup files
other Other files

Использование клиента rsync для работы с rsync сервером.

Для синхронизации удаленной и локальной директории используйте следующую команду:
rsync -var admin@servername::backup /local/backup/dir/
После ввода rsync запросит пароль, чтобы он его не просил пароль можно сохранить в файл
touch ~/.rsync.passwd
echo password > ~/.rsync.passwd
chmod 0600 ~/.rsync.passwd

Далее используем команду:
rsync -var --password-file=~/.rsync.passwd admin@servername::backup /local/backup/dir/

Для закачки файлов на удаленный сервер rsync, необходимо всего лишь поменять местами источник и назначение и получить что-то вроде:
rsync -var --password-file=~/.rsync.passwd /local/backup/dir/ admin@servername::backup

Вот и всё. Удачи в работе с Debian!

Оригинал статьи в моем блоге: Настройка сервера rsync с авторизацией

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Time limit is exhausted. Please reload the CAPTCHA.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.