LINUX.ORG.RU

Визуальный фаервол


0

3

Есть ли под линь визуальные фаерволы, реагирующие на события (попытку программы установить соединение с удаленным хостом, dns-запросы) и производящие последующее обучение, основываясь на ответах? Проект firestarter этого не умеет, судя по всему. Возмонжно, надо использовать grsecurity с каким-то GUI или есть иные решения? Просто я смотрю, под оффтопик и яблоко таких решений полно (в офтопике даже всторонное есть, правда очень кривое и урезанное), agnitum outpost firewall - как яркий пример концепта приложения, которое мне нужно.

Ещё раз: надо, чтобы при попытке доступа процесса к сети встплывало сообщение в иксах, спрашивающее, что надо делать.

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

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

есть проблема - конфликт с другим модулем. могу пропатчить apparmor и selinux, чтоб не заменять их, но это займёт дополнительное время. можно встать вслед за ним, но я не уверен, что ведро поддерживает несколько модулей безопасности.

ckotinko ☆☆☆
()
Ответ на: комментарий от sdio

>Можно use case? Или я угадаю: у тебя пиратский софт, который ты не хочешь пускать в интернет.

1. Если так, то просто, если ты не можешь от него отказаться, запускай его под отдельным юзером и для этого юзера закрой доступ в интернет при помощи iptables.

2. Если нет, то таки давай use case, т.к. у меня никогда не возникало такой потребности и мне просто интересно.

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

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

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

>можно ухватить это дело через ядерный модуль, который проводит политику безопасности. если надо спросить, тут же SIGSTOP приложению и окохо пользователю. но есть ньюанс-если аппликуха поставит таймаут, то опаньки.

есть проблема - конфликт с другим модулем. могу пропатчить apparmor и selinux, чтоб не заменять их, но это займёт дополнительное время. можно встать вслед за ним, но я не уверен, что ведро поддерживает несколько модулей безопасности.

кодер? ядро может хоть 200 модулей безопасности поддержать, если ты костыли напишешь.

читай то, что я ранее писал, почему тебя это не устраивает? ещё более тонкий контроль нужен?

http://blogs.warwick.ac.uk/bweber/entry/interactive_firewalls/ SuSEfirewall2, firewall helper, yast2

http://www.giacomos.it/iqfire/index.html ( http://sourceforge.net/projects/ipfire-wall/ http://www.youtube.com/watch?v=5C9N-_IDmac ) IqFire-wall (ipfire модуль ядра)

http://tuxguardian.sourceforge.net/ tuxguardian

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

>>Ещё раз: надо, чтобы при попытке доступа процесса к сети встплывало сообщение в иксах, спрашивающее, что надо делать.

У iptables есть target QUEUE, есть графические приложения (тот же firestarter), которые следят за такими событиями и выполняют действия (всплывающее окно с запросом).

Но если ты хочешь «как в винде» - имхо, не получится.

Можно использовать LD_PRELOAD: http://www.linux.org.ru/jump-message.jsp?msgid=3266778&cid=3266795

Можно использовать mod owner и ограничивать доступ исходя из uid/gid

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

про LD_PRELOAD концепт интересный, но практического решения на данный момент нету.

ktulhu666 ☆☆☆
() автор топика

Не бейте сильно тапками, есть такое решение (теоретически рабочее):

linux-комп -> комп с вендой -> openbsd (или роутер) -> wan

через LD_PRELOAD делаем соксификацию (либо через iptables делаем прозрачную соксификацию). далее передаем виндовому компу (используя bash, netcat и cygwin) название процесса. виндовый комп смотрит, какие порты ещё свободны (можно тупо перемененной в bash это контролировать, т.к. не думаю, что у нас примерно 65000 реально израсходуются, увеличивая её при каждом запросе на 1. либо делать массив, каждый раз прогонять по нему цикл, в поиске свободных портов). далее скрипт копирует 3proxy.exe в имя_процесса.exe, запускает с нужным компом, передаёт номер порта через тотже netcat линуксовому компу.

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

2. на виндовом компе фаервол должен ВСЕГДА разрешатьь ЛЮБЫЕ коннекты со стороны линуксового компа.

