LINUX.ORG.RU

Как бороться с SELinux в Fedora

 , ,


3

1

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

Вопрос, отчасти риторический: как бороться с SELinux в Fedora 25?

http://ix.io/rS7

апр 26 20:19:59 caterpillar-laptop setroubleshoot[18024]: failed to retrieve rpm info for /var/log/journal/71b5325e2d2e4868a4de64757e1e1a93/user-1000.journal
апр 26 20:20:00 caterpillar-laptop setroubleshoot[18024]: SELinux is preventing /usr/lib/systemd/systemd-journald from 'read, write' accesses on the file /var/log/journal/71b5325e2d2e4868a4de64757e1e1a93/user-1000.journal. For complete SELinux messages. run sealert -l 67b2428e-ea3e-4bc4-871f-0ba3274923c8
апр 26 20:20:00 caterpillar-laptop python3[18024]: SELinux is preventing /usr/lib/systemd/systemd-journald from 'read, write' accesses on the file /var/log/journal/71b5325e2d2e4868a4de64757e1e1a93/user-1000.journal.

<...>

апр 26 20:20:11 caterpillar-laptop nm-openvpn[18168]: OpenVPN 2.4.1 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Mar 28 2017
апр 26 20:20:11 caterpillar-laptop nm-openvpn[18168]: library versions: OpenSSL 1.0.2k-fips  26 Jan 2017, LZO 2.08
апр 26 20:20:11 caterpillar-laptop nm-openvpn[18168]: WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
апр 26 20:20:11 caterpillar-laptop audit[18168]: AVC avc:  denied  { open } for  pid=18168 comm="openvpn" path=2F686F6D652F636174657270696C6C61725F74726163746F722FD094D0BED0BAD183D0BCD0B5D0BDD182D18B2FD0BAD0BBD18ED187D0B82F636174657270696C6C61722D6C6170746F702E637274 dev="sda4" ino=266419 scontext=system_u:system_r:openvpn_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file permissive=0
апр 26 20:20:11 caterpillar-laptop nm-openvpn[18168]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
апр 26 20:20:11 caterpillar-laptop nm-openvpn[18168]: OpenSSL: error:0200100D:system library:fopen:Permission denied
апр 26 20:20:11 caterpillar-laptop nm-openvpn[18168]: OpenSSL: error:2006D002:BIO routines:BIO_new_file:system lib
апр 26 20:20:11 caterpillar-laptop nm-openvpn[18168]: OpenSSL: error:140AD002:SSL routines:SSL_CTX_use_certificate_file:system lib
апр 26 20:20:11 caterpillar-laptop nm-openvpn[18168]: Cannot load certificate file /home/caterpillar_tractor/Документы/ключи/caterpillar-laptop.crt
апр 26 20:20:11 caterpillar-laptop nm-openvpn[18168]: Exiting due to fatal error
апр 26 20:20:11 caterpillar-laptop NetworkManager[779]: <info>  [1493227211.9228] vpn-connection[0x557936190510,386b3657-01c2-4e7d-be5d-98d5c495bca6,"VPN 1",0]: VPN service disappeared

Почему journald нельзя писать в логи и почему openvpn нельзя читать файлы ключей?

Федора 25, обновлённая штатным способом с 23 -> 24 -> 25. Догадываюсь, что первое исправляется релейбелом (хотя отдельный вопрос — почему вообще требуется ручное вмешательство в штатной ситуации), а второе?

★★★★★

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

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

Фу таким быть.

Здесь я просто говорю что audit2why и audit2allow не являются годными источниками рекомендаций по фиксу проблемы. Само сообщение об ошибке - является. Однако я спорить на эту тему не буду, мне пофиг. Дискуссия на эту тему мне не интересна.

Просто я сомневаюсь что можно получить реально хорошие результаты при использовании дистрибутивной политики, слишком много случайностей. Играться и радоваться что броузер не почикал /home в разных случаях можно, это круто, но результат случайный и неконтролируемый... С SElinux реально хорошо, если сам политику писал и понимаешь что куда внести сразу. Иначе начинается страшная магия с костылями типа audit2why, setroubleshoot и прочая мутотень, гадание на кофейной гуще. То есть что реально произошло в результате применения этих подсказок - хз.

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

без явной мотивации оно в итоге достанет настолько

У меня десктоп с fedora живет с selinux в Enforcing режиме лет пять. Иногда для wine-игрушек переводить приходится, чтобы убедиться что они все равно не работают и дело не в этом.

Если соблюдать правила гигиены, не расшаривать home по http, не класть ключи в неположенные места и т.п., то selinux не создаёт проблем.

Дистрописатели вам хорошо не сделают.

