Количество соединений SSH на одной машине Linux

14

Я попал в ситуацию, когда мне нужно было получить доступ к машине Linux через puTTY. Я делал различные попытки SSH, но не смог подключиться к машине. Затем я понял, что мой коллега обращается к той же машине Linux, что и пользователь root, и я тоже хотел получить доступ как пользователь root. Я попросил его выйти из системы, чтобы я мог войти в систему как root. Есть ли способ ограничить количество входов SSH в ОС Linux? Это какая-то функция безопасности, которая отличает ОС на базе Windows от ОС на основе Linux.

turmoilawaits
источник
1
Вы говорите, что можете войти в систему как root, как только он выйдет из системы? И вы хотите знать, как или где этот предел может быть установлен?
Мэтт
да, я могу войти в систему как root, как только он вышел
turmoilawaits

Ответы:

8

Да, можно ограничить количество одновременных сеансов входа в систему, хотя большинство дистрибутивов Linux не устанавливают такие ограничения в своих настройках по умолчанию.

Linux - это подходящая многопользовательская система, и обычно у вас не должно быть проблем с наличием нескольких одновременных сессий SSH для одного и того же пользователя.

Сервер SSH может наложить такие ограничения с помощью MaxSessionsопции в файле конфигурации. Через PAM вы можете устанавливать такие ограничения, как уже указали другие.

HBruijn
источник
Я использую Cent OS 6.4. Ограничивает ли это одновременные сеансы SSH?
turmoilawaits
Не по умолчанию.
HBruijn
7

У вас, вероятно, есть ограничения, установленные /etc/security/limits.confтак

root hard maxlogins 1

Измените предел (1) на что-то более высокое, если это необходимо.

Matt
источник
Этот параметр не влияет на одновременные входы в систему SSH на Centos6
bbaassssiiee
Это предел, который PAM будет искать. Если вы разрешите root-вход через ssh-ключи, то ...
Мэтт
2

Попытка убедить автономного sshdдемона ограничить количество сеансов чревата лазейками. Такие вещи, как MaxSessionsограничение, ограничивают то, о чем говорит ОП. И sshdигнорирует limits.confв linux (аналогично login.confво FreeBSD), если вы не настроите все правильно для маршрутизации всех входящих сессий через PAM и не будете использовать соответствующим образом настроенный модуль PAM для проверки таких вещей, как limit.conf. Трудно заставить его работать правильно.

С другой стороны, если вы не начинаете sshdкак отдельный демон, вы можете использовать ограничивающие функции в «вещи», которая появляется sshdпо требованию.

Например, inetdи xinetdимеют функцию ограничения соединения (которая по умолчанию обычно не устанавливает никаких ограничений на количество разветвленных дочерних элементов). В классике inetdэто называется «Макс-ребенок». С помощью xinetdнайдите instancesручку настройки. Например, inetdстиль:

ssh  stream  tcp  nowait/3  root  /usr/sbin/sshd  sshd -i -4

Это ограничивает количество одновременных соединений SSH до 3.

Для тех, кто так склонен, systemdможет заменить функцию inetd, и я считаю, что есть способ ограничить количество экземпляров службы. Упражнение оставлено читателю (или добавьте комментарий с подробностями!).

Juan
источник