Назад | Перейти на главную страницу

проблема безопасности команды Linux sudo?

  1. Я использую Red Hat Enterprise 5 Linux. Я обнаружил, что если пользователь находится в файле / etc / sudoers, то, если пользователь запускает команду с sudo, пользователь запускает эту команду с привилегиями root (не зная пароль root, пользователь запускает sudo, нужно только ввести собственный пароль пользователя в чтобы запустить команду с помощью sudo). Это правильное понимание?

    1. Если да, то это дыра в безопасности? Поскольку пользователи, отличные от root, могут работать с привилегиями root?

заранее спасибо, Джордж

Это не дыра в безопасности, по крайней мере, не более su является.

sudo для администратора просто способ получить быстрый root-доступ без использования корневой оболочки (что может быть опасно).

sudo просто требует, чтобы пользователь ввел свой пароль и действительно предоставит ему root-доступ (попробуйте $ sudo whoami). Однако не все должны быть в /etc/sudoers файл.

Если вы посмотрите на sudo manpage, вы узнаете, как ограничить sudo некоторым простым командам.

Например, вы можете разрешить только пользователю bob выполнить $ sudo poweroff не позволяя ему делать $ sudo cat /etc/shadow.

Так что нет, это не дыра в безопасности, если вы правильно ее настроите и используете. Если вы не хотите, чтобы у ваших пользователей была оболочка root, подумайте о запрете таких команд, как $ sudo su.

Если бы это была дыра в безопасности, sudo уже был бы удален. Это сделано намеренно, вы можете настроить его так, чтобы он запрашивал пароль пользователя, пароль root или вообще не запрашивал пароль.

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

Также о последней части: «поскольку пользователи, кроме root, могут работать с привилегиями root»: в этом весь смысл программы sudo.

sudo безопасен - достаточно безопасен для использования в некоторых дистрибутивах (Ubuntu) и рекомендуется по умолчанию.

Тем не менее, если вы даете пользователю общие права sudo, это в значительной степени устраняет разделение, которое у вас есть между этой учетной записью и учетной записью root. Если вы дадите пользователю общие права sudo Тимми, например, Тимми учетная запись становится такой же привилегированной, как и корень учетная запись. Любой, кто взломает учетную запись Timmy, может делать что угодно как root (в большинстве случаев требуется пароль Timmy).

Pro-sudo аргументы

  • Обычно настраивается так, чтобы никто не мог войти в систему как пользователь с именем «root». Может затруднить взлом суперпользователя.
  • У вас может быть детальный контроль над тем, какие команды пользователь может выполнять как суперпользователь (хотя обычно вы предоставляете все привилегии одной учетной записи, которая фактически выполняет ту же роль, что и «root» с другим именем).
  • Устраняет соблазн просто оставаться в системе как root, когда не все команды, которые вы запускаете, требуют привилегий суперпользователя.

Аргументы против sudo

  • Можно увидеть, что sudo поощряет практику раздачи пользователям привилегий уровня суперпользователя, что, вероятно, не является хорошей идеей.
  • sudo немного сложнее настроить, потому что он очень гибкий. Хотя это позволяет сделать его красивым и безопасным, это также может упростить непреднамеренное открытие брешей в безопасности, если вы не осторожны или не понимаете, что делаете.
  • В целом, использование учетной записи с привилегиями суперпользователя для повседневного использования может рассматриваться как плохая идея, а наличие привилегий sudo - следующая лучшая вещь. Противоположным аргументом является то, что ваш пароль пользователя (в большинстве случаев) по-прежнему требуется для повышения статуса до суперпользователя, и это вряд ли будет известно злоумышленникам / ошибочным процессам, выполняющимся от вашего имени.

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

Мне удобнее использовать не-sudo подход, в основном потому, что это то, с чем я лучше знаком как пользователь Debian. Я считаю, что простота учетной записи root важнее гибкости sudo. Я не разрешаю входить в систему удаленно (т.е. через SSH), и я также рекомендую никому этого не делать.

sudo безопасен, потому что:

  1. пользователь root или другой пользователь с поддержкой sudo (который может запускать visudo или $ EDITOR / etc / sudoers) должен изменить / etc / sudoers для предоставления привилегий.

  2. Вы можете ограничить и точно указать, что человек может запускать с привилегиями root, что позволяет иметь различные уровни пользователей-администраторов на сервере.

  3. Как привилегированный пользователь вы можете просмотреть существующий файл / etc / sudoers, чтобы узнать, у каких пользователей есть разрешения.

  4. Вам не нужно сообщать пароль суперпользователя группе администраторов.

  5. Полный отчет о том, что делается с помощью команды sudo, обеспечивает четкий контрольный журнал.

Я думаю, что для безопасности это лучше, чем входить в систему как root, поскольку делать что-то как root неудобно. Это, безусловно, лучше для подотчетности, которая является частью безопасности.

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

Меня беспокоит проблема безопасности: нет необходимости вводить мой пароль для каждой команды sudo; если я ввожу еще несколько с того же терминала, не теряя много времени, он принимает sudo без пароля. Предполагается, что это сделано для того, чтобы я не заставлял меня постоянно вводить свой пароль, но вполне возможно, что какое-то программное обеспечение для злоумышленников может это использовать. Я не знаю достаточно, чтобы лично оценить риск.

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

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

Как уже отмечалось, можно ограничить доступ к определенным командам. В примере sudoers есть несколько наборов команд, которые вы, возможно, захотите предоставить определенным пользователям, которым нужно выполнять задачу, требующую привилегий root. Используя sudo, можно разрешить это, не сообщая им пароль root.

Любой, кто может запустить сценарий или команду с привилегиями root, которые они могут изменить, фактически получил root-доступ. Вы должны доверять этим людям или не давать им доступа.

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

Судо намного безопаснее, чем альтернативы. Если неправильно настроен, или если неправильный доступ предоставляется ненадежным пользователям, это угроза безопасности (дыра).

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

sudo не подходит для безопасности. Программное обеспечение делегирования полномочий помогает различать, кто что делал, и надежно регистрировать действия. Но с большинством настроек sudo журнал активности можно легко подделать. А использование системного пароля пользователя означает, что если кто-то украдет пароль для входа в систему, он также сможет запустить sudo от имени этого пользователя, чтобы сделать что-то плохое. Затем на платформах UNIX / Linux любому системному администратору очень легко запустить сценарий в фоновом режиме для кражи чужого пароля. Системный администратор также может провести атаку с заменой пароля, чтобы использовать учетную запись жертвы для совершения плохих действий. А также может использовать учетную запись жертвы для запуска sudo, чтобы делать плохие вещи через обновление файла временной метки sudo. Это означает, что, когда журнал сообщает, что А сделал что-то и в какое время, это может быть не А. Требуется дополнительное расследование, чтобы выяснить, что произошло, но это может не всегда возможно.