Как заставить работать Dr. Web при ненулевом уровне конфиденциальности в Astra Linux?
Astra Linux - отечественная операционная система, которая все чаще попадается на глаза в последнее время. Так или иначе множество организаций в скором времени перейдут на нее, а некоторые уже сделали это. Однако в деталях всех механизмов работы разобраться не так просто, как кажется на первый взгляд.
Речь пойдет об установке антивируса Dr. Web на Astra Linux — но с одним нюансом. Редакция операционки, используемая здесь, «Смоленск» — является редакцией с максимальной защищенностью, и включает в себя механизм мандатного разграничения доступа. И именно с механизмом мандатного доступа «Доктор» не работает из коробки.
Подготовка
Для начала смоделируем ситуацию, чтобы получилось все наглядно показать. Перейдем в политику безопасности системы, нас интересует раздел «мандатные атрибуты», поменяем стандартное значение для уровней конфиденциальности (для того, чтобы глазу понятнее было):

Затем создадим нового пользователя и дадим ему возможность заходить под этим уровнем конфиденциальности:

Вот и все, подготовка для нашего теста завершена. Можно переходить к установке антивируса.
Установка Dr. Web
Dr. Web устанавливается из пакета .run, находящемся в дистрибутиве. Скопируем его на компьютер, откроем терминал, и добавим разрешение на исполнение этого файла:
cd *путь к файлу, напр. /home/admsec/Загрузки/*
chmod +x drweb-11.1.4-av-linux-amd64.run
Теперь запустим установочный пакет:
sudo ./drweb-11.1.4-av-linux-amd64.run
Вводим пароль администратора, и ждем, пока откроется окно установки. Нажимаем "установить".
После успешной установки, откроем приложение и активируем защиту (по умолчанию она отключена):

Заходим в систему с логином созданного пользователя (выбираем уровень конфиденциальности "Секретно"), и вновь открываем антивирус. Видим такую картину:

Нетрудно догадаться, что при запуске службы произошла какая-то ошибка, и антивирус просто-напросто не работает. Как же это исправить?
Давайте все-таки заставим его работать
Перейдем обратно под администратора, откроем терминал и выполним следующие шаги:
Откроем файл сценария:
sudo nano /etc/init.d/drweb-configd
Найдем в нем функцию start_daemon() и поменяем строку:
"$DAEMON" -d -p "$PIDFILE" >/dev/null 2>&1
На строку:
execaps -c 0x100 -- "$DAEMON" -d -p "$PIDFILE" >/dev/null 2>&1
Вернее, скорее модифицируем, а не поменяем, ведь отличается она только началом.
Нажмем сочетание клавиш Ctrl + x (выйти из редактора nano), и нажмем Y, затем Enter, чтобы сохранить изменения.
Но это еще не все! Далее открываем файл:
sudo nano /etc/parsec/privsock.conf
И дописываем в конец него строку:
/opt/drweb.com/bin/drweb-configd
Перезапускаем систему. Заходим под обычного пользователя в "секретном" режиме, открываем приложение антивируса, и видим:

Примечание: обычно этого достаточно, но если Dr. Web все равно не работает, попробуйте отключить SpIDder Gate, а также дополнительно модифицировать строку в файле /etc/init.d/drweb-configd, которая находится в самом начале: # Required-Start: $local_fs $network parsec (дописать слово parsec).
Готово! Служба Dr. Web успешно запустилась в ненулевом режиме конфиденциальности.