почему root-доступ должен быть отключен для ssh? Я всегда слышу это по соображениям безопасности. Но я не понимаю. Чем отличается вход в систему от имени пользователя root, а затем sudo su -
? Какой предпочтительный способ обработки задач, которым требуются привилегированные разрешения?
Спасибо
Томас
Ответы:
Sudo является предпочтительным способом для случаев, когда вам необходимо делегировать административные задачи из-за его возможности аудита и высокой степени детализации. Sudo позволяет регистрировать все команды и позволяет администратору настраивать различные профили sudo для отдельных пользователей или групп.
su или root-доступ - это все или ничего
источник
sudo -s
илиsudo bash
. Если вы не говорите об ограничении набора команд/etc/sudoers
, который я никогда не видел развернутым в производственной среде, где sudo используется в интерактивном режиме. Когда sudo включен, вредоносное программное обеспечение (например, запускаемое с помощью вводаmake
илиpython setup.py
в этом случайном хранилище, которое вы только что клонировали из GitHub) эффективно имеет права root. Сравните это со сценарием, в котором sudo отключен, и вместо этого для выполнения команд от имени root используется отдельное соединение SSH.Root - это единственная учетная запись, которая гарантированно будет включена и активирована на каждой машине с Unix, поэтому ее легко выбрать, чтобы попытаться взломать пароль. Без внешних инструментов (упаковщиков, которые убивают очевидные сканеры, устройства для предотвращения вторжений и тому подобное), это только вопрос времени, когда пароль будет определен. Даже несмотря на то, что внешние инструменты препятствуют такому поведению, все же рекомендуется заставить входящих пользователей войти в систему как обычный пользователь, а затем выполнить su / sudo / pfexec до расширенных привилегированных пользователей. Да, это дополнительный шаг, и это означает, что вам придется создавать учетные записи пользователей на компьютерах, которые являются общими для пользователей root, но это еще один барьер между злоумышленником и неограниченным контролем над полем.
источник
Основное отличие состоит в том, что злоумышленник должен угадать имя пользователя. Если вы позволите root войти в систему, то он просто должен угадать пароль.
Также он может подделать логин пользователя, получившего ключ ssh или повторно отправившего данные, используя подход «человек посередине», и он может войти в систему без необходимости ввода пароля. Но если он входит в систему как пользователь, он должен sudo-ize команды, и поэтому он вынужден вводить пароль вручную. Если он был зарегистрирован как root, ему не нужно sudo-ize вещи, так что это еще один шаг безопасности.
источник
Там сотни тысяч машин, которые сканируют на sshd и грубо форсируют их. «root» - это хороший аккаунт, который стоит попробовать сначала, потому что, если он сломается, вы полностью владеете машиной. Это также общая учетная запись во всех системах * nix, если вы не отключили вход в систему root . Это очень хорошая практика обеспечения безопасности.
источник
Основным преимуществом этого является то, что он обеспечивает более гибкий контроль доступа: если у пользователя есть root-права через sudo, легко предоставить root-права или отменить их при необходимости. И наоборот, если вы на самом деле вручаете людям корневой pw, вы не можете его забрать (если только вы не Люди в черном ;-)), вы можете изменить только корневой pw, что повлияет на всех.
В этом контексте прямой вход в систему root не нужен, потому что ни у кого нет root pw.
(Вам все еще понадобится root pw для экстренного доступа к консоли в однопользовательском режиме; но для этого должны быть особые условия).
источник
Но HP-UX никогда не вызывает недоступность рута через ssh, почему?
источник