Список всех пользователей, которые могут подключаться через SSH
Недавно я начал смотреть на свои auth-журналы и на удивление обнаружил ботов из Китая, пытаясь наброситься на них (не очень старался). Я пошел о том, чтобы изменить множество вещей, которые боты никогда не проверили бы и не усложняли бы brutforce.
Мой вопрос:
Я пытаюсь найти список всех пользователей, которые могут войти на мой сервер через SSH. Я знаю, что /etc/passwd имеет список всех пользователей, но я не знаю, может ли кто-либо из них (кроме 1) войти в систему.
Моя цель состоит в том, чтобы иметь только 1 пользователя, который может войти в систему, и иметь у этого пользователя настоящий надежный пароль.
Ответы
Ответ 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
как их оболочка - это будет немедленно выходить из системы.