LINUX.ORG.RU

Фаервол по приложениям для Ubuntu

 , , ,


0

1

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

На текущий момент реализовано таким образом:

При помощи TrueCrypt создан криптозащищённый диск. На этом диске находится портативная сборка VirtualBox и диски виртуальной машины. На виртуальную машину установлена Ubuntu и маршрутизаторы TOR и i2p. Сделать я хочу таким макаром, чтобы право прямого доступа во внешние сети (виртуалка получает сеть по боксовскому NAT) имели ТОЛЬКО эти маршрутизаторы, и никто иной - ни браузер, ни торрент, ни IM... Чтобы, если приложение корректно настроено на безопасный канал (TOR, i2p) - оно имело доступ, а если либо я допускаю косяк в настройке, либо в программе находится закладка - то есть она ломится напрямую - прямой доступ был бы запрещён.

Таких образом, я ищу фаервол под Linux, обязательно с открытым кодом (поскольку закладка в фаере это самая серьёзная угроза), и с возможностью разрешения/запрета программ по имени исполняемого файла. Чтобы можно было просто прописать правила наподобие:
deny *
allow /usr/bin/tor
allow /usr/bin/i2p
(сочинил это на ходу - сижу на работе, точных путей к прогам не помню, это просто образец желаемой логики работы фаера).

Хреново, что iptables по приложениям не фильтрует. Хоть и фильтрует по PID, но привязка к пидам это слишком уж жестокий костыль и геморрой... Хотя, возможно есть какая-нибудь прога, которая автоматизирует создание правил по пидам?

Mandatory Access Control - Selinux или Apparmor

Hoodoo ★★★★★
()
Ответ на: комментарий от no-dashi

Выходит, надо создать группу типа allownetwork, ей в iptables разрешить, а остальным забанить? Я правильно понял?

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

netfilter не умеет фильтровать по пидам. Правильнее всего MAC использовать для этих целей. Можно костылем с SUID/SGID и -m owner

vasily_pupkin ★★★★★
()

Рекомендую подсмотреть реализацию аналогичной задачи в Liberté Linux, там на iptables.

af5 ★★★★★
()
28 мая 2012 г.

Если тема ещё не протухла, то скажу только одно: iptables не умеет фильтровать по приложениям. Было время, существовал какой-то cmd-owner, но он фильтровал по argv[0], что не есть безопасно. Но задача решаема на уровне ядра. Только нужно дописать три вещи: модуль netfilter, привязку pid к сокету в системных вызовах и библиотеку для iptables. У меня есть готовые патчи, но мне это всё кажется грубым хаком (но вроде работает). Если же ты не доверяешь сторонним патчам, то вроде leopard flower делает тоже самое, но в юзерспейсе. Я правильно понял - нужна штука, которая на уровне системных вызовов будет решать - выйти приложению в сеть или нет? А ситуация вообще безвыходная здесь: с того времени, когда выкинули из ядра cmd-owner, этой проблемой никто не занимался, потому что Ъ-параноики фильтруют это во всяких статических и сложных для юзера selinux и apparmor. А зря.

anonymous
()
11 октября 2012 г.
Ответ на: комментарий от anonymous

Интересно!

Интересен подход к реализации application firewall, есть пара вопросов. Если можешь разъяснить подробнее, скинь, плз. свой контаткт (месенджер или почта) на dwolf[собачка]inbox[дот]ru???

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