В идеальном мире полиси пишется разработчиками, которые точно знают, что их софт хочет и будет делать.
В не-идеальном — semanage permissive -a, sleep 86400, audit2allow -b -t software_t и курим что он делал и что из этого ему реально надо.
Помимо подчас ненужного оверхеда и сложных конфигураций, есть простой вопрос: зачем?
Зачем тот-же LAMP засовывать в контейнеры ( причем еще каждый компонент в свой ), когда можно просто настроить контексты за 10 минут и спать спокойно?
— Настройка базовой refpolicy на примере LAMP ( booleans, contexts, etc )
— Читшит по макросам refpolicy ( самому надо :) )
— Возможно — внедрение MLS/MCS, но это уже больше для банков и прочих военных.
Проще, но:
— audit2allow не делает правила по переходам типов ( type_transition, type_member итд )
— audit2allow делает две сотни правил вида allow service_t long_file_type_t:lnk_file { getattr };
— если не включить типы в нужные атрибуты ( что audit2allow тоже не умеет делать ), то придется писать для каждого нового типа разрешения от всех других типов ( включая unconfined_t ), что еще в сотню раз увеличит размер модуля.
— в итоге понять, к чему именно приложение попросило доступ — сложнее, чем погрепать два часа по include и найти все необходимые макросы.
Надо смотреть ошибки на серверной стороне, они более вменяемые. Конфигурация из моей инструкции вполне себе работает на OS X и iOS.
Смотрел. Но задача была не смотреть ошибки, а сделать себе вменяемый VPN на PHDays, чтоб не попасть в список тех, кого еще похекали :)
Сделал, посмотрел что солюшен умещается в 10 строчек баш-скрипта, выложил на хабр. Возможно это и не самое лучшее решение, но уж точно одно из самых простых и быстрых для настройки.
Спасибо за комментарий. К сожалению, IKEv2 и «без боли» — это несовместимые понятия, как минимум из-за PKI. racoon не на «стадии стагнации», а «стабилен, хорошо работает и не требует напиллинга». Что касаемо strongSwan'а — да, попробовал, именно IKEv2, потому что agressive mode там забанен. С маком оно работать не захотело, много ошибок в логах и полное отсутствие понимания, что же именно происходит при ошибке -26432.
Насчет «agressive mode»: да, менее безопасно чем main mode, но сильно лучше pptp как-минимум использованием aes+sha.
Насчет настройки: 4 строчки текста, записанные где угодно или отправленные по sms/mail/im. Конечно это сложнее, чем установить CA, выставить ему доверие, установить клиентский сертификат и ключ и еще настроить само соединение, где полей поболее будет.
В не-идеальном — semanage permissive -a, sleep 86400, audit2allow -b -t software_t и курим что он делал и что из этого ему реально надо.
Зачем тот-же LAMP засовывать в контейнеры ( причем еще каждый компонент в свой ), когда можно просто настроить контексты за 10 минут и спать спокойно?
— Читшит по макросам refpolicy ( самому надо :) )
— Возможно — внедрение MLS/MCS, но это уже больше для банков и прочих военных.
— Эта тема никому не интересна
— Из материала все настолько ясно, что и добавить нечего.
Я планировал написать еще несколько статей на эту тему, поправьте меня, если я зря это делаю :)
— audit2allow не делает правила по переходам типов ( type_transition, type_member итд )
— audit2allow делает две сотни правил вида allow service_t long_file_type_t:lnk_file { getattr };
— если не включить типы в нужные атрибуты ( что audit2allow тоже не умеет делать ), то придется писать для каждого нового типа разрешения от всех других типов ( включая unconfined_t ), что еще в сотню раз увеличит размер модуля.
— в итоге понять, к чему именно приложение попросило доступ — сложнее, чем погрепать два часа по include и найти все необходимые макросы.
Сарказм на Хабре уместен ну почти всегда.
Смотрел. Но задача была не смотреть ошибки, а сделать себе вменяемый VPN на PHDays, чтоб не попасть в список тех, кого еще похекали :)
Сделал, посмотрел что солюшен умещается в 10 строчек баш-скрипта, выложил на хабр. Возможно это и не самое лучшее решение, но уж точно одно из самых простых и быстрых для настройки.
Насчет «agressive mode»: да, менее безопасно чем main mode, но сильно лучше pptp как-минимум использованием aes+sha.
Насчет настройки: 4 строчки текста, записанные где угодно или отправленные по sms/mail/im. Конечно это сложнее, чем установить CA, выставить ему доверие, установить клиентский сертификат и ключ и еще настроить само соединение, где полей поболее будет.
И да, в c/c++ сильно не хватает @suppresswarnings из java