2

РЕДАКТИРОВАТЬ: После долгих копаний это почти наверняка является результатом вызова /etc/profile.d/... перед выполнением rbash, и, следовательно, не является проблемой с ограниченным bash в себе.

Кажется, существует тривиальное обходное решение rbash, согласно которому пользователь SSH может просто запросить выполнение bash.

Среда состоит из ограниченного $PATH с небольшим набором доступных команд. Команда id недоступна, на этом я основываю следующую расшифровку:

testuser@jumphost:~$ id
-rbash: id: command not found

.. но потом ..

testuser@jumphost:~$ ssh localhost "bash"
testuser@localhost's password:  
id
uid=3033(testuser) gid=4033(jumpuser) groups=5033(foogroup) context=jumpuser_u:jumpuser_r:jumpuser_t:s0

..bash вызывается; ограниченная оболочка была обойдена.

Я попытался реализовать вызов rbash через Match Group / ForceCommand в sshd_config , и хотя он вызывает rbash для меня, проблема возможности просто выполнить bash все еще существует.

Мы не используем открытые ключи по умолчанию для внешних пользователей по логистическим причинам, поэтому возможность "command=" в файле ~/.authorized_keys не является опцией. Мы также хотели бы предложить больше , чем просто SSH пользователей .. kinit / klist , а также несколько других неквалифицированных программ.

Есть ли механизм, ограничивающий это поведение?

1 ответ1

0

В заключение, решение состояло в том, чтобы лучше контролировать начальную среду между временем успешной аутентификации и вызовом rbash.

Это было достигнуто с помощью оболочки-оболочки, которая вызывает "чистый" bash с флагами --restricted , --rcfile ... , --noprofile и т. Д .... и регистр по умолчанию, который регистрирует попытку выполнения перед выходом.

С извинениями за паникерский титул ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .