Это команда rssh, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
rssh - ограниченная безопасная оболочка, разрешающая только scp и / или sftp
СИНТАКСИС
рш [ параметры... ] [ ... ]
рш -v
ОПИСАНИЕ
рш это ограниченная оболочка для предоставления ограниченного доступа к хосту через SSH(1), позволяя
пользователь, оболочка которого настроена на рш использовать одну или несколько команд УПП(1)
SFTP(1) CVS(1) первый(1), и Rsync(1), и Важно эти команды. Он предназначен в первую очередь
для работы с OpenSSH (см. http://www.openssh.com), но может работать с другими
Реализации.
Системный администратор должен установить оболочку в системе с ограничениями. Тогда
запись в файле паролей любого пользователя, которому желательно предоставить ограниченный доступ
должны быть отредактированы так, чтобы их оболочка была рш. Например:
luser: x: 666: 666 :: / home / luser: / usr / bin / rssh
Если вызывается с -v вариант, рш сообщит свою версию и выйдет. Все остальные
аргументы рш те, которые указаны удаленным SSH(1) клиент, и не так уж много
относятся к среднему пользователю. Предоставленные аргументы должны соответствовать оболочке на пульте дистанционного управления.
конец получит, чтобы передать управление УПП(1) SFTP(1) и т. Д. Если рш получает
аргументы, которые не соответствуют, выдаст сообщение об ошибке и завершится. Если программа
пользователь пытается запустить, не разрешен или содержит синтаксис, который попытается выполнить
команда оболочки (например, подстановка команды), она также выдаст ошибку и завершится.
рш есть файл конфигурации, rssh.conf(5), что допускает некоторое поведение рш в
быть настроенным. См. Эту страницу руководства для подробностей.
БЕЗОПАСНОСТЬ ПРИМЕЧАНИЯ
Читать этой . исключительный забота, or май положил система at риск!
. рш Для пользователя CVS
Если вы используете рш чтобы разрешить доступ к CVS, следует отметить, что невозможно
запретить пользователю, хорошо знакомому с CVS, обойти рш и получить ракушку,
если у пользователя нет прав на запись в репозиторий. Очевидно, что пользователь должен
иметь право записи в репозиторий для его обновления, что позволяет им загружать
произвольные программы в репозиторий. CVS предоставляет несколько механизмов для выполнения
такие произвольные программы ... Единственный достаточно безопасный способ использования рш с CVS - использовать
средства chroot jail для помещения репозитория CVS в chroot jail. Пожалуйста, посмотри
ниже и всю соответствующую документацию для получения подробной информации о том, как настроить chroot-тюрьмы. Обратите внимание, что
пользователей предусматривает все еще be в состоянии в получить оболочка доступ одной тюрьма; единственная защита, которая
при условии, что они не могут сбежать из тюрьмы. Меня преследовали, чтобы сохранить поддержку
для CVS, потому что такая защита лучше, чем ее отсутствие. встали на сторону было предупредил. Используйте
CVS at собственный риск.
Потенциал корень Компромисс Для пользователя Старый Версии
Перед тем, как рш 2.3.0, если у обычного пользователя был доступ к оболочке машины, на которой рш законопроект
установлен, был возможен корневой компромисс из-за rssh_chroot_helper позволяя пользователю
произвольно корневой(2) в любую точку файловой системы. Можно смягчить это
атака на затронутые версии рш используя строгий контроль доступа к файлам, делая
убедиться, что пользователь не может писать ни в один файл в том же разделе, что и системные исполняемые файлы,
и что любой раздел, где они могут записывать файлы, не позволяет выполнять SUID
программы. По состоянию на рш 2.3.0, эта атака была предотвращена путем предотвращения произвольных
chroot (), if тюрьма is набор up безопасно. В частности, убедитесь, что обычные пользователи
не может писать в каталоги внутри тюрьмы, содержащие скопированные двоичные файлы. Что
должно быть очевидно, но это нужно сказать. Хотя в этом не должно быть строгой необходимости,
для дополнительной защиты вашей системы от возможного взлома также рекомендуется следовать
раздел ниже, озаглавленный «Меры предосторожности против обхода rssh».
защитные меры Против Обходя рш
рш предназначен для взаимодействия с несколькими другими программами. Даже если rssh полностью ошибочен -
бесплатно, изменения в этих других программах могут привести к способам обхода
защита, которая рш предназначен для предоставления. It is важную для Вам, система
администратор, в оставаться текущий on Services сделать доступен рш, в be Убедитесь
которые эти команды do обеспечивать механизмы в позволять пользователь в пробег произвольный команды.
Кроме того, хотя цель каждого выпуска - избавиться от ошибок, никто не идеален ...
быть неоткрытыми ошибками в рш что может позволить пользователю обойти его.
Вы можете защитить свою систему от тех, кто воспользуется такими слабостями. Этот
не требуется для рш работать правильно, но это действительно хорошая идея. Шесть
основные шаги:
1. защитите все неадминистративные учетные записи с помощью rssh (т.е. нет обычных пользователей
должен иметь доступ к серверу через оболочку)
2. Поместите своих пользователей в chroot-тюрьму
3. ограничьте количество бинарных файлов, находящихся в тюрьме, до необходимого абсолютного минимума
4. смонтировать свою домашнюю файловую систему с параметром noexec / nosuid (т.е. использовать отдельные
разделы в тюрьме для домашних каталогов пользователей и всех других файлов, если
возможно / разумно)
5. создать группу для пользователей rssh и ограничить исполняемый доступ к двоичным файлам
пользователям в этой группе.
6. осторожно и правильно используйте стандартные права доступа к файлам.
Если возможно, убедитесь, что ни у одного обычного пользователя нет доступа к системе через оболочку.
кроме рш. В противном случае пользователи с доступом к оболочке потенциально могут использовать
неоткрытые ошибки в rssh_chroot_helper получить root-доступ к серверу.
рш дает системному администратору возможность поместить пользователей в chroot-тюрьму. Видеть
подробности на странице руководства для rssh.conf и в файле ХРУТ который распространяется с
исходный код. Если вы хотите, чтобы пользователи не могли запускать произвольные программы, используйте chroot
jail, и убедитесь, что не ставили никаких программ, кроме абсолютно необходимых для
предоставить услугу, которую вы пытаетесь предоставить. Это мешает им запускать стандартные
системные команды.
Затем убедитесь, что файлы пользователя внутри тюрьмы находятся в файловой системе, отличной от вашей.
исполняемые файлы системы. Если возможно в вашей среде, убедитесь, что вы смонтировали это
файловая система с использованием поехес и без жидкости параметры, если ваша операционная система их предоставляет.
Это не позволяет пользователям запускать программы, которые они загрузили в
целевой компьютер (например, с использованием scp), который в противном случае мог бы быть исполняемым, и предотвращает SUID
программы от соблюдения битов SUID. Обратите внимание, что эти параметры требуют от пользователей
файлы находятся в отдельных разделах от двоичных файлов и библиотек, которые находятся в тюрьме.
Поэтому для правильной работы вам понадобится как минимум 2 раздела (один для
системные двоичные файлы в тюрьме, другие для пользовательских каталогов).
Кроме того, создайте группу, например "rsshuser", для пользователей rssh. Поместите всех своих пользователей
кто будет ограничен rssh в этой группе. Установите право собственности и разрешения на rssh
и rssh_chroot_helper, чтобы их могли выполнять только эти пользователи. Следующие команды
должен иллюстрировать:
# группадобавить rsshuser
# Чаун корень: rsshuser рш rssh_chroot_helper
# CHMOD 550 рш
# CHMOD 4550 rssh_chroot_helper
Наконец, используйте стандартные права доступа к файлам Unix / POSIX, чтобы убедиться, что они не могут получить доступ к файлам, которые они
не должно быть внутри chroot jail.
Command линия синтаксический анализатор
По состоянию на рш версии 2.2.3, программа должна анализировать всю командную строку, чтобы избежать
параметры командной строки, которые вызывают выполнение произвольных программ (и, следовательно, обходят
безопасность рш). Чтобы исходный код программы оставался в здравом уме, парсер немного
чрезмерно усердный в выборе параметров командной строки. На практике этого, вероятно, не будет
проблема, но теоретически это возможно.
Если вы столкнетесь с проблемой, где рш отказывается бежать, утверждая, что отвергает небезопасные
параметры командной строки, которые не были указаны, попробуйте изменить командную строку так, чтобы
ВСЕ короткие параметры указываются как однобуквенные флаги параметров (например, -e -p вместо -ep)
и убедитесь, что вы отделили аргументы от соответствующих параметров пробелом (например, -p 123
вместо -p123). Практически во всех случаях это должно решить проблему. По общему признанию,
исчерпывающий поиск не проводился, но проблемных случаев не обнаружено.
скорее всего будет обычным явлением.
Альтернативой было бы включение полного парсера командной строки для rcp, rdist,
и rsync; это был выход за рамки этого проекта. На практике существующие
парсера должно хватить. Если, однако, вы обнаружите случаи, когда это не так, опубликуйте подробности
в список рассылки rssh. Подробности о том, как отправлять сообщения в список рассылки, можно найти на
домашняя страница rssh.
OpenSSH Версии и Обходя рш
До OpenSSH 3.5, SSHD(8) обычно пытается анализировать файлы в доме пользователя.
каталог, а также может попытаться запустить сценарий запуска из пользовательского $ HOME / .ssh каталог.
рш никоим образом не использует среду пользователя. Соответствующая команда:
выполняется путем вызова исполнитель(3) с полным путем к команде, как указано при компиляции
время. Это не зависит от переменной PATH пользователя или от любой другой среды.
Переменная.
Однако может возникнуть несколько проблем. Это полностью связано с тем, как
Sshd OpenSSH Project работает и никоим образом не виноват рш. Например, один
проблема, которая может существовать, заключается в том, что, согласно SSHD(8) справочная страница по крайней мере из некоторых
выпусков OpenSSH, команды, перечисленные в $ HOME / .ssh / rc файл выполняется с
/ Бен / ш вместо оболочки, определенной пользователем. Похоже, что это не так на
системы, на которых автор имел доступ к тестированию; команды выполнялись с использованием пользователя
настроенная оболочка (рш), что не допустило исполнения. Однако, если это правда на вашем
системы, то злоумышленник сможет обойти рш загрузив файл в
$ HOME / .ssh / rc который будет выполнен / Бен / ш в этой системе. Если какие-либо релизы (из
OpenSSH), на самом деле уязвимы для этой проблемы, то очень вероятно, что они
только старые, устаревшие версии. Пока вы используете последнюю версию OpenSSH, этот
Насколько я могу судить, проблем быть не должно.
Если ваш sshd is уязвимы для этой атаки, но есть обходной путь для этой проблемы, хотя
это довольно ограничительно. Команда пользователя Посмотреть главная каталог абсолютно Чёрный be записи by
пользователь. Если это так, пользователь может использовать sftp, чтобы удалить каталог или переименовать его, а затем
создайте новый и заполните его любыми файлами среды, которые им нравятся. Для предоставления
загрузки файлов, это означает, что для них должен быть создан каталог с возможностью записи, и они должны
быть осведомлены о своей неспособности записывать в свой домашний каталог, кроме этого
место нахождения.
Вторая проблема заключается в том, что после аутентификации пользователя sshd также читает
$ HOME / .ssh / среда чтобы позволить пользователю устанавливать переменные в своей среде. Этот
позволяет пользователю полностью обойти рш умелым манипулированием такой средой
переменные как LD_LIBRARY_PATH or LD_PRELOAD связать двоичный файл rssh с произвольным
общие библиотеки. Чтобы это не было проблемой, начиная с версии 0.9.3,
по умолчанию рш теперь компилируется статически. Упомянутый выше ограничительный обходной путь будет
также победить такую атаку.
Начиная с OpenSSH 3.5, SSHD теперь поддерживает вариант Пермитусерэнвиромен который установлен на "нет"
по умолчанию. Эта опция позволяет использовать ограниченные оболочки, такие как рш правильно функционировать без
требуя, чтобы они были связаны статически. По состоянию на рш версия 1.0.1, скрипт настройки
должен обнаружить наличие OpenSSH 3.5 и отключить статическую компиляцию по умолчанию.
Используйте rssh онлайн с помощью сервисов onworks.net