Господа!
Подскажите с таким вопросом, как можно в freebsd настроить firewall на конкретное приложение? Ну подобно виндовым kerio или outpost. Чтобы можно было каким то приложениям вообще запретить сетевую активность, а каким то например разрешить. IPFW наксколько я помню работает только по протоколам и портам!
Подскажите!
Вы читали man ipfw?
Там в разделе RULE OPTIONS есть описание параметра uid - указание пользователя, которому принадлежит этот трафик.Вот пример, как это делается у меня:
${fwcmd} add queue 1 tcp from not ${onet} to ${oip} in uid socks
${fwcmd} add queue 11 tcp from ${oip} to not ${onet} out uid socksМожно сделать любое действие с этим параметром uid.
У меня в данном случае SOCKS-трафик попадает в самую непривилегированную очередь.
Для этого пришлось немного изменить файл /usr/local/etc/rc.d/socks5.sh, чтобы SOCKS-сервер запускался от пользователся socks. Изменить вот что:
start)
[ -x ${PREFIX}/bin/socks5 -a -f ${PREFIX}/etc/socks5.conf ] && exec su -fm socks -c ${PREFIX}/bin/socks5 && echo -n ' socks5'
;;
(взял из sh-файла какой-то другой программы, не помню точно :-) )
>Вы читали man ipfw?
>Там в разделе RULE OPTIONS есть описание параметра uid - указание пользователя,
>которому принадлежит этот трафик.
>
>Вот пример, как это делается у меня:
>
>${fwcmd} add queue 1 tcp from not ${onet} to ${oip} in uid
>socks
>${fwcmd} add queue 11 tcp from ${oip} to not ${onet} out uid
>socks
>
>Можно сделать любое действие с этим параметром uid.
>У меня в данном случае SOCKS-трафик попадает в самую непривилегированную очередь.
>Для этого пришлось немного изменить файл /usr/local/etc/rc.d/socks5.sh, чтобы SOCKS-сервер запускался от пользователся
>socks. Изменить вот что:
>start)
> [ -x ${PREFIX}/bin/socks5 -a
>-f ${PREFIX}/etc/socks5.conf ] && exec su -fm socks -c ${PREFIX}/bin/socks5 &&
>echo -n ' socks5'
> ;;
>(взял из sh-файла какой-то другой программы, не помню точно :-) )
Хм, но ведь это правило заруливает определенный вид траффика по ПРОТОКОЛУ и от определенного юзера, а мой вопрос такой: КАК МОЖНО НЕЗАВИСИМО ОТ ТОГО КАКОЙ ПОЛЬЗОВАТЕЛЬ СЕЙЧАС ЗАЛОГОНЕН НА МАШИНЕ УПРАВЛЯТЬ ДОСТУП В ИНЕТ НЕ ПО ПРОТОКОЛАМ А ПО ПРИЛОЖЕНИЯМ. пример: броузер работает на 80 порту и обновление какой-нить проги тоже работает на 80 порту, и надо зарубить обновление, но оставить броузер
>НЕЗАВИСИМО ОТ ТОГО КАКОЙ ПОЛЬЗОВАТЕЛЬ СЕЙЧАС ЗАЛОГОНЕН НА МАШИНЕ УПРАВЛЯТЬ ДОСТУП
>В ИНЕТ НЕ ПО ПРОТОКОЛАМ А ПО ПРИЛОЖЕНИЯМ. пример: броузер работает
>на 80 порту и обновление какой-нить проги тоже работает на 80
>порту, и надо зарубить обновление, но оставить броузер
Хм... Возможно, мы не до конца поняли друг друга =)
Я решил, что вы настраиваете ipfw на сервере, и хотите разные сервисы обрабатывать по-разному. А т.к. обычно каждый из них работает со своим эффективным uid, то можно таким образом их регулировать.Вы имеете в виду, что у вас есть рабочая станция, которая работает через прокси или NAT? И на ней то по инету шарят, то обновляют какие-то программы (не Windows случайно? :) ). И вы хотите первый трафик разрешить, а второй запретить.
Если это так, то есть несколько способов:
- запретить явно доступ к сайтам обновлений (если они постоянные, winupdate, к примеру) средствами ipfw
- настроить прозрачный прокси (предположительно squid) и по mime определять, какой трафик пускать, а какой - нет; либо прямо в прокси запрещать доступ к сайтам обновленийА вообще, побольше деталей и подробностей никак не помешает =)
Хм... Ну как вам еще объяснить? Вы хоть раз Outpost или Kerio или Sygate видели?
Мне нужно чтобы я не замарачиваясь просто говорил - "вот это приложение умеет право ходить в сеть по такому то протоколу", "вот это прриложение в сеть может ходить только на такой то адрес, а протокол пофигу", "вот это приложение может куда угодно и когда угодно", "вот это приложени куда угодно но только на 25 порт например", остальные приложения вообще никуда не ходят...
так нажеюсь понятнее? =)
>Хм... Ну как вам еще объяснить? Вы хоть раз Outpost или Kerio
>или Sygate видели?
>Мне нужно чтобы я не замарачиваясь просто говорил - "вот это
>приложение умеет право ходить в сеть по такому то протоколу", "вот
>это прриложение в сеть может ходить только на такой то адрес,
>а протокол пофигу", "вот это приложение может куда угодно и когда
>угодно", "вот это приложени куда угодно но только на 25 порт
>например", остальные приложения вообще никуда не ходят...
>так нажеюсь понятнее? =)ipfw такое не может, за pf не скажу.
Можно через tcp-wrappers.
http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/tcpwr...
Ну так понятнее :)
Вот я так и понял с самого начала; про это я и написал.Просто на сервере, допустим, можно такое разграничение сделать так, как я писал: например, exim работает с euid exim (или mailnull), httpd - как www или nobody, ...
Вот эти значения и подставляешь в параметр uid в правилах ipfw.Если я опять не так понял :-)), и вы пытаетесь не на сервере, а на рабочей станции просто настроить файрволл и указать какие приложения куда могут ходить в сеть... тогда каждое из них запускать под собственным uid (если использовать ipfw).
Мне было бы интересно узнать другие способы как сделать это =)
Просто, скорее всего, надо будет поставить какой-нибудь сторонний файрволл, у которого побольше возможностей.А как такое с помощью tcp-wrappers сделать?..
Знаешь почему Outpost так умеет? потому что ты его ставишь на своем компе-том-же где и експлорер(например) запускаешь, поетому есть возможность зарубить трафик от конкретного приложения. А если файрвол на шлюзе (другой тачке), то как он узнает точно, от какого приложения пакет? А?
>А если файрвол на шлюзе (другой тачке), то как
>он узнает точно, от какого приложения пакет? А?Если ты про такие файерволы не знаешь, то это не значит, что их нет :)
Погугли на предмет "application proxy" и "stateful firewall"
>>А если файрвол на шлюзе (другой тачке), то как
>>он узнает точно, от какого приложения пакет? А?
>
>Если ты про такие файерволы не знаешь, то это не значит, что
>их нет :)
>
>Погугли на предмет "application proxy" и "stateful firewall"
Cпасибо всем!станция не сервер, а домашняя, все приложения локальные
Есть такая система - grsecurity. Это патчи для ядра. После установки появляется возможность явно указать, например, какому приложению можно отркрывать сокет, а какому - нет. Можно составлять группы приложений. Можно, вообще, рзрешать/запрещать запускать приложения группам юзеров. И т.д. В grsecurity много чего еще интересного есть.Реализуется все это через дополнительные флаги артибутов файловой системы и к сетевому трафику, вообще, не имеет оношения. Естественно, этими флагами можно управлять. Например, поставить дефолтовую политику - всем исполняемым файлам запретить открывать сокет. А потом, явно выставить разрешающий флаг только для избранных приложений.
Короче - есть в Линуксе аналог Outpost или Kerio (правда - несравнимо круче!)
>>А если файрвол на шлюзе (другой тачке), то как
>>он узнает точно, от какого приложения пакет? А?
>
>Если ты про такие файерволы не знаешь, то это не значит, что
>их нет :)
>
>Погугли на предмет "application proxy" и "stateful firewall"
Хм... А как applicaton-прокси узнает от какого пользовательского приложения идёт трафик? =)
>>>А если файрвол на шлюзе (другой тачке), то как
>>>он узнает точно, от какого приложения пакет? А?
>>
>>Если ты про такие файерволы не знаешь, то это не значит, что
>>их нет :)
>>
>>Погугли на предмет "application proxy" и "stateful firewall"
>
>
>Хм... А как applicaton-прокси узнает от какого пользовательского приложения идёт трафик? =)
>
см. ответ 10 - там нет нужды узнавать, приложение не сможет открыть сокет, если ему не разрешить этого... только вот зачем это на линуксе? Вопрос в сторону - а есть ли в винде файрвол, кроме неразвивающегося atGuard, в котором можно было бы нормально - как в iptables - задавать правила фильтрации пакетов?
>>Хм... А как applicaton-прокси узнает от какого пользовательского приложения идёт трафик? =)
>>
>см. ответ 10 - там нет нужды узнавать, приложение не сможет открыть
>сокет, если ему не разрешить этого...Нет, application proxy - это совсем не то, о чём вы говорите.
>
>Нет, application proxy - это совсем не то, о чём вы говорите.
>Да, это не то... ибо по принципу application proxy стоит на сервере. Нужный ответ - это про патч ядра. Но - на мой вопрос о файрволе в винде кто-то ответ знает? Ж8-)
ибо иногда приходится ставить и виндовые машины, а с этими обучающимися - одна мука
>Но - на мой
>вопрос о файрволе в винде кто-то ответ знает? Ж8-)
>ибо иногда приходится ставить и виндовые машины, а с этими обучающимися -
>одна мукаОпиши подробнее что тебе надо.
Возможно, всё можно сделать с помощью IPSec и доменных политик.
Скажу сразу, если что, сами протоколы ESP и AH (из IPSec) использовать необязательно, зато можно гибко фильтровать любой трафик даже на уровне IP.
>Опиши подробнее что тебе надо.
>Возможно, всё можно сделать с помощью IPSec и доменных политик.
>Скажу сразу, если что, сами протоколы ESP и AH (из IPSec) использовать
>необязательно, зато можно гибко фильтровать любой трафик даже на уровне IP.
>
IPSec и возможности фильтрации в NT/2k/XP я знаю... Не хватает гибкости и удобства, которые имеются в iptables, управления соединениями класса established, related, фильтрация по протоколам и пр. Единственное, где есть такое - это atGuard, но он уже черти сколько не развивается
>>>>А если файрвол на шлюзе (другой тачке), то как
>>>>он узнает точно, от какого приложения пакет? А?
>>>
>>>Если ты про такие файерволы не знаешь, то это не значит, что
>>>их нет :)
>>>
>>>Погугли на предмет "application proxy" и "stateful firewall"
>>
>>
>>Хм... А как applicaton-прокси узнает от какого пользовательского приложения идёт трафик? =)
>>
>см. ответ 10 - там нет нужды узнавать, приложение не сможет открыть
>сокет, если ему не разрешить этого... только вот зачем это на
>линуксе? Вопрос в сторону - а есть ли в винде файрвол,
>кроме неразвивающегося atGuard, в котором можно было бы нормально - как
>в iptables - задавать правила фильтрации пакетов?
Просто информация: AtGuard давно уже выкупили Semantec-и, видать перелопатили его и обозвали Norton Firewall
>Просто информация: AtGuard давно уже выкупили Semantec-и, видать перелопатили его и обозвали
>Norton FirewallСпасибо, посмотрю... вот портировал бы кто-то iptables под форточки Ж8-)