В настоящее время я работаю над защитой своих серверов от взлома - среди прочего, я получаю множество попыток войти в систему как root через ssh. Хотя я реализовал fail2ban, мне интересно, почему вход в систему root по умолчанию разрешен для начала? Даже с дистрибутивами, не основанными на sudo, я всегда могу войти в систему как обычный пользователь и переключиться - поэтому мне интересно, есть ли явное преимущество в разрешении входа в систему с правами root по ssh, или это просто то, что никто не пытается изменить?
Есть явное преимущество в разрешении корневого входа в ssh
Есть некоторые системы резервного копирования, которым требуется root-доступ в удаленной системе для фактического выполнения резервного копирования. Нередко можно увидеть настройку аутентификации на основе ключей для выполнения задач обслуживания в удаленных системах.
Я очень хочу, чтобы значение по умолчанию было изменено с PermitRootLogin yes
по крайней мере PermitRootLogin without-password
, это позволит использовать только аутентификацию на основе ключей. Удаленная аутентификация по паролю для учетной записи root почти никогда не требуется.
В системах (например, Ubuntu) становится все более распространенным, что система настраивается с учетной записью root с отключенным паролем. В настройке по умолчанию нет большого риска, поскольку нет возможности напрямую пройти аутентификацию для учетной записи с отключенным паролем.
Также учтите, что попытка грубой силы удаленно войти в систему с правами root через ssh имеет очень низкий шанс на успех, если у вас есть учетная запись root с достаточно сложным паролем. Отключение учетной записи root обеспечивает дополнительный уровень безопасности, но может не понадобиться, если у вас надежный пароль. Если вы комбинируете надежный пароль с реактивными инструментами, такими как denyhosts и fail2ban, обычно почти нет риска, что попытка подбора пароля root сработает.
После установки рекомендуется усилить защиту системы с учетом рисков и требований к вашей сети. Система, которая не критична и не имеет пользовательских данных, на самом деле не требует такого же уровня защиты, как система, в которой хранятся медицинские или банковские записи.
Рассмотрите возможность предотвращения входа в систему с правами root в качестве дополнительной защиты. Несколько лет назад брутфорс был на пике, сегодня они склонны искать уязвимости через то, что видят демоны (apache, pureftpd, ...). Предотвращение входа в систему с правами root станет отличной идеей, если завтра будет обнаружен эксплойт с SSHD. Хотя SSHD является зрелым и безопасным, вы никогда не узнаете. В последнее время эксплойты были больше направлены на повышение привилегий с помощью ядра или использование стороннего приложения с ядром, поэтому предотвращение входа в систему с правами root ничего бы не изменило.
Дистрибутив на основе Debian уже сделал переход, в то время как дистрибутив на основе RedHat предлагает это (если вы читаете их документы с лучшими практиками)
Я не уверен, но предполагаю, что они хотели убедиться, что люди, выполняющие иностранные установки, могут войти в систему. Для первого входа может потребоваться root, поскольку других пользователей еще нет.
Однако вы должны обязательно отключите вход как root в конфигурации sshd после того, как вы создали своего пользователя и дали ему права sudo.
Я также рекомендую вам изменить порт SSH на какой-то другой, кроме 22. Хотя это не делает вашу машину более защищенной, но останавливает все эти расточительные / раздражающие запросы.
Ну, потому что root - действующий пользователь, и sshd делает свою работу, позволяя ему. В OpenBSD (те же ребята из OpenSSH), например, вас не просят создать пользователя во время установки, поэтому вам нужно использовать root для доступа к вашему ящику.
Некоторые дистрибутивы для настольных компьютеров вынуждают вас создавать дополнительных пользователей, но для серверов они вам действительно не нужны.
Кроме того, эти аргументы, что sudo или su более безопасны, чем вход в систему с правами root, являются большим мифом. В Ubuntu, например, пользователь может запускать ЛЮБУЮ команду, используя sudo по умолчанию, поэтому любой злоумышленник, который входит в систему, также может выполнить ЛЮБУЮ команду от имени пользователя root. Довольно бесполезно с точки зрения безопасности.
Это в значительной степени зависит от дистрибутива. Некоторые позволяют это, некоторые нет.
Если бы я управлял дистрибутивом, я бы настроил систему на максимально возможную защиту при установке. Лучше забыть включить какую-либо функцию, чем забыть отключить некоторые функции.