Все привет! Помогите, пожалуйста, с профилем для AppArmor
Вот профиль:# Last Modified: Mon May 3 21:05:19 2021
#include <tunables/global>/usr/bin/FBReader flags=(complain) {
#include <abstractions/base>
#include <abstractions/fonts>
#include <abstractions/gnome>
#include <abstractions/openssl>
#include <abstractions/private-files>
#include <abstractions/private-files-strict>
#include <abstractions/ssl_certs>
#include <abstractions/user-tmp>deny network,
deny network inet,
deny network inet6,
deny network raw,/ r,
/** r,
/usr/bin/FBReader m,
/usr/share/** k,
owner /home/*/** rk,
owner /home/*/.FBReader/** rw,
owner /proc/*/cmdline r,}
Выход в сеть по-прежнему работает
Это всё как-то ненадёжно звучит, как и iptables. Пока что unshare лучшее решение. И unshare -r -n в частности. Сама программа хорошая (если конечно дело в ней) -- в отличие от coolreader нормально открывает epub (cr генерирует кеши полтора часа, долго открывает и перелистывает, с навигацией по оглавлению тоже беда, мобильная версия вообще не юзабельна на больших файлах). Но вот эти все захардкоженные литресы, я не знаю. Помнится, я даже патчил, чтобы заменять литрес на флибусту, хотя зачем вообще сеть читалке файлов без drm сегодня?
> unshare -r -n
> Но вот эти все захардкоженные литресыПод сетью я ввиду имел выход в инрернет... Там же sql-файл и он редактируется, удалите Литрес
Не знаю где это там, в моём fbreader литрес и все магазины прямо в бинаре и надо редактировать исходники и перекомпилировать. Unshare именно и отключает любую сеть, если нужен 127 то только от рута пускать и поднимать сеть наверно (во всяком случае я других способов не знаю). А, ну ещё nsenter наверно.
> Не знаю где это там, в моём fbreader литрес и все магазины
> прямо в бинаре и надо редактировать исходники и перекомпилировать. Unshare именноДесктопный с оф. сайта
> и отключает любую сеть, если нужен 127 то только от рута
> пускать и поднимать сеть наверно (во всяком случае я других способов
> не знаю). А, ну ещё nsenter наверно.Да их немного namespace, apparmor/selinux, --gid-owner и sg что я знаю
Кстати, конфиг в обучающем режиме, но на машине в принудительном
Это тот проприетарный с бэкдорами наверно, у меня ещё старый опенсорсный.
> Это тот проприетарный с бэкдорами наверно, у меня ещё старый опенсорсный.Ну вот apparmor как раз позволяет ограничить доступ в ОС в том числе и для сети. Тока что-то у меня не работает, но эти же денишены работают прекрасно с wget
Вообщем это похоже какие-то дистропроблемы. В debian apparmor с сетью не работает. Почитал английский инет и пишут, что отсутствует код, отвечающий за работу с сетевыми соединениями. В ubuntu apparmor сеть блокирует. Даже денишены писать не надо, так как все, что не разрешено, запрещено по-умолчанию
Лично я написал запускалку в 3 строки, которая проверяет, отключилась ли сеть, и если да, то уже запускает приложение (через execve). По сути тот же unshare (я не помню, чтобы тот проверял что-либо, но в случае когда фейлится -- он останавливается). Изначально я делал форк и пытался делать что-то сложнее unshare вторым процессом, но что-то после unshare от юзера есть проблема -- у юзера нет совсем никаких прав, даже виртуальных. Вроде пришёл к тому чтобы добавить логику nsenter и изолировать доступ через файрвол, потому что приложениям всё же бывает необходим локалхост и связь с внешним миром (контролируемая). Но потом я убедился, что всяким гимпам всё же не нужна сеть, и unshare тут вполне хватает.