Security

Повышает ли безопасность отключение входа в систему root?

Недавно я нашел аргумент против отключения входа пользователя root в Linux по адресу 

http://archives.neohapsis.com/archives/openbsd/2005-03/2878.html.

Я предполагаю, что если все используют аутентификацию с открытым ключом, то нет риска потерять пароль root. Всегда ли лучше отключать логин root через ssh?

Ответ 1

Никогда не отключайте учетную запись root, если у вас нет доступа к консоли. Если ваша файловая система заполнится и загрузка не удастся, пока создается /etc/nologin, только учетной записи root будет позволено войти в машину.

Тем не менее, если у вас есть доступ к консоли для решения подобных ситуаций, закрытие учетной записи root может избавить вас от головной боли, поскольку никто не сможет получить доступ к учетной записи root с помощью атаки по словарю (по моему опыту, такие атаки происходят постоянно в наши дни кто-то всегда пытается). Другие вещи, о которых вы можете подумать:

  1. Установите программу типа fail2ban, которая автоматически закрывает доступ к IP-адресу, если он не прошел аутентификацию более определенного количества раз (для активной защиты от атак по словарю).

  2. Используйте только ключи ssh.

  3. Если вы управляете большим количеством машин, используйте cfengine или другие программы для управления открытыми ключами, которые вы разрешаете для входа на машину (иначе они быстро устареют).

Ответ 2

Всегда лучше отключить вход root через SSH. Существуют системы PKI (например, открытые ключи с SSH), которые были взломаны. В SSH ранее уже были обнаружены недостатки удаленной аутентификации, которые позволили скомпрометировать root. Программные PKI, как известно, слабее, чем аппаратные PKI. Если ваш главный компьютер скомпрометирован, целевой сервер также может легко пасть. Помимо этого, могут быть найдены новые недостатки в SSH. Ограничивая вход root, вы также можете увеличить период времени, необходимый злоумышленнику для выполнения эскалации привилегий.

Исторически сложилось так, что многие администраторы использовали хосты-бастионы (по сути, шлюзы) для входа в сеть, а затем переходили к боксам. Использование высоконадежного дистрибутива (например, OpenBSD) в качестве бастионного хоста в сочетании с различными операционными системами обеспечивает защиту в глубину и защиту в разнообразие (одна уязвимость с меньшей вероятностью скомпрометирует всю сеть). Пожалуйста, рассмотрите возможность подключения к вашей сети вне диапазона, например, последовательный концентратор, последовательный коммутатор или другое. Это обеспечит резервную доступность административного интерфейса в случае необходимости. Поскольку я занимаюсь вопросами безопасности, я бы скорее использовал IPSEC VPN или Type1 VPN, а затем запустил SSH поверх него, без доступа SSH в интернет. Размещение VPN на вашем сетевом оборудовании может значительно упростить эту задачу.

Ответ 3

Я бы сказал, что да, вход в систему с правами root должен быть отключен для возможности аудита. Если вы единственный системный администратор на этой машине, то определить, кто что кому сделал, не составит труда; но если десять человек имеют право администрировать эту машину, и все они знают пароль root, то у вас есть проблема. Независимо от того, включен root или нет, ни root, ни любому другому пользователю не должно быть разрешено удаленно входить в систему с паролем. fail2ban ничего не сделает против медленного перебора ботнета, и он вообще не работает с IPv6 (протокол ssh версии 1 и старые реализации версии 2 были уязвимы к атакам подбора пароля при интерактивном запросе пароля в рамках сессии ssh, но, похоже, это больше не относится к достаточно новым реализациям ssh).

Ответ 4

Необходимо рассмотреть этот вопрос с разных точек зрения.

Ubuntu по умолчанию отключает учетную запись root, что означает, что вы не можете войти через SSH с правами root. Но это позволяет любому человеку с компакт-диском Ubuntu загрузиться и получить root-доступ. Я считаю, что лучшим компромиссом является включение учетной записи root с отключенным SSH-доступом. Если вам нужен доступ root по SSH, войдите в систему под обычным пользователем и используйте sudo. Таким образом, обеспечивается безопасность доступа к устройству, но не снижается удаленная безопасность.

Ответ 5

Если коротко: чем меньше профиль атаки, тем лучше. Всегда. Если вам это не нужно или вы можете использовать альтернативу, такую как sudo или su, то не включайте root-логин.

Одним из главных аргументов в пользу отключения root и использования sudo/su является то, что вы можете отследить, кто что делает. Один пользователь один логин. Никогда не делитесь учетными записями. Аргумент по этой ссылке, похоже, относится к локальному входу, а не к ssh. Разрешение входа в root через SSH также означает, что root можно атаковать путем перебора паролей. Поскольку root всегда существует, а награда за это очень высока, он является приоритетной целью. Имя пользователя должно быть угадано первым, что увеличивает сложность проблемы на несколько порядков.

Схожие статьи

Security

Зашифрованные сторонние резервные копии — где хранить ключ шифрования?

Security

Как я могу использовать rsync с файловой системой FAT?

Security

Какой есть относительно простой способ заблокировать весь трафик из определенной страны?

Security

Является ли использование встроенной безопасности (SSPI) для доступа к SQL Server лучшим для веб-приложений?

×