Можно ли разрешить или запретить доступ по SSH определенному пользователю или группе?
Это краткое руководство проведет вас через шаги, чтобы разрешить или запретить SSH-доступ определенному пользователю или группе в Linux. Оно будет полезно, если вы хотите разрешить конкретному пользователю выполнять только определенный набор команд. В этой статье мы собираемся включить или отключить доступ по SSH для пользователя или группы, внеся несколько изменений в файл конфигурации SSH по умолчанию.
В конфигурационном файле openSSH по умолчанию есть две директивы для разрешения и запрета доступа по SSH определенным пользователям или группе. Во-первых, давайте посмотрим, как разрешить или включить SSH-доступ для пользователя и группы. Обратите внимание, что все приведенные ниже команды должны запускаться от имени пользователя root или sudo.
1. Разрешить SSH-доступ пользователю или группе
Чтобы разрешить доступ по SSH для определенного пользователя, например sk, отредактируйте файл sshd_config:
Нажмите «i», чтобы войти в режим вставки и добавить или изменить следующую строку:
Замените «sk» своим именем пользователя. Обратите внимание на отступы между «AllowUsers» и «sk». Вы должны использовать Tab вместо пробела. Значение — добавьте слово «AllowUsers» и нажмите клавишу Tab, а затем укажите имя пользователя.
Вы также можете указать более одного пользователя, как показано ниже.
Чтобы разрешить всю группу, например, root , добавьте/отредактируйте следующую строку:
Этот параметр позволит всем членам «корневой» группы подключаться к серверу Linux по ssh.
Нажмите клавишу ESC, чтобы выйти из режима вставки, и введите : wq, чтобы сохранить и выйти из файла конфигурации SSH. Перезапустите службу SSH, чтобы изменения вступили в силу.
Теперь пользователю sk и всем членам «корневой» группы разрешено подключаться к вашему Linux-серверу по ssh. Остальные пользователи (кроме sk и членов группы «root») не имеют доступа к системе через ssh.
Чтобы проверить это, попробуйте подключиться к серверу Linux по ssh от имени любого из запрещенных пользователей:
Вы получите следующее сообщение об ошибке:
2. Запретить доступ по SSH пользователю или группе
Чтобы отключить или запретить доступ по SSH для пользователя или группы, вам необходимо добавить/изменить следующие директивы в файле sshd_config вашего удаленного сервера.
Чтобы запретить доступ по SSH конкретному пользователю с именем «sk», отредактируйте файл sshd_config:
Добавьте/отредактируйте следующую строку в файле sshd_config.
Убедитесь, что отступы правильные. Не используйте клавишу пробела. Нажмите клавишу Tab и добавьте имя пользователя.
Аналогичным образом, чтобы запретить доступ по SSH нескольким пользователям, укажите имена пользователей через пробел, как показано ниже.
Аналогичным образом, чтобы запретить доступ по SSH для всей группы, например root , добавьте:
Сохраните и выйдите из файла конфигурации ssh. Перезапустите службу ssh, чтобы изменения вступили в силу.
Теперь попробуйте ssh на свой Linux-компьютер из заблокированной учетной записи пользователя, например sk:
Вы получите следующее сообщение:
3. Отключить вход в систему через SSH-root
Доступ с root-доступом по ssh считается плохой практикой с точки зрения безопасности . Поэтому настоятельно рекомендуется отключить вход в систему SSH Root для защиты вашей системы.
Чтобы отключить вход в систему root ssh, отредактируйте файл sshd_config:
Найдите следующую строку, раскомментируйте ее и установите значение no .
Перезапустите службу SSH, чтобы изменения вступили в силу немедленно:
Теперь вы знаете, как предоставлять и ограничивать доступ по SSH для определенных пользователей или групп в Linux. Вы также узнали, как запретить или отключить вход root по SSH в Linux. Это одна из рекомендуемых мер безопасности, которую должен применять каждый администратор Linux при настройке сервера Linux.
Источник
Linux запретить вход root
Управляя домашним компьютером, пользователь должен выполнять некоторые действия под именем root или получить привилегии root, с помощью программ setuid , например sudo или su . Программы setuid — это программы, работающие с кодом пользователя ( UID ) владельца программы, а не запускающего их пользователя. В подробном списке файлов эти программы выделяются маленькой буквой s в разделе владельца, как показано ниже:
-rwsr-xr-x 1 root root 47324 May 1 08:09 /bin/su
Однако системные администраторы организации должны определить, какие административные права должны иметь пользователи на своих компьютерах. С помощью PAM-модуля pam_console.so некоторые действия, обычно разрешённые только пользователю root, например, перезагрузку и извлечение съёмных устройств, можно разрешить первому вошедшему на физическую консоль пользователю (обратитесь к главе Подключаемые модули проверки подлинности (PAM) Справочного руководства Red Hat Enterprise Linux за дополнительными сведениями о модуле pam_console.so ). Однако выполнение других важных административных задач, таких как изменение параметров сети, настройка новой мыши или подключение сетевых устройств невозможно без прав администратора. В следствие этого системные администраторы должны решить, какие административные полномочия должны получить пользователи их сети.
Если пользователи организации доверяют друг другу и разбираются в компьютерах, возможно, допустимо назначить им права root. Наделение их правами root будет означать, что простые операции, такие как добавление устройств или настройка сетевых интерфейсов, будут выполнять сами пользователи, освобождая администраторов для решения важных проблем, например, сетевой безопасности.
С другой стороны, назначение отдельным пользователям прав root может создать, например, следующие проблемы:
Неверная настройка компьютера — Пользователи с правами root, могут неправильно настроить свои компьютеры, после чего им потребуется помощь, или, что ещё хуже, могут создать дыры в безопасности, не догадываясь об этом.
Запуск небезопасных служб — Пользователи с правами root могут запускать на своих компьютерах небезопасные службы, например FTP или Telnet, что ставит под угрозу их имена и пароли, передаваемые по сети открытым текстом.
Запуск почтовых вложений под именем root — Хотя вирусы для Linux — редкость, но всё же они есть. И они представляют собой угрозу, только если их запускает пользователь root.
Если по этим или другим причинам администратору не хочется, чтобы пользователи имели права root, пароль root следует хранить в секрете и запретить доступ к первому уровню выполнения или монопольному режиму, защитив загрузчик паролем (подробнее эта тема рассматривается в разделе 4.2.2 Пароли загрузчика системы ).
Предотвращает вход в оболочку root и регистрирует попытки входа. |
Следующие программы не смогут работать с учётной записью root: |
· login |
· gdm |
· kdm |
· xdm |
· su |
· ssh |
· scp |
· sftp |
Программы, не использующие оболочку, например, клиенты FTP, почтовые клиенты и многие программы setuid. |
Следующие программы смогут работать с учётной записью root: |
· sudo |
· клиенты FTP |
· почтовые клиенты |
Предотвращает вход под именем root с консоли или по сети. Следующие программы не смогут работать с учётной записью root: |
· login |
· gdm |
· kdm |
· xdm |
· другие сетевые службы, открывающие tty |
Программы, которые не регистрируются под именем root, но выполняют административные задачи посредством setuid или других механизмов. |
Следующие программы смогут работать с учётной записью root: |
· su |
· sudo |
· ssh |
· scp |
· sftp |
Предотвращает доступ root с помощью набора инструментов OpenSSH. Следующие программы не смогут работать с учётной записью root: |
· ssh |
· scp |
· sftp |
Доступ root ограничен только для набора инструментов OpenSSH. |
Запрещает доступ root к сетевым службам, поддерживающим PAM. |
С учётной записью root не будут работать следующие службы: |
· клиенты FTP |
· почтовые клиенты |
· login |
· gdm |
· kdm |
· xdm |
· ssh |
· scp |
· sftp |
· любые службы, поддерживающие PAM |
Программы и службы, не поддерживающие PAM. |
a. За подробностями обратитесь к разделу 4.4.2.4 Отключение root с помощью PAM .
Таблица 4-1. Способы отключения учётной записи root
Чтобы запретить пользователям непосредственный вход под именем root, системный администратор может задать для root оболочку /sbin/nologin в файле /etc/passwd . Это предотвратит доступ к учётной записи root с помощью команд, использующих оболочку, например su и ssh .
Программы, не нуждающиеся в оболочке, например, почтовые клиенты или команда sudo , по-прежнему могут работать под именем root.
Чтобы ещё больше ограничить доступ к учётной записи root, администраторы могут запретить вход под именем root с консоли, отредактировав файл /etc/securetty . В этом файле перечислены все устройства, с которых может регистрироваться root. Если файл не существует, пользователь root сможет войти в систему с любого устройства, будь то консоль или сетевой интерфейс. Это опасно, так как пользователь может входить в систему, используя Telnet, а при этом его пароль передаётся по сети в открытом виде. По умолчанию, в Red Hat Enterprise Linux файл /etc/securetty разрешает root подключаться только с физически подключенной к компьютеру консоли. Чтобы запретить вход root, очистите содержимое этого файла, выполнив следующую команду:
Предупреждение |
---|
Замечание |
---|