On 13.05.2019 16:09, Eugene Grosbein wrote:
13.05.2019 14:48, Konstantin Stefanov пишет:

Приветствую.

Есть у меня сервер с несколькими jail. В одном из джейлов для pkg заведен 
репозиторий вот в такой конфигурации:
FreeBSD-latest: {
   url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest";,
   mirror_type: "srv",
   signature_type: "fingerprints",
   fingerprints: "/usr/share/keys/pkg",
   enabled: yes,
   priority: 1
}

И есть на это сервере пакет jailaudit, который, в принципе, должен для всех 
джейлов сделать pkg audit, и результат выдать в ежедневную выдачу security. И 
вот на этот джейл этот самый jailaudit вываливает кучу сообщений типа

FreeBSD-latest.meta is vulnerable:
openssh -- multiple vulnerabilities
CVE: CVE-2006-5051
CVE: CVE-2006-4924
WWW: https://vuxml.FreeBSD.org/freebsd/32db37a5-50c3-11db-acf3-000c6ec775d9.html

с CVE лохматых годов, которые, очевидно, в текущей версии уже закрыты.
Небольшие разборки показали, что список пакетов (кроме стандартного pkg query 
-a) jailaudit дополняет при помощи
ls -1 /var/db/pkg/ |grep -v '.sqlite$' |grep -v 'auditfile'|grep -v 'vuln.xml'
и файл /var/db/pkg/FreeBSD-latest.meta попадает в список установленных пакетов, 
после чего передается в pkg audit FreeBSD-latest.meta и получается простыня 
непойми чего.

Собственно вопросы:
1. А зачем вообще смотреть на файлы в /var/db/pkg и отдавать их имена в pkg 
audit, что там может быть такого интересного?
2. Зачем вообще в базе, куда смотрит pkg audit, запись с ключом 
FreeBSD-latest.meta и содержимым за много-много лет?
3. А я чем-то рискую, выкинув файлы .meta из рассмотрения (добавив еще один 
grep -v в скрипт?

Ну и может вообще у кого-то есть мысли по поводу?

Не знаю ответов на вопросы, но судя по pkg-descr порта jailaudit, это очень 
старый порт,
который появился, когда pkgng ещё не было в природе и вместо pkg audit 
использовался
portaduit.
Это да, но потом туда пришла поддержка pkg audit.

jailaudit решает несуществующую нынче проблему и IMHO не нужен вообще.
Вполне достаточного коротенького скрипта типа такого:

jls | awk 'NR>1 {print $3, $4}' | while read name root
do
   printf "\nAudit for $name:\n"
   env PKG_DBDIR=$root/var/db/pkg pkg audit
done

В общем, он примерно это и делает. Плюс ставит скрипт в periodic/security, и отчет приходит в общем security output.

Как по мне, так если есть готовый пакет, который делает то, что мне надо, я поставлю его, и не буду потом при апгрейде вспоминать, что там за скрипты и почему что-то отвалилось. И сейчас мне проще поправить готовый скрипт, чем делать свое. Основной вопрос - зачем он все-таки смотрит в /var/db/pkg (может, там раньше что-то было, по чему можно определить имена установленных пакетов) и насколько безопасно ему это оторвать?

--
Константин Стефанов,

Лаборатория параллельных информационных технологий НИВЦ МГУ

тел. +7 (495) 939-23-41
_______________________________________________
freebsd mailing list
[email protected]
http://mailman.uafug.org.ua/mailman/listinfo/freebsd

Ответить