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

Как предотвратить доступ к SSH, не раскрывая существование пользователя

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

Настройка SSH для ограничения доступа

Для того чтобы заблокировать возможность входа в систему с паролем для конкретного пользователя, можно использовать конфигурацию файла sshd_config. Рассмотрим следующий пример конфигурации:

Match User USERNAME
  PasswordAuthentication no
Match all

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

Permission denied (publickey)

Это означает, что имя пользователя уже раскрыто до попытки ввода пароля, что может представлять собой потенциальный риск безопасности.

Решение проблемы с использованием PAM

Чтобы предотвратить раскрытие имени пользователя при попытке входа, можно воспользоваться PAM (Pluggable Authentication Module). Это решение подойдет для большинства систем Linux, включая Ubuntu. Давайте рассмотрим, что нужно сделать для настройки.

  1. Редактирование PAM конфигурации

    Для начала откройте файл /etc/pam.d/ssh и добавьте в его конец следующую строку:

    auth required pam_listfile.so item=user sense=deny file=/etc/ssh/sshd.deny onerr=succeed

    Данная строка добавляет пользовательскую проверку, которая будет направлять доступ к пользователям из файла /etc/ssh/sshd.deny.

  2. Создание файла для запрещенных пользователей

    Затем создайте файл /etc/ssh/sshd.deny и добавьте туда имена пользователей, которых вы хотите заблокировать от доступа через SSH. Например:

    USERNAME

    Для блокировки нескольких пользователей добавляйте их по одному на каждую строку.

Пример настройки DenyUsers

Еще один способ ограничить доступ — использование директивы DenyUsers в конфигурационном файле sshd_config. Вы можете применить следующую настройку:

DenyUsers USER1 USER2 USER3

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

Заключение

Правильная настройка доступа к вашему серверу — это важный шаг к обеспечению безопасности данных и ресурсов. Используя предложенные методы, вы сможете предотвратить доступ к SSH для определенных пользователей, не раскрывая их имена. Не забывайте также регулярно проверять настройки и обновлять конфигурации в соответствии с новыми требованиями безопасности. Для более детальной информации обязательно ознакомьтесь с документацией, выполнив команду man sshd_config.

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *