Почему по умолчанию sshd разрешает вход с правами root?

7

В настоящее время я работаю над тем, чтобы защитить свои серверы от взлома - среди прочего, я получаю множество попыток войти в систему как root по ssh. Хотя я реализовал fail2ban, мне интересно, почему по умолчанию вход в систему root разрешен для запуска? Даже с дистрибутивами, не основанными на sudo, я всегда могу войти в систему как обычный пользователь и переключиться - поэтому мне интересно, есть ли какое-то явное преимущество в том, чтобы разрешить вход в систему root по ssh, или это просто то, что никто не мешает изменить?

Подмастерье
источник

Ответы:

8

Есть явное преимущество, позволяющее входить в систему по ssh

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

Я очень хотел бы, чтобы значение по умолчанию было изменено с PermitRootLogin yesпо крайней мере PermitRootLogin without-password, это позволило бы только аутентификацию на основе ключей. Удаленная аутентификация по паролю для учетной записи root практически не требуется.

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

Также учтите, что грубая попытка удаленного входа в систему через root с помощью ssh имеет очень низкий шанс на успех, если у вас есть учетная запись root с достаточно сложным паролем. Отключение учетной записи root обеспечивает дополнительный уровень безопасности, но это может не потребоваться при наличии надежного пароля. Если вы комбинируете надежный пароль с такими реактивными инструментами, как denyhosts и fail2ban, обычно почти нет риска того, что попытка перебора пароля root сработает.

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

Zoredache
источник
2

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

Однако вы должны обязательно отключить опцию входа в систему как root в конфигурации sshd после того, как вы создали своего пользователя и дали ему разрешения sudo.

Я также рекомендую изменить порт SSH на что-то отличное от 22. Хотя это не делает вашу машину более безопасной - она ​​останавливает все эти расточительные / раздражающие запросы.

Xeoncross
источник
Я действительно не согласен с изменением стандартных портов. Используйте фильтрацию пакетов.
Warner
В самом деле? Что в этом плохого? Я только начал это делать, потому что видел, как это делают уважаемые администраторы ...
Xeoncross
Это то, что люди привыкли использовать совместно расположенные серверы без фильтрации или разделения сети.
Warner
@ Уорнер, но, я не понимаю, переход от стандартных портов не был бы довольно простым способом для большинства людей просто отразить большинство попыток?
Камило Мартин
2

Подумайте о том, чтобы предотвратить вход в систему в качестве дополнительной защиты Несколько лет назад bruteforce достигла своего пика, в настоящее время они склонны искать уязвимости с помощью того, что они могут видеть демонами (apache, pureftpd, ...). Предотвращение входа в систему root станет отличной идеей, если завтра будет обнаружен эксплойт с SSHD. В то время как SSHD является зрелым и безопасным, вы никогда не знаете. В последнее время эксплойты были направлены на повышение привилегий с помощью ядра или использование стороннего приложения с ядром, поэтому предотвращение входа в систему root не изменило бы ничего.

Дистрибутив, основанный на Debian, уже сделал это, в то время как дистрибутив на основе RedHat предлагает это (если вы читаете их лучшие практики)

Embreau
источник
1

Ну, потому что root является действительным пользователем, и sshd делает это, разрешая это. Например, в OpenBSD (те же самые ребята из OpenSSH) вас не просят создать пользователя во время установки, поэтому вам нужно использовать root для доступа к вашему ящику.

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

Кроме того, эти аргументы, что sudo или su более безопасны, чем вход в систему как root, являются большим мифом. Например, в Ubuntu пользователь может запустить ЛЮБУЮ команду, используя sudo по умолчанию, поэтому любой злоумышленник, который входит в систему, может также запустить ЛЮБУЮ команду от имени root. Довольно бесполезно с точки зрения безопасности.

sucuri
источник
с другой стороны, злоумышленнику необходимо угадать как имя пользователя, так и пароль, а не просто взломать пароль. Я также хотел бы отметить, что sudo ограничено людьми в файле sudoers - так что в большинстве случаев это только первый пользователь
Journeyman Geek
0

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

Если бы я управлял дистрибутивом, я бы настроил систему так, чтобы она была максимально защищена при установке. Лучше забыть включить некоторые функции, чем забыть отключить некоторые функции.

Джо Интернет
источник
Усиление системы в максимально возможной степени становится сложной задачей, если вы также пытаетесь использовать свою систему на настольном компьютере многими конечными пользователями. Вам нужно поставить под угрозу и укрепить систему настолько, чтобы защитить пользователей в случае по умолчанию, но позволить опытным пользователям изменять систему в соответствии со своими потребностями.
Зоредаче