LINUX.ORG.RU

apparmor и skype

 , ,


0

1

Иногда мне нужно воспользоваться skype'ом и чтобы это было более безопасно, захотел настроить apparmor раз и навсегда. До этого на предыдущих версиях ubuntu несколько раз пытался это сделать, но не удавалось и я бросал эту затею. Сейчас ubuntu 12.04. Нагуглил несколько профилей apparmor для skype и нашел еще пару на Лоре, но они у меня не работали. Сгенерировал профиль, прошел квест до конца (пришлось отвечать на вопросы сотню раз: «разрешить» или «запретить») и skype запустился. Хочу чтобы вы посмотрели на мой «usr.bin.skype» , нет ли в нем лишних прав для skype.
Еще хочу выяснить некоторые нюансы, правила профиля, как он работает, потому что не нашел, что означают некоторые параметры, например: «r», «w», насколько понимаю, это «чтение» и «запись», а что такое «m» и «k» не знаю. И если перед строкой стоит «deny» то это запрет, а если нет, то разрешение? Главный вопрос: если есть явные запрет и разрешение для указаных файлов, означает ли это, что skype не полезет в те файлы, которые не занесены в список? Потому что не знаю зачем тогда и запрет и разрешение, могло быть что-то одно, если он допускает только к перечисленным файлам.

На счет профиля. Можно ли вместо /home/user/.mozilla/куча_файлов записать /home/user/mozilla* — будет работать? И еще, увидел одну строку, взятую в кавычки. Почему только одна, а не все?



Последнее исправление: cetjs2 (всего исправлений: 1)

Ответ на: комментарий от anonymous

зачем tomoyo, если уже настроил apparmor?

да и

sudo tomoyo-editpolicy
Please mount securityfs on /sys/kernel/security/ .
You can't use this editor for this kernel.

Bugs-Bunny
() автор топика
Ответ на: комментарий от Bugs-Bunny

Читаем man'ы

r - read
w - write — conflicts with append
a - append — conflicts with write
ux - unconfined execute
Ux - unconfined execute — scrub the environment
px - discrete profile execute
Px - discrete profile execute — scrub the environment
ix - inherit execute
m - allow PROT_EXEC with mmap(2) calls
l - link
k - lock

anonymous_sama ★★★★★
()

Для начала тебе хорошо бы знать, что «базовые» профайлы apparmor не запрещают доступ к каким либо файлам в /home/$USER/.
Поэтому если тебе нужно защищать им пользовательские данные, а не операционную систему, то начать надо с правки базовых профайлов.

По сабжу же, если скайп является единственной опасной программой которой ты пользуешься, то можно нагромоздить lxc, это часто более прозрачный путь, если речь идет об изоляции проприетарного блоба.

winddos ★★★
()
Последнее исправление: winddos (всего исправлений: 1)
Ответ на: комментарий от winddos

«базовые» профайлы apparmor не запрещают доступ к каким либо файлам в /home/$USER/.

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

Так. По существу. Вы сбиваете меня с толку. Я создал профиль с нуля (написал в теме), значит он не базовый и он работает, при этом скайп таки не имеет доступа к пользовательским данным, потому что даже аватарку сменить не удается — открывается пустое окно выбора файлов — он их не видит в /home — ни одного файла не видит.

Хотел узнать от компетентных людей, чего не достает моему профилю или что в нем лишнее, потому что не уверен, все ли правильно сделал.

если скайп является единственной опасной программой

пока да

можно нагромоздить lxc

я не знаю, что такое lxc, поэтому, наверно не нужно ничего нагромождать. Пока останавливаюсь на apparmor.

Bugs-Bunny
() автор топика
Ответ на: комментарий от anonymous_sama

Читаем man'ы

спасибо, добрый человек! Выручил!

А если серьезно, я читаю маны, и если чего-то не понимаю, то прошу помощи.

То есть

a - append — conflicts with write
ux - unconfined execute
Ux - unconfined execute — scrub the environment
px - discrete profile execute
Px - discrete profile execute — scrub the environment
ix - inherit execute
m - allow PROT_EXEC with mmap(2) calls
l - link
k - lock
нужен был ман по-русски

Bugs-Bunny
() автор топика
Ответ на: комментарий от Bugs-Bunny

