IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [144]
    Безопасность IT [404]
    Блоки питания, Power Banks, зарядки... [512]
    Видеорегистраторы [188]
    Гаджеты для спорта и здоровья... [191]
    Гаджеты, аксессуары... [627]
    Измерительная техника, инструменты [446]
    Накопители данных [233]
    Нетбуки, Ноутбуки, Ультрабуки [691]
    Мультиварки, блендеры и не только... [164]
    Планшеты [764]
    Радар-детекторы [26]
    Роботы-пылесосы [40]
    Своими руками [366]
    Сети, сетевые технологии, оборудование... [273]
    Смартфоны [4963]
    Фотокамеры, объективы, искусство фотографии.. [541]
    Умный дом [53]
    Электронные книги [102]
    CB, LPD, PMR- связь... [170]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [109]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [3983]
    mini computers и не только... [412]
    News IT, Это интересно, ликбез... [1121]
    Smart TV, UltraHD, приставки, проекторы... [416]
    Smart Watch [269]
    Sound: наушники, плееры, усилители... [619]
    Windows 10... [301]
    Windows 11 [37]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1347
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 16
    Гостей: 16
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2017 » Апрель » 24 » Организация безопасного редактирования системных файлов с помощью sudoedit в Linux
    16:21
    Организация безопасного редактирования системных файлов с помощью sudoedit в Linux

    Организация безопасного редактирования системных файлов с помощью sudoedit в Linux

    Оригинал: How to let users securely edit files using sudoedit on Linux
    Автор: Himanshu Arora
    Дата публикации: 24 февраля 2017 г.
    Перевод: А.Панин
    Дата перевода: 23 марта 2017 г.

    Представьте, что вы являетесь системным администратором в компании, в которой несколько команд разработчиков используют Linux для совместной работы над файлами проекта, причем каждый из разработчиков обладает ограниченными привилегиями в системе. А теперь представьте, что участникам одной из команд понадобилось приступить к новой работе, связанной с необходимостью периодического редактирования файлов, для модификации которых требуются привилегии пользователя root. Что бы вы сделали в этом случае?

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

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

    %newsudo ALL = vim /путь/к/файлу
    

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

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

    Находчивый пользователь, имеющий опыт работы с текстовым редактором vim, сразу же поймет, что у него имеется возможность запуска командной оболочки непосредственно из текстового редактора - все, что для этого нужно - это выполнить с помощью текстового редактора следующую команду vim:

    :shell
    

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

    А это иллюстрация с соответствующим выводом:

    sudoedit

    Не стоит лишний раз говорить о том, что при использовании описанной конфигурации вместо возможности редактирования отдельного системного файла пользователь получит возможность делать в системе все, что ему угодно.

    Давайте рассмотрим другие варианты данной конфигурации. Существует тэг NOEXEC, который может использоваться в файле конфигурации sudoers:

    %newsudo ALL = NOEXEC: vim /путь/к/файлу
    

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

    noexec

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

    Описанная технология работоспособна в таких системах, как SunOS, Solaris, *BSD, Linux, IRIX, Tru64 UNIX, MacOS X, HP-UX версии 11.x, а также AIX версии 5.6 и более новых версий.

    ...

    Чтобы активировать технологию noexec для заданной команды следует использовать тэг NOEXEC таким образом, как описано в приведенном выше разделе "Пользовательские спецификации". А это пример:

    aaron shanty = NOEXEC: /usr/bin/more, /usr/bin/vi
    

    В данном случае пользователю с именем aaron разрешается запускать бинарные файлы /usr/bin/more и /usr/bin/vi с активацией технологии noexec. Эта технология позволяет предотвратить исполнение силами упомянутых программ других программ (таких, как командная оболочка). Если вы не уверены в том, поддерживается ли технология noexec вашей системой, вы всегда можете самостоятельно проверить возможность использования функций командной оболочки в текстовом редакторе vi, запущенном с тэгом для активации noexec.

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

    ...

    Если вы внимательно прочитали выделенный жирным шрифтом текст, вы наверняка поняли, что тэг NOEXEC имеет ряд ограничений.

    Итак, в чем же состоит наиболее безопасное решение? Ну, достаточно использовать sudoedit. Этот инструмент рекомендуется к использованию даже не странице руководства файла конфигурации sudoers:

    При возникновении необходимости работы с текстовым редактором наиболее безопасным решением является предоставление пользователю возможности запуска sudoedit.

    Sudoedit

    Sudoedit является встроенным в утилиту sudo механизмом запуска текстового редактора для безопасной модификации файлов. В соответствии со страницей руководства sudo, исполнение команды sudoedit эквивалентно исполнению команды sudo с параметром -e.

    Почему описанное решение является предпочтительным

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

    Принцип работы sudoedit

    Для использования sudoedit в файле конфигурации sudoers должна быть размещена аналогичная директива:

    %newsudo ALL = sudoedit /путь/к/файлу
    

    После этого все пользователи из группы newsudo будут иметь возможность редактировать файл после исполнения следующей команды:

    sudoedit /путь/к/файлу
    

    В результате исполнения данной команды в первую очередь создается временная копия указанного файла. После этого осуществляется поиск переменных окружения SUDO_EDITOR, VISUAL и EDITOR (в указанном порядке) для выяснения пути к бинарному файлу текстового редактора, который будет задействован для редактирования только что созданной временной копии файла. После того, как пользователь закончит редактирование файла, изменения будут скопированы в оригинальный файл.

    А это детальное описание соответствующего параметра со страницы руководства sudo:

    -e, --edit

    Отредактировать один или несколько файлов вместо исполнения команды. При описании политики безопасности вместо пути может использоваться строка "sudoedit". Если политика безопасности позволяет пользователю редактировать файлы, осуществляются следующие действия:

    1. Создаются временные копии редактируемых файлов, принадлежащие вызывающему текстовый редактор пользователю.
    2. Для редактирования временных копий файлов запускается определяемый политикой безопасности текстовый редактор. Стандартная политика, описанная в файле sudoers, предусматривает использование переменных окружения SUDO_EDITOR, VISUAL и EDITOR (в приведенном порядке). Если значения переменных окружения SUDO_EDITOR, VISUAL и EDITOR не заданы, вызывается первая программа, заданная с помощью параметра editor в файле конфигурации sudoers.
    3. Если временные файлы были модифицированы, они перемещаются и заменяют собой оригинальные версии файлов.

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

    Заключение

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

     

    http://rus-linux.net/MyLDP/admin/sudoedit-let-users-securely-edit-files.html

    Категория: Linux и не только | Просмотров: 595 | Добавил: laptop | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024