URL: https://ssl.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 5589
[ Назад ]

Исходное сообщение
"AppArmor заблокировать доступ в сеть"

Отправлено sasha , 03-Май-21 22:16 
Все привет! Помогите, пожалуйста, с профилем для 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,

}

Выход в сеть по-прежнему работает


Содержание

Сообщения в этом обсуждении
"AppArmor заблокировать доступ в сеть"
Отправлено Аноним , 03-Май-21 22:59 
Это всё как-то ненадёжно звучит, как и iptables. Пока что unshare лучшее решение. И unshare -r -n в частности. Сама программа хорошая (если конечно дело в ней) -- в отличие от coolreader нормально открывает epub (cr генерирует кеши полтора часа, долго открывает и перелистывает, с навигацией по оглавлению тоже беда, мобильная версия вообще не юзабельна на больших файлах). Но вот эти все захардкоженные литресы, я не знаю. Помнится, я даже патчил, чтобы заменять литрес на флибусту, хотя зачем вообще сеть читалке файлов без drm сегодня?

"AppArmor заблокировать доступ в сеть"
Отправлено sasha , 03-Май-21 23:51 
> unshare -r -n
> Но вот эти все захардкоженные литресы

Под сетью я ввиду имел выход в инрернет... Там же sql-файл и он редактируется, удалите Литрес


"AppArmor заблокировать доступ в сеть"
Отправлено Аноним , 04-Май-21 00:00 
Не знаю где это там, в моём fbreader литрес и все магазины прямо в бинаре и надо редактировать исходники и перекомпилировать. Unshare именно и отключает любую сеть, если нужен 127 то только от рута пускать и поднимать сеть наверно (во всяком случае я других способов не знаю). А, ну ещё nsenter наверно.

"AppArmor заблокировать доступ в сеть"
Отправлено sasha , 04-Май-21 00:22 
> Не знаю где это там, в моём fbreader литрес и все магазины
> прямо в бинаре и надо редактировать исходники и перекомпилировать. Unshare именно

Десктопный с оф. сайта
> и отключает любую сеть, если нужен 127 то только от рута
> пускать и поднимать сеть наверно (во всяком случае я других способов
> не знаю). А, ну ещё nsenter наверно.

Да их немного namespace, apparmor/selinux, --gid-owner и sg что я знаю
Кстати, конфиг в обучающем режиме, но на машине в принудительном



"AppArmor заблокировать доступ в сеть"
Отправлено Аноним , 04-Май-21 00:49 
Это тот проприетарный с бэкдорами наверно, у меня ещё старый опенсорсный.

"AppArmor заблокировать доступ в сеть"
Отправлено sasha , 04-Май-21 01:01 
> Это тот проприетарный с бэкдорами наверно, у меня ещё старый опенсорсный.

Ну вот apparmor как раз позволяет ограничить доступ в ОС в том числе и для сети. Тока что-то у меня не работает, но эти же денишены работают прекрасно с wget


"AppArmor заблокировать доступ в сеть"
Отправлено sasha , 04-Май-21 20:44 
Вообщем это похоже какие-то дистропроблемы. В debian apparmor с сетью не работает. Почитал английский инет и пишут, что отсутствует код, отвечающий за работу с сетевыми соединениями. В ubuntu apparmor сеть блокирует. Даже денишены писать не надо, так как все, что не разрешено, запрещено по-умолчанию



"AppArmor заблокировать доступ в сеть"
Отправлено Аноним , 08-Май-21 17:48 
Лично я написал запускалку в 3 строки, которая проверяет, отключилась ли сеть, и если да, то уже запускает приложение (через execve). По сути тот же unshare (я не помню, чтобы тот проверял что-либо, но в случае когда фейлится -- он останавливается). Изначально я делал форк и пытался делать что-то сложнее unshare вторым процессом, но что-то после unshare от юзера есть проблема -- у юзера нет совсем никаких прав, даже виртуальных. Вроде пришёл к тому чтобы добавить логику nsenter и изолировать доступ через файрвол, потому что приложениям всё же бывает необходим локалхост и связь с внешним миром (контролируемая). Но потом я убедился, что всяким гимпам всё же не нужна сеть, и unshare тут вполне хватает.