3. роутер и винду можно запускать в виртуалках.

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

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

>ckotinko

ты LD_PRELOAD-библиотеки можешь писать? вот это реально пригодилось бы

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

>Технически реализовать это легко, но на данном этапе это сложно организовать, т.к. нужен удобный механизм перевода приложений из одной категории в другую на уровне DE или дистрибутива.

пффф. делаешь скрипт-обёртку, далее прафишь все ярлычки на «script.sh прога», есть ещё более крутое решение - альясы bash.

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

>ckotinko

тебе, кстати, правильно указали ранее, что нужно. (Stardict подключается на lingvo.ru:80). Это проще будет реализовать через LD_PRELOAD, тогдо можно без ядерного кодерства обойтись. ( типа этого, только полноценно: http://www.linux.org.ru/jump-message.jsp?msgid=3266778&cid=3266795 )

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

>через LD_PRELOAD делаем соксификацию

перекрывать нужно connect и смотреть serv_addr - там вся нужная информация есть. Смотрим, в таблицу с ACL (приложение-сервер-порт), если разрешено - пропускаем, если нет - запрашиваем у администратора что делать. Опять же, если подготовить нормальную таблицу с разрешенными ACL - можно попробовать прелоад сделать глобально (но нужно потестировать - как будет с производительностью)

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

Утопический вариант.

через LD_PRELOAD делаем соксификацию (либо через iptables делаем прозрачную соксификацию). далее передаем виндовому компу (используя bash, netcat и cygwin) название процесса.


Интересный вариант. За сколько месяцев ты планируешь его реализовать? Изобретёшь свой протокол и напишешь его реализацию, потом будешь слёзно просить разработчиков файрволов ключить его раализацию в их продукты? Потрать лучше время с большей пользой - создай iptables модуль, который фильтрует по pid (точне, восстанови его, раньше такой был). А отсюда уже недалеко до визуального файрвола - ещё один модуль, который при создании процесса подгружает правила в iptables.



Более жизненный вариант: пишем разработчикам виндовых файрволов: «у нас есть 100500 хомячков-параноиков, которым нужен контроль за сетевой деятельностью отдельных приложений в linux. Портируйте свой продукт, половина из них сразу купит»

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

Потом обновляешься/меняешь DE и начинаешь все настройки сначала.

пффф ...

Ой вэй, не надо мне рассказывать как это делать технически, а уже сказал что это просто. Сложности организационного порядка.

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

>ядро может хоть 200 модулей безопасности поддержать не может. в каждой task_struct есть только одно поле под приватные данные плагина.

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

>ckotinko

мы считаем, что в данном случае такой угрозы нет.

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

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

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

>Более жизненный вариант: пишем разработчикам виндовых файрволов: «у нас есть 100500 хомячков-параноиков, которым нужен контроль за сетевой деятельностью отдельных приложений в linux. Портируйте свой продукт, половина из них сразу купит»

интересно, что на это скажут разработчики :) кстати, у RHEL, вроде, есть такая платная фигня, но инфы о ней почти нету

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

Где в протоколе SOCKS передача информации о приложении?


Ты уже передумал и не хочешь слать эту информацию? Тогда, ты не поверишь, linux гораздо лучше будет фильтровать трафик ;)

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

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

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

есть еще одна проблема: теоретически пакет может проходить через iptables в тот момент, когда pid уже занят другим процессом(старый сдох). поэтому хватать надо сразу после syscallа, чтоб он физически сдохнуть не мог

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

>pid уже занят другим процессом

а разве pid не уникальны?

Опять же, с чего ему дохнуть, в процессе всей этой байды он просто спать будет

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

кроме того, я не могу через iptables отследить момент сдыхания процесса, а без этого нельзя без бубна реализовать отслеживание отдельных процессов. wait ждет только дочернего процесса

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

ok, но даже с sendto процесс будет какое-то время находиться в спящем состоянии. Вообще, тут не о чем говорить - нужно экспериментировать

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

нельзя полагаться на то, что процесс будет спать.

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

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

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

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

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

ну как там дела с разработкой морды? :3

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