Как я могу ограничить пользователя на сервере SSH, чтобы разрешить ему только привилегии для SSH TUNNELING ? То есть они не могут запускать команды, даже если они входят в систему через SSH.
Мои Linux-серверы - это Ubuntu 11.04 и OpenWrt.
источник
Как я могу ограничить пользователя на сервере SSH, чтобы разрешить ему только привилегии для SSH TUNNELING ? То есть они не могут запускать команды, даже если они входят в систему через SSH.
Мои Linux-серверы - это Ubuntu 11.04 и OpenWrt.
На стороне сервера вы можете ограничить это, установив для своей пользовательской оболочки значение /bin/true
. Это позволит им аутентифицироваться, но на самом деле ничего не запускать, поскольку у них нет оболочки для запуска. Это означает, что они будут ограничены любым подмножеством возможностей, которые SSH может им предложить. Если он предлагает переадресацию портов, они все равно смогут это сделать.
На стороне клиента вы, вероятно, захотите соединиться с -N
. Это останавливает запрос клиента на удаленную команду, такую как оболочка, и просто останавливается после завершения аутентификации. Спасибо комментаторам за указание на это.
useradd sshtunnel -m -d /home/sshtunnel -s /bin/true
.Преимущество следующего заключается в том, что переадресация сокетов агентов X11 и SSH также запрещена, что может быть разрешено способом Calebs. Другое преимущество состоит в том, что если пользователь может изменить свою оболочку по умолчанию любым другим способом, это все равно ограничит его доступ по SSH только к пересылкам TCP.
Поместите следующее в свой
/etc/ssh/sshd_config
:чтобы позволить пользователю
that-restricted-guy
перенаправлять любые TCP-соединения через ваш SSH-совместимый компьютер (соединение с этим компьютером, а такжеlocalhost
и даже с этого компьютера на другие машины).Если вы хотите, чтобы это было еще более ограничительным (что является хорошей идеей), вы также можете сделать следующее:
Это позволит пользователю
even-more-restricted-guy
только перенаправлять соединения на 127.0.0.1 TCP-порт 12345 (как это видно на вашем компьютере с поддержкой SSH).Когда пользователь обычно подключается, он теперь будет мгновенно отключен, потому что
/bin/false
будет запущена команда, которая ничего не делает, но мгновенно завершает работу с кодом 1. Если вы хотите избежать этого и оставить соединение для переадресации открытым, добавьте-N
флаг вssh
команду. Это не будет пытаться выполнить какую-либо команду, но все еще позволяет настроить переадресацию TCP.Пример команды forward, которая должна работать в последней настройке:
источник
Вы можете контролировать, что люди могут делать в ssh, сопоставляя группы, предполагая, что ваша версия ssh достаточно новая, чтобы поддерживать ее (openssh 5.x +).
По сути, мы обращаемся с ними, как если бы они были пользователями sftp, но разрешаем переадресацию tcp и, при необходимости, указываем адресаты, на которые они могут пересылать Если вы даете им домашний каталог, но не создаете под ним никаких каталогов, они не могут передавать файлы, потому что у них не будет разрешения на это.
Вы можете повторить эти блоки Match Group для каждой группы, для которой вы хотите задать различные режимы или ограничения.
Вы можете далее контролировать, куда этот человек может выходить в сеть, используя iptables
Это предполагает, что группа "nicepeople" GID составляет 500.
Некоторые из приведенных выше опций ssh доступны в более старых версиях openssh, но не в разделе Match Group. Match Group очень ограничена в OpenSSH 4.x и более ранних версиях.
источник