Попытка установить chroot'd rsync

хорошо... прокрученный мое собственное.

Сделанный маленьким приложением услуг .NET, которое делает, что я описал. С некоторыми уведомлениями о системном журнале и возможностью уведомить людей по SMS в случае обработок отказа.

Я буду видеть и пытаться заставить его на codeplex или SourceForge для других использовать/полагаться

Когда это произойдет, я отправлю URL здесь в комментариях

10
задан 6 July 2011 в 19:37
6 ответов

Вы испытываете необходимость для обеспечения некоторой формы доступа оболочки, чтобы смочь использовать rsync, если Вы не соединяетесь непосредственно с rsync сервером - порт по умолчанию 873 (TCP).

Из rysnc страницы справочника:

Существует два различных пути к rsync для контакта с удаленной системой: использование удаленной программной оболочки как транспорт (такой как ssh или rsh) или контакт с rsync демоном непосредственно через TCP. Транспорт удаленной оболочки используется каждый раз, когда источник или целевой путь содержат единственное двоеточие (:) разделитель после спецификации хоста. Контакт с rsync демоном непосредственно происходит, когда источник или целевой путь содержат двойное двоеточие (: :) разделитель после спецификации хоста, ИЛИ когда rsync://URL будет указан (см. также lqUSING раздел RSYNC-DAEMON FEATURES VIA A REMOTE-SHELL CONNECTIONrq для исключения к этому последнему правилу).

Для обеспечения ограниченного доступа оболочки рассмотрите следующее руководство. (Отметьте: исходная ссылка является битой), Сводка:

Эта установка сочетает лучшие функции от rsync, SSH и chroot. Rsync обеспечивает гибкость и эффективность в передаче файлов, SSH защищает данные, переданные, и chroot защищает данные по серверу от несанкционированного доступа. dummysh ограничивает доступ к rsync только.

В то время как rsync сервер реализует chroot, он испытывает недостаток в защите SSH, которая часто требуется. Кроме того, открытие дополнительного rsync порта сервера представляет угрозу безопасности и иногда не возможно или технически или с политической точки зрения. Sftp и scp испытывают недостаток в гибкости и эффективности, обеспеченной rsync, особенно когда дерево каталогов включено, такие как веб-сайт.

Или смотрите на использование rssh (существует руководство по установке rssh здесь):

rssh является ограниченной оболочкой для использования с OpenSSH, позволяя только scp и/или sftp. Это теперь также включает поддержку rdist, rsync, и cvs. Например, если у Вас есть сервер, из которого Вы только хотите позволить пользователям копировать файлы прочь через scp, не обеспечивая доступ оболочки, можно использовать rssh, чтобы сделать это.

2
ответ дан 2 December 2019 в 22:03

sftp решение также потребовало бы входа в систему ssh для всех, таким образом, Вы ничего действительно не потеряли здесь. Предоставление ssh доступ не обязательно подразумевает полный доступ оболочки, например, это показывает, как использовать ssh authorized_keys файл для разрешения резервного копирования через rsync при ограничении доступных команд просто rsync получателем.

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

Что-то вроде этого, в Вашем authorized_keys файл:

command="/usr/bin/rsync --server -a . /tmp/user1" ssh-rsa ... user1
command="/usr/bin/rsync --server -a . /tmp/user2" ssh-rsa ... user2

Кто-то использующий user1 закрытый ключ скопирует в /tmp/user1, и кто-то использующий user2 закрытый ключ скопирует в /tmp/user2. И т.д...

11
ответ дан 2 December 2019 в 22:03

Выполнить обычный rsync от клиента к удаленному серверу, но добавить дополнительный подробный переключатель: SSH -v , затем grep для Отправка команды . Вы увидите точную команду, которую клиент отправляет на удаленный сервер:

rsync -avz -e'ssh -v -i /ssh-keys/clientprivate.key' --bwlimit=8000 --delete root@server:/path/ /backup/myserver/ 2>&1 | grep "Sending command"

В моем случае это было

rsync --server -vvlogDtprze.iLsf --bwlimit=8000 --delete . /path

Добавьте это как command = "..." на удаленный сервер / home / USER /.ssh/authorized_keys, как упоминалось в @larsks. При необходимости добавьте дополнительные параметры безопасности:

no-agent-forwarding, no-port-forwarding, no-pty, no-user-rc, no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2..CPhIJ + LVULWz arnis @ server

Все вместе:

command="rsync --server -vvlogDtprze.iLsf --bwlimit=8000 --delete . /backup/path",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2..CPhIJ+LVULWz arnis@server

(Взято из очень хорошего учебника http://en.positon.org/post/Rsync-command-restriction-over-SSH )

6
ответ дан 2 December 2019 в 22:03

вы можете написать оболочку, которая обертывает rsync.

посмотрите общую идею здесь: https://sixohthree.com/1458/locking-down-rsync-using- ssh

в оболочке оболочки вы можете делать все, что хотите, и, возможно, выполнять chroot пользователя.

В моем случае мне нужно было включить виртуальную учетную запись, используя того же пользователя * nix. Мне удается сделать это, используя такую ​​оболочку плюс много строк в файле authorized_keys.Я не использовал chroot для пользователя, но я добавил уровень папки пользователя в команду rsync server.

посмотрите на пользователя процесса по-другому, используя ключ ssh

0
ответ дан 2 December 2019 в 22:03

SFTP с возможностями Rsync, без оболочки

Вы можете использовать LFTP + SFTP в среде chroot и достичь тех же результатов, что и при использовании rsync, без предоставления пользователю оболочку или выполнение любых сложных настроек в ssh с помощью оберток.

Это более безопасно и может быть значительно быстрее.

0
ответ дан 2 December 2019 в 22:03

Rsync в chroot - сложная задача :) Вы ' Мне нужно настроить минимальную среду для / bin / sh и / usr / bin / rsync в chrooted каталоге (на стороне назначения), чтобы он работал.

См. всю статью здесь, настройка rsync-environment выполняется конец
https://medium.com/@deltazero/linux-remote-backup-rsync-chroot-d797ba6babe5

0
ответ дан 2 December 2019 в 22:03

Теги

Похожие вопросы