гм... тогда зачем этот apparmor сдался, если ничего не защищает.

AppArmor как и SELinux создавался не для защиты данных в твоем хомячке.
Именно поэтому для решения этой задачи надо его допиливать.

Я думал, что скайп сможет иметь доступ только к тем файлам, которые занесены в профиль.

Только в том случае, если ты не будешь включать в него никаких других профилей из «abstractions».
Если включаешь их, то надо изучить как они работают тоже.

Так. По существу. Вы сбиваете меня с толку. Я создал профиль с нуля (написал в теме), значит он не базовый и он работает

У тебя в профайле есть:

include <abstractions/base>
include <abstractions/nameservice>

Т.е он уже включает в себя два файла (которые в свою очередь включают ещё кучку).

Хотел узнать от компетентных людей, чего не достает моему профилю или что в нем лишнее, потому что не уверен, все ли правильно сделал.

Ну вот я тебе и даю совет, правда не для этого профайла, а на будущее: дефолтные «abstractions» не заточены чтобы защищать твой хомячок, поэтому крайне аккуратно их используй.

winddos ★★★
()
Ответ на: комментарий от anonymous

Лучший способ растерять всех клиентов?

Наоборот, приобрести.

CAPS_LOCK
()
Ответ на: комментарий от anonymous

Надо объяснить заказчику, коллеге, что использование skype - использование закрытого ПО. Из-за этого люди ограничивают свою свободу. Порекомендуйте ему впредь использовать открытые протоколы.

anonymous
()

Skype и безопасность в одном предложении? Сделали мой день. Либо крестик снимите, либо трусы наденьте.

AlexCones ★★★
()

Хочу чтобы вы посмотрели на мой «usr.bin.skype»

Твоя политика безопасности делает меня плакать.

/run/shm/pulse-shm-2654781485 mr,
deny /home/user/.mozilla/firefox/ctdwci6l.default-1355404492984/extensions

Должно быть, условно говоря, что-то вида allow /run/shm/pulse-shm-* и deny-everything-else без всяких мозилл и т.д., иначе твоя эта политика безопасности не имеет ничего общего с безопасностью.

Осиль наконец TOMOYO и возьми готовую политику для скайпа от pf на 15 строчек, где всё задано масками и очень четко и надежно расчерчено.

shahid ★★★★★
()
Последнее исправление: shahid (всего исправлений: 2)
Ответ на: комментарий от Bugs-Bunny

Please mount securityfs on /sys/kernel/security/ .

Надо выставить

... security=tomoyo TOMOYO_trigger=полный-путь-к-init-или-systemd
в строке ядра и ребутнуться. В общем, кури ссылки на арчвики из предыдущего коммента.

shahid ★★★★★
()
Последнее исправление: shahid (всего исправлений: 1)

Можно ли вместо /home/user/.mozilla/куча_файлов записать /home/user/mozilla* — будет работать?

Не факт. В tomoyo в exception_policy обычно пишут так:

path_group FIREFOX_PROFILE /home/user/.mozilla/\*          # все файлы в .mozilla/
path_group FIREFOX_PROFILE /home/user/.mozilla/\{\*\}/     # все поддиректории
path_group FIREFOX_PROFILE /home/user/.mozilla/\{\*\}/\*   # все файлы во всех поддиректориях
И потом в policy указывают:
<kernel> /usr/bin/firefox
file read @FIREFOX_PROFILE
file write @FIREFOX_PROFILE
...

PS: Чтоб /usr/bin/firefox висел на месте, а не бегал по дереву политик, надо не забыть прописать initialize_domain /usr/bin/firefox from any в вышеупомянутом exception policy. А чтобы руками ничего не писать, используют learing-mode и самописный /etc/tomoyo/tools/patternize.conf по типу

rewrite path_pattern /home/user/.mozilla/firefox/\*                     @FIREFOX_PROFILES
rewrite path_pattern /home/user/.mozilla/firefox/\{\*\}/                @FIREFOX_PROFILES
rewrite path_pattern /home/user/.mozilla/firefox/\{\*\}/\*              @FIREFOX_PROFILES
и периодически вызывают tomoyo-patternize согласно документации.

shahid ★★★★★
()
Последнее исправление: shahid (всего исправлений: 1)
Ответ на: комментарий от shahid

