Запуск процессов с привилегиями PARSEC
Запуск процессов с привилегиями PARSEC
Выложена в открытый доступ утилита start-stop-parsec-daemon, пропатченная версия обычного start-stop-daemon для Astra Linux Special Edition. В отличии от стандартной версии умеет запускать процессы с привилегиями PARSEC под любым пользователем.
Зачем нужна?
Штатные возможности Astra Linux Special Edition не позволяют запускать процессы (демоны) со сменой UID/GID и при этом ставить привилегии PARSEC. Невозможно, например, запускать немодифицированные программы с привилегией PRIVSOCK (возможность подключения пользователей с ненулевой мандатной меткой) с UID/GID отличными от 0 (root).
Столь плачевное положение возможно имеет причиной: а) забывчивость Русбитеха; б) вера в то, что все привилегированные процессы должны запускаться от рута. Как бы то ни было, вся обвязка связанная с запуском процессов с привилегиями PARSEC, полна тлена и баш-скриптов и порой приводит к потере работоспособности скриптов запуска.
Посему мы это все решили прекратить и сделать свой start-stop-daemon с PARSEC привилегиями, но без скриптов.
Как это работает
Пакет устанавливает команду start-stop-parsec-daemon , полностью совместимую со штатным start-stop-daemon , но позволяющую указывать привилегии PARSEC с помощью параметра —capability . Для совместимости со штатным механизмом Астры privsock, если указана привилегия 0x100 (PRIVSOCK), то команда дополнительно сверяется с файлом /etc/parsec/privsock.conf на предмет наличия запускаемого бинарника в оном списке.
В остальном, все как обычно.
Как это всё прикрутить к собственному проекту?
- Добавьте в зависимости вашего пакета с init. d скриптом наш пакет (parsec-daemon).
- В скрипте используйте start-stop-parsec-daemon вместо start-stop-daemon .
- Укажите привилегии с помощью параметра —capability .
Пакеты можно собрать самостоятельно из исходников, а можно взять готовые для Astra Linux Special Edition 1.3/1.4 из нашего репозитория.
Рекомендация: если вы хотите таким образом адаптировать сторонние пакеты, то наилучшим способом будет создание пакета -parsec , в котором будет правильный LSB скрипт запуска. А postints/postrm скрипты будут отключать стандартный демон и работать с /etc/parsec/privsock.conf .
Пример
Конкретного примера не будет, смотрите нашу обвязку для RabbitMQ.
Наша версия start-stop-daemon войдет в версию 1.5 Astra Linux Special Edition.
Похожие статьи
Сборка Mono для Debian и Astra Linux
Команда Лаборатории 50 подготовила сборку Mono для Debian Buster и Astra Linux Special Edition 1.6. Состав В сборку входит: Mono 6.12; LibGdiPlus 6.0.6; Entity Framework 6; драйвер Npgsql Entity Framework.
ГосJava 2020.3
Изменения по сравнению с версией 2020.2 Java Runtime Environment Импортированы исправления из OpenJDK 8u262. Закрыты уязвимости: CVE-2020-14583: incomplete interface type checks in Graal compiler (Hotspot, 8236867). CVE-2020-14664: out-of-bounds write in.
Запуск нескольких экземпляров Tomcat
Запуск нескольких экземпляров Apache Tomcat Если есть необходимость запуска нескольких экземпляров сервера Apache Tomcat, то стандартные настройки и скрипты запуска не подходят. Ниже приведена инструкция и примеры скриптов для решения.
2 Comments
Спасибо большое за Ваш пакет!
Господа, а вот скажите мне как художник художнику.
Нужно мне использовать астровский apache (1.5 Смоленск) как frontend (или reverse proxy) к сервису, работающему на другом хосте.
Причем, apache работает в среде ALD с набором мандатных меток, а сервис — вообще вне мандатного контекста.
При этом web-юзеры работают в ALD и заходят с различными мандатными метками.
Если метка ненулевая, имеем Service unavailable. То есть apache не может достучаться до backend.
С нулевой меткой все работает.
Прописывал apache в privsock, запускал его через execaps -c 0×100.
Проверял эффективные capabilities через pscaps — все выставляется правильно.
Но с ненулевыми мандатными метками — не работает.
Предполагаю багу. Но все же есть еще надежда на мою криворукость.
Need help.
Источник
Parsec test astra linux
Настройка разрешений PARSEC (Astra Linux SE)
В дистрибутивах Linux, оснащённых подсистемой безопасности PARSEC , доступ приложений к файлам зависит от уровня привилегий. Поэтому по умолчанию SpIDer Guard может перехватывать события доступа к файлам ровно в той мере, в которой это предусмотрено его уровнем привилегий.
Кроме того, в случае если пользователь работает на отличном от нуля уровне привилегий, интерфейс пользователя Dr.Web для Linux не может взаимодействовать со SpIDer Guard и сервисными компонентами антивируса, работающими на других уровнях привилегий, в том числе может отсутствовать доступ к консолидированному карантину .
Если в ОС используется PARSEC и имеются учетные записи пользователей, работающих на уровнях привилегий, отличных от нулевого, необходимо выполнить специальную настройку Dr.Web для Linux, чтобы обеспечить взаимодействие его компонентов, запускаемых на различных уровнях привилегий.
В этом разделе рассматриваются следующие настройки PARSEC , обеспечивающие корректную работу Dr.Web для Linux:
• Настройка взаимодействия компонентов, запущенных на разных уровнях привилегий.
• Настройка автоматического запуска компонентов Dr.Web для Linux на уровне привилегий пользователя.
• Настройка SpIDer Guard для перехвата событий доступа к файлам.
Для осуществления этих операций необходимы права суперпользователя (пользователя root ). Для получения прав суперпользователя воспользуйтесь командой смены пользователя su или командой выполнения от имени другого пользователя sudo .
Настройка взаимодействия компонентов, запущенных на разных уровнях привилегий
Для ОС Astra Linux SE версии 1.6:
Внесите изменения в системный файл /etc/parsec/privsock.conf , наделив демон управления конфигурацией Dr.Web для Linux ( drweb-configd ) правом на использование механизма privsock . drweb-configd — сервисный компонент Dr.Web для Linux, обеспечивающий взаимодействие всех антивирусных компонентов между собой. Механизм privsock предназначен для обеспечения функционирования системных сетевых сервисов, не осуществляющих обработку информации с использованием мандатного контекста, но взаимодействующих с процессами, работающими в мандатном контексте субъекта доступа. Для этого выполните следующее:
1. В любом текстовом редакторе откройте файл /etc/parsec/privsock.conf . Добавьте в этот файл указанные строки:
2. Сохраните файл и перезагрузите систему.
Для ОС Astra Linux SE версии 1.5 и менее:
Внесите изменения в сценарий запуска демона управления конфигурацией Dr.Web для Linux ( drweb-configd ). Для этого выполните следующее:
1. Совершите вход в систему с использованием учетной записи, обладающей нулевым уровнем привилегий.
2. В любом текстовом редакторе откройте файл сценария /etc/init.d/drweb-configd .
3. Найдите в этом файле определение функции start_daemon() , в которой замените строку
«$DAEMON» -d -p «$PIDFILE» >/dev/null 2>&1
execaps -c 0x100 — «$DAEMON» -d -p «$PIDFILE» >/dev/null 2>&1
4. В некоторых ОС (например, Astra Linux SE 1.3) может потребоваться указать дополнительно зависимость запуска компонента от подсистемы PARSEC . В этом случае также необходимо модифицировать в этом файле строку:
# Required-Start: $local_fs $network
Измените данную строку следующим образом:
# Required-Start: $local_fs $network parsec
5. Сохраните файл и перезапустите систему.
Настройка автоматического запуска компонентов на уровне привилегий пользователя
Для того, чтобы компоненты Dr.Web для Linux, с которыми взаимодействует пользователь, были доступны в его окружении (при работе пользователя на уровне привилегий, отличном от нулевого), внесите изменения в файлы настроек PAM для автоматического запуска требуемых компонентов Dr.Web для Linux при начале сессии пользователя и их завершения при окончании сессии (используется специальный PAM-модуль pam_drweb_session.so , разработанный «Доктор Веб», который запускает компонент-посредник drweb-session , связывающий между собой локальные копии компонентов, запущенных в окружении пользователя, с компонентами, работающими на нулевом уровне привилегий и запускающимися автоматически при загрузке ОС).
Для внесения изменений в настройки PAM вы можете использовать утилиту конфигурирования drweb-configure , входящую в состав Dr.Web для Linux (рекомендуется), либо внести изменения в необходимые файлы конфигурации вручную.
1. Использование утилиты drweb-configure
Для удобства настройки некоторых сложных параметров, обеспечивающих работоспособность Dr.Web для Linux, разработана специальная вспомогательная утилита drweb-configure .
1. Для включения или отключения автоматического запуска необходимых компонентов Dr.Web для Linux в окружении пользователя при его работе на уровне привилегий, отличном от нулевого, используйте следующую команду:
$ sudo drweb-configure session
где может принимать одно из следующих значений:
• enable — включить режим автоматического запуска нужных компонентов в сессии пользователя на его уровне привилегий.
• disable — отключить режим автоматического запуска нужных компонентов в сессии пользователя на его уровне привилегий (при этом ряд функций Dr.Web для Linux окажется недоступным).
2. Перезапустите систему.
Для получения справки по использованию drweb-configure для настройки PAM используйте команду:
$ drweb-configure —help session
2. Изменение файлов конфигурации PAM вручную
1. В файлы конфигурации PAM (расположены в каталоге /etc/pam.d ), в которых вызывается модуль PAM pam_parsec_mac.so , добавьте следующие записи типа session :
• Перед первой записью типа session :
session optional pam_drweb_session.so type=close
• После последней записи типа session :
session optional pam_drweb_session.so type=open
2. Сохраните измененные файлы.
3. Создайте символическую ссылку на файл pam_drweb_session.so из системного каталога, содержащего PAM-модули. Файл pam_drweb_session.so располагается в каталоге библиотек Dr.Web для Linux /opt/drweb.com/lib/ (например, для 64-разрядных ОС — в каталоге /opt/drweb.com/lib/ x86_64-linux-gnu/pam/ ).
4. Перезапустите систему.
Настройка SpIDer Guard для перехвата событий доступа к файлам
Для предоставления файловому монитору SpIDer Guard возможности обнаруживать доступ к файлам, имеющим любой уровень привилегий доступа, необходимо перевести SpIDer Guard в режим работы Fanotify .
Чтобы перевести SpIDer Guard в режим работы Fanotify , выполните следующую команду :
# drweb-ctl cfset LinuxSpider.Mode Fanotify
Для получения дополнительной информации используйте команду:
Источник
Операционные системы Astra Linux
Оперативные обновления и методические указания
Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).
1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).
Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».
На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.
Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!
Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.
Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.
В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.
Очередные обновления (версии) предназначены для:
- реализации и совершенствования функциональных возможностей;
- поддержки современного оборудования;
- обеспечения соответствия актуальным требованиям безопасности информации;
- повышения удобства использования, управления компонентами и другие.
Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:
- инструкций и методических указаний по настройке и особенностям эксплуатации ОС, содержащих сведения о компенсирующих мерах или ограничениях по примене- нию ОС при эксплуатации;
- отдельных программных компонентов из состава ОС, в которые внесены изменения с целью устранения уязвимостей, инструкций по их установке и настройке, а также информации, содержащей сведения о контрольных суммах всех файлов оперативного обновления;
- обновлений безопасности, представляющих собой файл с совокупностью программных компонентов из состава ОС, в которые внесены изменения с целью устранения уязвимостей, а также информации, содержащей сведения о контрольных суммах всех файлов обновлений безопасности, указания по установке, настройке и особенностям эксплуатации ОС с установленными обновлениями безопасности.
Ввиду совершенствования нормативно-правовых документов в области защиты информации и в целях обеспечения соответствия информационных актуальным требованиям безопасности информации, а также обеспечения их долговременной эксплуатации, в том числе работоспособности на современных средствах вычислительной техники, рекомендуется на регулярной основе планировать проведение мероприятий по применению очередных и оперативных обновлений операционной системы.
Источник