Как заблокировать Интернет для приложения с помощью пользовательского профиля apparmor?

Я пытаюсь заблокировать доступ к Интернету для приложения, потому что оно всегда запрашивает покупку или обновление, даже если оно бесплатное. Я создал профиль apparmor для этого приложения и ввел его в действие, но после применения приложение не запускается.

Это профиль в /etc/apparmor.d/opt.sublime_text.sublime_text:

/opt/sublime_text/sublime_text {

        deny network inet,
        deny network inet6,
        deny network raw,  #include <abstractions/base>

        /opt/sublime_text/sublime_text mr,
        /opt/sublime-text/ rw,
        /home/shady/.config/sublime-text-3/ rw,
}

Я включил каталоги, которые могут понадобиться этому приложению. Что я делаю неправильно?

1 ответ

Вам нужно гораздо больше, чтобы запустить этот тип приложения. Когда в вашем профиле чего-то не хватает, он не имеет к нему доступа. Sublimetext должен иметь доступ к таким вещам, как:

  • X сервер
  • системные шрифты
  • Xauthority file
  • dconf
  • бойкий
  • так далее...

Лучший и самый простой способ создать свой профиль - это установить apparmor-utils

sudo apt-get install apparmor-utils

затем создайте свой профиль, используя инструмент создания профиля:

sudo aa-genprof /opt/sublime_text/sublime_text  

В данный момент он создает сублиметекстовый профиль в /etc/apparmor.d/ и слушает действия программы. Этот профиль находится в complain режим и ведение журнала в /var/log/syslog, Теперь вам нужно запустить сублиметекст и выполнить некоторые действия, такие как открытие и сохранение файлов и т. Д. Все эти действия будут сохранены в файле журнала, который используется aa-genprofдля создания правил. Когда вы закончите с действиями, нажмите s ключ и ответьте на вопросы о доступе или отказ в ваших ресурсах. Когда закончите использовать f ключ для сохранения вашего недавно созданного профиля и превращения его в enforce Режим.


Однако это довольно легко, этот инструмент не работает идеально. Это не будет включать в себя все, и вы должны добавить что-то вручную, например, доступ к X
В /etc/apparmor.d/opt.sublime_text.sublime_text:

include <abstractions/X>  

Если были внесены какие-либо изменения, вам необходимо перезагрузить конфигурационный файл:

sudo apparmor_parser r /etc/apparmor.d/opt.sublime_text.sublime_text      
Другие вопросы по тегам