Подтвердить что ты не робот

Список всех пользователей, которые могут подключаться через SSH

Недавно я начал смотреть на свои auth-журналы и на удивление обнаружил ботов из Китая, пытаясь наброситься на них (не очень старался). Я пошел о том, чтобы изменить множество вещей, которые боты никогда не проверили бы и не усложняли бы brutforce.

Мой вопрос:

Я пытаюсь найти список всех пользователей, которые могут войти на мой сервер через SSH. Я знаю, что /etc/passwd имеет список всех пользователей, но я не знаю, может ли кто-либо из них (кроме 1) войти в систему.

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

4b9b3361

Ответ 1

Подробнее читайте man sshd_config, но вы можете использовать директиву AllowUsers в /etc/ssh/sshd_config, чтобы ограничить набор пользователей, которые могут войти в систему.

например.

AllowUsers boris

означает, что только пользователь boris мог бы войти через ssh.

Ответ 2

Любой пользователь с допустимой оболочкой в ​​ /etc/passwd может потенциально войти в систему. Если вы хотите улучшить безопасность, настройте SSH с помощью проверки подлинности с открытым ключом (в этом есть много информации в Интернете), установите открытый ключ в один пользовательский ~/.ssh/authorized_keys файл и отключите аутентификацию на основе пароля. Это предотвратит доступ любого пользователя, за исключением того, что один пользователь может войти в систему, и потребует, чтобы пользователь имел в своем распоряжении соответствующий закрытый ключ. Убедитесь, что у закрытого ключа есть достойная парольная фраза.

Чтобы предотвратить попытку загрузки ботов, запустите SSH на другом порту, отличном от 22 (т.е. 3456). Это не улучшает безопасность, но предотвращает script -kiddies и bots от загромождения ваших журналов с неудачными попытками.

Ответ 3

Любой пользователь, чей параметр оболочки входа в /etc/passwd является интерактивной оболочкой, может войти в систему. Я не думаю, что существует абсолютно надежный способ узнать, является ли программа интерактивной оболочкой; проверяя, возможно ли это в /etc/shells, как можно лучше.

Другие пользователи также могут войти в систему, но программа, которую они запускают, не должна позволять им получать большой доступ к системе. И пользователям, которым вообще не разрешено входить в систему, должна быть /etc/false как их оболочка - это будет немедленно выходить из системы.