не получится tomoyo настроить. На убунту разве не apparmor по дефолту? Да, установил tomoyo-tools, перезагрузка, в строке grub пишу security=tomoyo, результат — kernel panic

Bugs-Bunny
() автор топика
Ответ на: комментарий от Bugs-Bunny

По опыту: когда сервису не доверяют, т.к. в нем могут содержаться ошибки, то запускают под отдельным пользователем без прав (bind, nginx, php-fpm, postfix, vsftpd и т.д.).
Некоторые идут дальше и создают chroot'ы, в которых крутится серверное ПО. За сим все. Все довольны.

Чем же скайп столь более опасен, чем потенциально дырявий сервер? что необходимо танцевать вокруг apparmor...

Если ты думаешь, что отдельного пользователя недостаточно, то почему?

Spoofing ★★★★★
()
Ответ на: комментарий от Spoofing

Если ты думаешь, что отдельного пользователя недостаточно, то почему?

я такого не говорил. Только спросил про возможные варианты (apparmor, другой_пользователь, виртмашина). Ну, да есть чуть паранойя по поводу скайпа. Чего только не начитаешься в сети. В основном — боязнь, чтоб он «не украл» «фотачьки» и другие личные данные, а остальное пофиг, пусть себе «подслушивает», я и так не веду там секретных разговоров.

Bugs-Bunny
() автор топика

Еще хочу выяснить некоторые нюансы, правила профиля, как он работает, потому что не нашел, что означают некоторые параметры, например: «r», «w», насколько понимаю, это «чтение» и «запись», а что такое «m» и «k» не знаю. И если перед строкой стоит «deny» то это запрет, а если нет, то разрешение?

1. http://animatika.ru/netcat_files/userfiles/3/facepalm.jpg

2. man apparmor.d:

       r    - read
       w    - write -- conflicts with append
       a    - append -- conflicts with write
       ux   - unconfined execute
       Ux   - unconfined execute -- scrub the environment
       px   - discrete profile execute
       Px   - discrete profile execute -- scrub the environment
       cx   - transition to subprofile on execute
       Cx   - transition to subprofile on execute -- scrub the environment
       ix   - inherit execute
       m    - allow PROT_EXEC with mmap(2) calls
       l    - link
       k    - lock

3. http://wiki.apparmor.net

anonymous
()
Ответ на: комментарий от Spoofing

Чем же скайп столь более опасен, чем потенциально дырявий сервер? что необходимо танцевать вокруг apparmor...

Скайп не «более опасен». Просто нужно иметь возможность из него доступ к некоторым пользовательским файлам и удобное сохранение того, что пришлют в районе домашнего каталога пользователя. При этом, настраивать chroot как-то не очень хочется: apparmor проще и удобнее.

anonymous
()
Ответ на: комментарий от Bugs-Bunny

Я создал профиль с нуля ... я не знаю, что такое lxc ... чего не достает моему профилю

Бэ, осиль уже поисковик.

Last Modified: Fri Jul 20 23:04:20 2012
# REPOSITORY: http://apparmor.test.opensuse.org/backend/api draglor 53
# Additional profiling based on work by Андрей Калинин, LP: #226624

#include <tunables/global>

/usr/bin/skype flags=(complain) {
  #include <abstractions/X>
  #include <abstractions/audio>
  #include <abstractions/base>
  #include <abstractions/fonts>
  #include <abstractions/freedesktop.org>
  #include <abstractions/kde>
  #include <abstractions/nameservice>
  #include <abstractions/nvidia>
  #include <abstractions/user-tmp>

  capability dac_override,


  deny /dev/tty rw,

  /bin/ls rix,
  /dev/pts/1 rw,
  /dev/video* mrw,
  /etc/skype/** r,
  /proc/*/cmdline r,
  /usr/bin/skype mr,
  /usr/bin/skype.real rpx,
  /usr/lib{,32,64}/** mr,
  /usr/share/skype/** rk,
  /usr/share/skype/sounds/*.wav rk,
  /var/cache/libx11/compose/* r,
  @{HOME}/.Skype/ rw,
  @{HOME}/.Skype/** rwk,
  @{HOME}/.config/* rk,
  @{HOME}/.kde/share/config/kioslaverc r,
  @{HOME}/.mozilla/ r,
  @{HOME}/.mozilla/*/ r,
  @{HOME}/.mozilla/*/*/ r,
  @{HOME}/.mozilla/*/*/bookmarkbackups/ r,
  @{HOME}/.mozilla/*/*/chrome/ r,
  @{HOME}/.mozilla/*/*/extensions/ r,
  @{HOME}/.mozilla/*/*/prefs.js r,

}

