Поиск по сайту:

Ограничьте количество входов по SSH на пользователя, группу, систему

Как вы, вероятно, знаете, мы можем подключаться по SSH к удаленной системе Linux одним и тем же пользователем несколько раз. Нет предела! Вы можете просто открыть несколько окон Терминала (или несколько вкладок в Терминале) и инициировать несколько сеансов SSH с каждой вкладки под одной и той же учетной записью пользователя. Что, если вы хотите изменить это поведение? Например, вы можете разрешить пользователю только один активный сеанс SSH. Это то, что мы сейчас увидим. В этом кратком руководстве объясняется, как ограничить количество входов в систему SSH на пользователя, группу или систему в Linux.

В большинстве дистрибутивов Linux существует файл limits.conf, в котором вы можете определить максимальное количество одновременных сеансов SSH для пользователя или группы пользователей. Если конкретный пользователь попытается войти в систему по SSH больше, чем разрешено для входа по SSH, ему/ей будет отказано в доступе.

Ограничьте количество входов по SSH на пользователя или группу в Linux

Файл limits.conf обычно находится в каталоге /etc/security/ в системах на базе RPM и DEB.

Перейдите в свою удаленную систему и отредактируйте файл /etc/security/limits.conf с помощью sudo или . корневой пользователь:

sudo nano /etc/security/limits.conf

Чтобы ограничить количество одновременных сеансов SSH для конкретного пользователя, например ostechnix, добавьте в конце следующую строку:

ostechnix  hard    maxlogins   1

Установите количество одновременных входов в систему SSH для пользователя или группы в файле Limits.conf

Здесь,

  • ostechnix — имя пользователя на моем сервере CentOS 8.
  • maxlogins 1 - максимальное количество входов для этого пользователя. В моем случае это 1. Вы можете увеличить это значение, чтобы разрешить максимальное количество. активных сеансов SSH на пользователя.
  • жесткий - соблюдение жестких ограничений.

Если вы хотите ограничить количество SSH-подключений для группы пользователей, добавьте следующую строку:

@mygroup   hard    maxlogins   1

Замените @mygroup на название вашей группы. В этом сценарии все пользователи в моей группе не могут войти в систему через SSH более одного раза.

Если вы хотите ограничить сеансы SSH для всех пользователей (глобально) в системе, добавьте вместо этого эту строку:

*  hard    maxlogins   1

Здесь звездочка означает глобальный (т. е. всех пользователей в системе). После того, как вы определили максимальное количество сеансов SSH для каждого пользователя/группы или всей системы, сохраните и закройте файл.

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

Too many logins for 'ostechnix'.
Last login: Tue Feb 18 17:12:09 2020 from 192.168.225.37
Connection to 192.168.225.52 closed.

Ограничьте количество входов по SSH на пользователя в системе Linux

Как вы видите в приведенном выше выводе;

  1. Сначала я подключился по SSH к удаленному серверу CentOS 8 от имени пользователя root через SSH, и соединение было успешно установлено.
  2. Затем я открыл новую вкладку и подключился по SSH к тому же серверу, что и обычный пользователь «ostechnix», и соединение также было успешным.
  3. Наконец, я попытался подключиться по SSH к тому же серверу с тем же обычным пользователем (т. е. ostechnix), и на этот раз в соединении было отказано. Пользователь «ostechnix» не может подключаться к системе по SSH более одного раза. Поскольку максимальное количество разрешенных сеансов SSH для этого пользователя составляет только один раз. Следовательно, этому пользователю запрещено SSH-соединение.

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

Ограничить общее количество сеансов SSH на систему

Чтобы ограничить общее количество активных SSH-подключений на систему, добавьте следующую строку в файл /etc/security/limits.conf:

*       hard    maxsyslogins    1

Здесь maxsyslogins означает максимальное количество входов в систему, а не на пользователя или группу.

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

Ограничить общее количество сеансов SSH на систему

Видеть? Пользователь «ostechnix» впервые не может даже использовать SSH. Потому что общее количество разрешенных входов по SSH в системе только одно. На этот раз также было учтено SSH-соединение пользователя root. Таким образом, максимальное количество входов в систему SSH превысило определенный предел, и пользователю «ostechnix» было отказано в доступе. Надеюсь ты понимаешь.

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

Связанное чтение:

  • Разрешить или запретить доступ по SSH определенному пользователю или группе в Linux
  • Ограничить доступ к серверам Linux с помощью TCP-оболочек
  • Выполнение команд в удаленных системах Linux через SSH
  • Как создать псевдоним SSH в Linux
  • Как подключиться по SSH к определенному каталогу в Linux

Статьи по данной тематике