Это очень сильное заявление. Дистрописатели делают хороший дефолт. В этом заключается суть дистрописания. Если ты более менее следуешь правилам, то дефолта будет достаточно, но кастомизацию под индивидуальные запросы разумеется нужно делать самому.

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

Здесь я просто говорю что audit2why и audit2allow не являются годными источниками рекомендаций по фиксу проблемы.

А кто-то с этим спорит? В качестве дополнительного источника информации для локализации проблемы они вполне подходят.

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

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

С SElinux реально хорошо, если сам политику писал и понимаешь что куда внести сразу. Иначе начинается страшная магия с костылями типа audit2why, setroubleshoot и прочая мутотень, гадание на кофейной гуще.

Люди, которые умеют писать политики, в состоянии разобраться и с audit2why, setroubleshoot и т.д.

То есть что реально произошло в результате применения этих подсказок - хз.

Ты это сейчас серьёзно?

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

Просто за последние этак пять лет на десктопных линуксах были только две значимые пробивки, описанные выше (Неуловимый Джо же). И в обоих Selinux оказался бесполезен.

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

Твой, да. Мы тут о десктопе говорим.

А ты говоришь, как типичный вендузятник без понимания реальных векторов эксплуатации. «У меня же стоит Трольсперский Антивирус!!!»

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

Или вон второй бабах знаменитый с PDF.js в фурифокс http://danwalsh.livejournal.com/72697.html
Помог selinux? - Нет.

А как именно он был должен помочь в этом случае? Чтение файла браузером (на какие есть доступ) и его отправка в сеть — это стандартная функциональность браузера.

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

Совершенно верно. А в чем смысл Selinux на десктопе?

Вектор мне дайте. Реальный. Хоть что-то было?

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

реальных векторов эксплуатации

Как отличить вектор эксплуатации от легитимной функциональности? Вот применительно в атаке через pdf.js.

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

Вдруг кто гоняет браузер из под рута. Вот такой насосаный из пальца вектор. На самом деле я не знаю, что сказать, поскольку применительно к десктопу не интересуюсь целенаправленно.

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

