LINUX.ORG.RU

application-aware firewall

 , ,


0

1

Я вот подумал. С использованием контейнерной виртуализации его легко зделать. (контейнеры — совсем не обязательно гигабайтные бандлы, несущие в себе всё необходимое! можно (нужно) собирать контейнеры on demand с помощью union-type fs).

Собираем ФС и запускаем контейнер, виртуализуя сеть: у контейнера будет только lo и виртуальный сетевой интерфейс.

Можно назначать этому интерфейсу произвольные правила фильтрации трафика и назначить nameserver, который также сможет фильтровать запросы.

В т. н. «режиме обучения» можно зделать так: nameserver по получению запроса будет стопить контейнер (передаю привет cgroups freezer-у) и, например, выплёвывать в dbus сообщение о запросе. Какое-нибудь мокренькое DE может слушать эти сообщения и показывать пользователю мокренькое окошко с запросом разрешить/запретить (разумеется, можно зделать консольный интерфейс для бородатых одминов в свитере, никакой дискриминации!). После чего давать команду разморозить контейнер.

Что делать не с DNS-запросами, а с другими сетевыми пакетами? Я точно не знаю. Возможно, есть лутшее решение, но пока у меня вырисовывается такой kostyl: подсовывать контейнеру TUN-девайс и сидеть слушать на нём, морозя контейнер и спрашивая пользователя о разрешении установить соединение с кем-то.

Разумеется, в обычном режиме никто ничего спрашивать не будет и TUN-девайса тоже не будет. По-умолчанию будут резаться почти все пакеты, кроме запросов к nameserver. nameserver будет фильтровать разрешённые домены и добавлять правила фаерволла, пропускающие трафик только к ним.

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

Спасибо за уточнение. Наверное я зря назвал это виртуализацией. Всё, что мне нужно от легковесных контейнеров — это, наверное, cgroups и network namespaces (я их и имел в виду под «виртуализуем сеть»).

PID namespaces и проч., конечно, не необходимы.

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

знаю

iptables и так умеет в правила с указанием PID или владельца процесса, какой дополнительный профит даст вот это всё перечисленное в стартовом посте?

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

Это, конечно, здорово, что есть.

SELinux фризит cgroup, если какой-то процесс из неё совершает запрещённые действия?

bipolar_disorder
() автор топика

поправил ошипки

легко зделать

Лихко зделать

Возможно, есть лутшее решение

Возможно, есть лудшее решение

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