Я хочу запустить rsync через зашифрованное соединение SSL / TLS. Он не делает этого напрямую, поэтому я изучаю варианты. Программа stunnel выглядит многообещающей, хотя и более сложной, чем задуманная, из-за необходимости перескакивать соединения с опцией -r. Однако я обнаружил, что есть опция -l для запуска программы. Я предполагаю, что это работает, имея два процесса: один для выполнения работы SSL / TLS, а другой - рабочий, с которым общается клиент. Затем они будут связываться с помощью пары труб или двустороннего разъема между ними.
Что показалось мне странным, когда я просмотрел ряд веб-страниц, чтобы увидеть, как это правильно настроить, так это то, что независимо от того, работает ли он как автономный демон или под супер-демоном, таким как inetd, аргументы для rsync одинаковы. Как rsync --daemon знает, следует ли ему открывать сокет и прослушивать его для многих подключений или просто обслуживать одно подключение, взаимодействуя с дескрипторами stdin / stdout, когда он запускается (который действительно прошел бы дополнительный процесс для обрабатывать шифрование, описание и уровень протокола SSL / TLS)?
И затем мне нужно найти способ обернуть клиента, чтобы он выполнял SSL / TLS с помощью одной простой команды (в отличие от переключения соединений, которое, похоже, предпочитает stunnel).
И затем мне нужно найти способ обернуть клиента, чтобы он выполнял SSL / TLS с помощью одной простой команды (в отличие от переключения соединений, которое, похоже, предпочитает stunnel).
rsync имеет --rsh
возможность создать stunnel и использовать stdin / stdout на стороне клиента, а stunnel имеет exec
возможность создать rsync на стороне сервера - объединение этих двух даст вам то, что вы хотите. Видеть Доззи rsync через SSL для получения дополнительной информации и доступных сценариев для запуска этой конфигурации (для загрузки требуется git).
Из раздела по --daemon
в rsync(1)
страница руководства:
Если стандартный ввод - это сокет, тогда rsync будет считать, что он запускается через inetd, в противном случае он отсоединится от текущего терминала и станет фоновым демоном.
Вы можете увидеть аргументы командной строки, которые применяются к режиму демона, запустив:
rsync --daemon --help