Ну в общем я согласен с тезисами. Но не про SElinux. И не про Федору. И даже не про RHEL. Да и дело не в том какой дефолт - я не люблю подстраиваться под неудобные мне вещи и хочу понимать что в итоге мне гарантируют и в каких условиях. То есть если строчка есть в политике, она должна быть там потому, что это нужно мне, а не потому, что где-то там решили что это хороший дефолт. Я не хочу своё время тратить на постоянную борьбу с sepolicy, но при этом я хочу знать, что жабаскрипт из хомяка не сможет пойти на 25-й TCP порт. То есть есть риск на который я готов идти, и есть тот, на который не готов. То есть софт может быть в хомяке (исполняемые файлы! suid'ные!) так как я его там компиляю. Но броузер весь адски порезан, вместе с почтой. Ну и всякая фигня по мелочи. А на серверах под каждый сервис свой контекст с чётко прописанными доступами, ничего лишнего вообще не сделать. Никаких идей на счет того что там может понадобиться кому-то - все разрешения на каждое индивидуальное действие. Разумеется всё начинается не с selinux'а а с продумывания конфигураций самих сервисов, SElinux - только последний этап. И тут, увы, приходится держать на каждый по виртуалке для тестов обновлений, потому как с selinux в параноидальной конфигурации ошибки в обновлениях могут стоить часов даунтайма :(

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

Да никак.

Выше совершенно верная цитата по ссылке

The big problem with confining desktop applications is the way the desktop has been designed.

Вопрос же о целесообразности Selinux на десктопе. А не о том, что обычно очень сложно в рамках десктопа со всеми его хитросплетениями понять, что опасное действие, а что нет.

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

вообще selinux нецелесообразен если воспринимается как чёрный ящик который настроил дистроклепатель и к которому надо приспосабливаться. тут нет ни безопасности ни удобства. Нахрена? Безопасность должна быть прозрачной и помогать а не мешать. Разгребать за горе-админами порушенный SElinux из-за того что супер-дупер софтина за много $$$ не запускается на этом вашем ...? Как раз после audit2allow... Просто или изучаешь инструмент и пользуешься им нормально или не пользуешься. Зачем себя обманывать? Плюс если нет чётких целей и списка важного и что нужно защизать и от чего, то это блин «у Оли новый антивирус!». С другой стороны если это вам даёт чувство защищённости и легче спать ночами, то я тут соглашусь, хорошо, здорово, полезно.

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

Язык у нас одинаковый (и я не имею в виду русский), просто вещаем с разных колоколен.

Я предлагаю закрыть тему.

Как скажешь.

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

Пробовал. :) В случае отладки PAM хотя бы понятно, когда ждать проблему и где искать её причину. А здесь ты ничего не подозреваешь, указываешь ключи, жмёшь «соединиться» и получаешь генерала Фейлора (в смысле неуточнённую ошибку соединения). Никаких предупреждений, намёков, ничего.

У тебя отлично видно в логе что vpn полез в user_home_t и там получил по рукам на open(2), что абсолютно правильно, так как демон vpn работает из confined домена.

Да, проблему отлично видно, только ни черта не понятно, что с ней делать.

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

А здесь ты ничего не подозреваешь, указываешь ключи, жмёшь «соединиться» и получаешь генерала Фейлора (в смысле неуточнённую ошибку соединения). Никаких предупреждений, намёков, ничего.

Да, проблему отлично видно, только ни черта не понятно, что с ней делать.

Но ведь если DAC даёт отлуп то этот отлуп сам по себе не запишется вообще _никуда_, и узнать что-то что не заработало можно только post-factum косвенно по логам. А если и логируется, то там в логе не будет написано как для чайников что мол запустите chmod на ресурс, там будет тупо permission denied в лучшем случае. Чем так принципиально хуже отлуп из MAC (SELinux), который мало того что логируется, так ещё и из кожи вон лезет пытаясь помочь в траблшутинге? (У меня лично в гноме notification всплывает, да, не знаю уж как у других.)

Опять же, в приведённом логе честно сказано что соединение не установить потому что не открыть файл с сертом:

caterpillar-laptop nm-openvpn[18168]: Cannot load certificate file /home/caterpillar_tractor/Документы/ключи/caterpillar-laptop.crt
Вопрос почему эта строка не выводится в GUI надо задать автору плагина для NM. Конкретная причина может быть разной (LSM hooks далеко не только в SELinux могут даль отлуп.)

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

ИМХО, но SELinux на домашнем ПК проще просто выключить, т.к. не нужен.

// Тред не читал.

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

Безопасность должна быть прозрачной и помогать а не мешать.

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

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

Безопасности самой по себе не бывает. У тебя комп ты на нём делаешь $$$. Самое простое по безопасности - это отключить сеть и замуровать в бетон. Но тогда ты не сможешь на нём делать $$$. Вот делать $$$ - первично. Безопасность - вторична. Если безопасность мешает делать $$$ - нафиг такая безопасность нужна. Если безопасность помогает не терять $$$ и зарабатывать больше - это круто и приятно. Так понятнее?

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

Самое простое по безопасности - это отключить сеть и замуровать в бетон.

о чём я и говорю, дальше ты просто идёшь на компромис.

Вот делать $$$ - первично. Безопасность - вторична.

это всё, опять таки, упирается в твой компромис между удобством и безопасностью. не бывает удобной и приятной безопасности.

Так понятнее?

каша у тебя в голове - вот что мне понятно.

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

Эх, лечиться вам батенька надо.

Я ж не спорю про компромиссы. Просто компромисс тут в одну сторону - всегда не в пользу безопасности. Могут придти злобные дяди и энфорсить полиси и ибеждаться что комп вмурован в бетон и сети нету, но этим дядям нужно платить зарплату, а для этого я должен что-то с этим компом делать, а делать с ним вмурованным в бетон ничего нельзя. Поэтому не бывает безопасности самой по себе. Сначала строится процесс наиболее эффективно, потом уже безопасность накручивается. Если Маше для работы надо запускать .exe, присланные в ссылках в вконтактике, значит это надо для работы, и чтобы обезопасить возможность зарабатывания Машей $$$, нужно исходить из существующего процесса, и смотреть где можно подстелить, понимая заранее риски, и оценивая стоимость простоя. Потому как потери из-за того, что какая-то дрянь не даёт Маше запустить .exe может быть выше, чем от переналивки компа за 2 часа раз в неделю. Надеюсь, я теперь изложил понятно. Если не помогло, простите, я больше ничего не могу сделать :(

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

Сначала строится процесс наиболее эффективно
Если Маше для работы надо запускать .exe, присланные в ссылках в вконтактике, значит это надо для работы

расскажи ещё про эффективные процессы

потом уже безопасность накручивается

во многих сферах действуют всевозможные регуляции и как раз процесс накручивают на безопасность.

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

И никто в целом лоре не предложил придти к подруге под вечер с цветами, вином и ключами для vpn. И всё самостоятельно настроить. А selinux поможет провозиться с этим до времени, когда транспорт уже не ходит.

О времена, о нравы.

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

Там где есть процесс. Да и не верю я что процесс можно накрутить на безопасность. Сначала же риски надо посчитать и прибыль. И уже смотреть как можно снижать риски минимальными затратами. А то мож с этой безопасностью и начинать не стоит. Безопасникам дай волю, посадят в железной комнате без сети и сотовые будут на входе изымать. Даже если это нафиг никому не сдалось. Просто мозги у них так работают. Продуктивность же их вообще не интересует.

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