# Last Modified: Sun Dec 23 17:31:06 2012
# REPOSITORY: http://apparmor.test.opensuse.org/backend/api draglor 53
# Additional profiling based on work by Андрей Калинин, LP: #226624

#include <tunables/global>

/usr/bin/skype.real flags=(complain) {
  #include <abstractions/X>
  #include <abstractions/audio>
  #include <abstractions/base>
  #include <abstractions/fonts>
  #include <abstractions/freedesktop.org>
  #include <abstractions/kde>
  #include <abstractions/nameservice>
  #include <abstractions/nvidia>
  #include <abstractions/user-tmp>

  capability dac_override,


  deny /dev/tty rw,
  deny /etc/group m,
  deny /etc/passwd m,
  deny /proc/sys/kernel/osrelease r,
  deny /proc/sys/kernel/ostype r,
  deny /sys/devices/system/cpu/ r,
  deny /sys/devices/virtual/dmi/id/board_name r,
  deny /sys/devices/virtual/dmi/id/board_vendor r,
  deny /sys/devices/virtual/dmi/id/board_version r,
  deny /sys/devices/virtual/dmi/id/product_name r,
  deny /sys/devices/virtual/dmi/id/product_version r,
  deny /sys/devices/virtual/dmi/id/sys_vendor r,
  deny @{HOME}/.mozilla/* r,

  /bin/ls rix,
  /dev/ r,
  /dev/pts/1 rw,
  /dev/snd/* mrw,
  /dev/video* mrw,
  /etc/skype/plug-scripts/ r,
  /etc/skype/plug-scripts/* r,
  /home/*/**/ r,
  /home/*/.config/Skype/* rwk,
  /proc/*/cmdline r,
  /proc/*/fd/ r,
  /proc/*/net/arp r,
  /proc/*/net/route r,
  /proc/*/task/ r,
  /proc/*/task/** r,
  /run/shm/* mrw,
  /usr/bin/skype mr,
  /usr/bin/skype.real mrpx,
  /usr/bin/xdg-open rix,
  /usr/share/icons/** rk,
  /usr/share/locale/** mr,
  /usr/share/skype/** mrk,
  /usr/share/sounds/** rk,
  /usr/share/texmf/fonts/** mr,
  /var/cache/libx11/compose/* r,
  /var/lib/dbus/machine-id r,
  owner /{run,dev}/shm/pulse-shm* k,
  /{run,dev}/shm/pulse-shm* mrw,
  @{HOME}/ r,
  @{HOME}/.Skype/ rw,
  @{HOME}/.Skype/** rwk,
  @{HOME}/.config/* rk,
  @{HOME}/.config/Trolltech.conf r,
  @{HOME}/.fontconfig/* rw,
  @{HOME}/.fonts.conf r,
  @{HOME}/.icons/** r,
  @{HOME}/.kde/share/config/kdeglobals k,
  @{HOME}/.pulse-cookie rwk,
  @{HOME}/Downloads/ rw,
  @{HOME}/Downloads/** rw,

}
anonymous
()
Ответ на: комментарий от anonymous

Да, конфиги, естественно надо почистить (там всякакя помойка есть, например, когда-то по недосмотру был добавлен допуск к закладкам), чем я сейчас и занимаюсь.

Любопытно, а на мой вопрос может кто-то тут ответить? Попробую. AppArmor, насколько я понимаю, имеет приоритет для deny, который нельзя переопределить.

1. Если я включаю некоторый файл, в котором для пути указан deny, могу ли я как-то переопределить права на путь в файле, в который я его включаю?

2. Если я ограничиваю доступ ко всем файлам и подкаталогам (deny dir/** r), могу ли я как-то потом изменить права на доступ к указанному подкаталогу (например, owner dir/subdir r)?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.