Ограничьте количество входов по 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
Как вы видите в приведенном выше выводе;
- Сначала я подключился по SSH к удаленному серверу CentOS 8 от имени пользователя
root
через SSH, и соединение было успешно установлено. - Затем я открыл новую вкладку и подключился по SSH к тому же серверу, что и обычный пользователь «ostechnix», и соединение также было успешным.
- Наконец, я попытался подключиться по 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