Страница 1 из 1

ipfw+mpd

Добавлено: 2008-06-29 1:00:21
CTOPMbI4
Собственно сабж.
Нужно пропустит gre на порт 1723 через вирт. интерфейс ng0 в фаере ipfw

rl0 - локалка до провайдера
ng0 - Вирт. интерфейс который поднимается через mpd. ИП выдается динамический с пула провайдера.

Вот набрасал конфиг, но не канает)
Может кто уже мутил с этим делом, как реализовать сие сабж?

Код: Выделить всё

cat /etc/test2.firewall
FwCMD="/sbin/ipfw"

LanOut="rl0"
LanVPN="ng0"

LanIn="nfe0"
IpIn="192.168.1.1"
NetIn="192.168.1.0/24"

#Разрешаем трафик внутри сети
${FwCMD} add allow ip from any to ${NetIn} in via ${LanIn}
${FwCMD} add allow ip from ${NetIn} to any out via ${LanIn}

${FwCMD} add allow ip from any to ${LanVPN} in via ${LanOut}
${FwCMD} add allow ip from ${LanVPN} in via ${LanOut}


#разрешаем по уже установленным соединениям
${FwCMD} add allow tcp from any to any established

#разрешаем доступ по ssh
${FwCMD} add allow tcp from any to ${IpIn} 22 via ${LanIn}
${FwCMD} add allow icmp from ${IpIn} to any frag
#${FwCMD} add deny icmp from any to ${IpIn} frag

#${FwCMD} add allow gre from any to any 1723 via ${LanVPN} 

Re: ipfw+mpd

Добавлено: 2008-06-29 1:03:57
paradox
1723 это tcp
а gre это уже типа тунеля
поэтому пропускаешь tcp 1723
а gre allow from any to any

Re: ipfw+mpd

Добавлено: 2008-06-29 1:11:01
CTOPMbI4
Добавил. Та же тема.

Код: Выделить всё

${FwCMD} add allow tcp from any to 1723 any
${FwCMD} add allow gre from any to any

Re: ipfw+mpd

Добавлено: 2008-06-29 1:36:24
CTOPMbI4
собственно дописал

Код: Выделить всё

${FwCMD} add allow tcp from any to 10.8.0.1 1723
${FwCMD} add allow gre from any to 10.8.0.1
${FwCMD} add allow gre from 10.8.0.1 to any
ВПН поднялся. но траффик не гуляет.
Вопрос как прописать чтобы траффик гулял через вирт. интерфейс ng0 если он на момент запуска фаера еще не поднялся?

Re: ipfw+mpd

Добавлено: 2008-06-29 8:13:53
dikens3
${FwCMD} add allow tcp from any to me 1723 keep-state
me - это все IP сервера.
${FwCMD} add allow gre from any to any
Ну нужно интерфейсов и т.п. пока не работает ничего.
Вопрос как прописать чтобы траффик гулял через вирт. интерфейс ng0 если он на момент запуска фаера еще не поднялся?
${FwCMD} add allow gre from any to any via "ng*"
ng* разрешить траф через ng0, ng1 и т.д.

Ещё можно добавлять правила в фаер при подъёме туннеля ng0, ng1 и т.п. с помощью скрипта up-script или что-то в этом духе.

Re: ipfw+mpd

Добавлено: 2008-06-29 10:18:12
paradox_

Код: Выделить всё

${FwCMD} add allow tcp from any to 1723 any
${FwCMD} add allow gre from any to any
а где разрешение траффика в тунелях?

Код: Выделить всё

pass all from any to пулл_тунеля
pass all from пулл_тунеля to any

Re: ipfw+mpd

Добавлено: 2008-06-29 10:21:31
paradox_

Код: Выделить всё

${FwCMD} add allow tcp from any to 1723 any
расшифруйте мне это правило

Re: ipfw+mpd

Добавлено: 2008-07-01 21:16:30
прохожий
CTOPMbI4 писал(а):собственно дописал

Код: Выделить всё

${FwCMD} add allow tcp from any to 10.8.0.1 1723
${FwCMD} add allow gre from any to 10.8.0.1
${FwCMD} add allow gre from 10.8.0.1 to any
ВПН поднялся. но траффик не гуляет.
Вопрос как прописать чтобы траффик гулял через вирт. интерфейс ng0 если он на момент запуска фаера еще не поднялся?
В "поднимающий" mpd4 скрипт up-script.sh в последней строчке добавь правило для ipfw что-то типа:
ipfw add 170 allow log all from any to any out via ng0

в "сбрасывающем" скрипте эту строчку удалишь:
ipfw delete 170

Там же (up-script.sh) можно и правила для nat'a добавить, например:
ipfw add 100 divert 8667 log ip from any to any via ng0
/sbin/natd -dynamic -s -m -u -p 8667 -P /var/run/natd2.pid -n ng0

Re: ipfw+mpd

Добавлено: 2008-07-04 0:23:55
Rita
Считаю слушанием мпд всех интерфейсов необязательным. Да и в конфиге мпд можно указать нужный айпи с которого будут подключаться.
Самый минимальный конфиг для файервола фрибсд 6.3:

Код: Выделить всё

#!/bin/sh
fw="/sbin/ipfw"
${fw} -f flush

${fw} table 1 flush
${fw} table 1 add 10.1.0.0/24
${fw} table 1 add 192.168.1.0/24
...

${fw} add allow all from 127.0.0.1/8 to me via lo0
${fw} add allow all from 192.168.0.5 to me 22 via vlan10

${fw} add allow gre from "table(1)" to me
${fw} add allow tcp from "table(1)" to me 1723

${fw} add deny all from any to me
${fw} add allow all from any to "table(1)"
${fw} add allow ip from 172.16.64.10:255.255.255.255 to any
Соответственоо шлюз прозрачен со всех сторон, а управление только для определенного айпи. А вообще, конечно законченый конфиг в разы больше.

Re: ipfw+mpd

Добавлено: 2008-07-04 9:36:17
прохожий
Rita писал(а):Считаю слушанием мпд всех интерфейсов необязательным. Да и в конфиге мпд можно указать нужный айпи с которого будут подключаться.
Самый минимальный конфиг для файервола фрибсд 6.3:

Код: Выделить всё

#!/bin/sh
fw="/sbin/ipfw"
${fw} -f flush

${fw} table 1 flush
${fw} table 1 add 10.1.0.0/24
${fw} table 1 add 192.168.1.0/24
...

${fw} add allow all from 127.0.0.1/8 to me via lo0
${fw} add allow all from 192.168.0.5 to me 22 via vlan10

${fw} add allow gre from "table(1)" to me
${fw} add allow tcp from "table(1)" to me 1723

${fw} add deny all from any to me
${fw} add allow all from any to "table(1)"
${fw} add allow ip from 172.16.64.10:255.255.255.255 to any
Соответственоо шлюз прозрачен со всех сторон, а управление только для определенного айпи. А вообще, конечно законченый конфиг в разы больше.
Сырой набор правил:
для каких интерфейсов правила ipfw?
где туннель?

Re: ipfw+mpd

Добавлено: 2008-07-04 10:29:13
Rita
1. Я же написала что это минимальный.
2. Интерфейсы можете подставлять любые, ну в частности те что используете.
Чтобы не было пустых вопросов:
${fw} table 1 flush
${fw} table 1 add 10.1.0.0/24
${fw} table 1 add 192.168.1.0/24
здесь добавляем в таблицу нужные сегменты
${fw} add allow all from 127.0.0.1/8 to me via lo0
разрешаем внутренний трафик
${fw} add allow tcp from 192.168.0.5 to me 22 via vlan10
разрешаем доступ для определенного адреса, на определенный порт/протокол, через определенный интерфейс.
${fw} add allow gre from "table(1)" to me
${fw} add allow tcp from "table(1)" to me 1723
разрешаем подключение на порт для впн и разрешаем туннель
${fw} add deny all from any to me
запрещаем доступ на маршрутизатор, точнее он становится невидимым для интернета
и всех кто не прописан в правилах, но трафик из инета в локалку свободно ходит
${fw} add allow all from any to "table(1)"
Разрешаем интернет трафик на локальные адреса
${fw} add allow ip from 172.16.64.10:255.255.255.255 to any
разрешаем с конкретных локальных адресов трафик в интернет, под конкретными здесь выступают адреса из пула впн сервера.
можно здесь прописать иначе:
${fw} add allow all from "table(1)" to any
т.е. кому как нравится

Re: ipfw+mpd

Добавлено: 2008-07-05 8:50:26
CTOPMbI4
Доберусь до сервера
буду тестить :roll:
Может интересные статейки набрасаете :good:

Re: ipfw+mpd

Добавлено: 2008-07-11 21:30:37
CTOPMbI4
чет я не вкуриваю :st:
что это
${fw} table 1 flush
${fw} table 1 add 10.1.0.0/24
${fw} table 1 add 192.168.1.0/24
и это
${fw} add allow ip from 172.16.64.10:255.255.255.255 to any

обьясните :unknown:

Re: ipfw+mpd

Добавлено: 2008-07-11 21:37:04
paradox_

Код: Выделить всё

таблицы

${fw} table 1 flush
${fw} table 1 add 10.1.0.0/24
${fw} table 1 add 192.168.1.0/24

 
${fw} add allow ip from 172.16.64.10:255.255.255.255 to any

слишком заумно )))
проще

${fw} add allow ip from 172.16.64.10 to any

Re: ipfw+mpd

Добавлено: 2008-07-11 23:00:18
Rita
CTOPMbI4 писал(а):чет я не вкуриваю :st:
Не то курите, курите маны и хэндбук они есть рулез. Так понятно? :oops:

Re: ipfw+mpd

Добавлено: 2008-08-05 10:15:27
CTOPMbI4
ханбук рулит спору нет и маны)
я так понял в table прописать диапазон ипов выдаваемый сервером провайдера?
так он там приличный в стиле 81.30.0.0/24 , 89.0.0.0/24, 77.0.0.0/24, 172.0.0.0/24
кроме того часто меняется.
а сам тэбл это в стиле процедуры в программировании)
типо ставим он проверяет что есть в ней)
я правильно понял?)

Код: Выделить всё

В "поднимающий" mpd4 скрипт up-script.sh в последней строчке добавь правило для ipfw что-то типа:
ipfw add 170 allow log all from any to any out via ng0
не совсем понятно mpd же стартует после запуска ipfw

Re: ipfw+mpd

Добавлено: 2008-08-05 10:24:19
paradox
))
почитал по ipfw
теперь сходи почитай по mpd
и вопросы совсем отпадут

Re: ipfw+mpd

Добавлено: 2008-08-06 7:02:44
прохожий
CTOPMbI4 писал(а):ханбук рулит спору нет и маны)
я так понял в table прописать диапазон ипов выдаваемый сервером провайдера?
...
я правильно понял?)

Код: Выделить всё

В "поднимающий" mpd4 скрипт up-script.sh в последней строчке добавь правило для ipfw что-то типа:
ipfw add 170 allow log all from any to any out via ng0
не совсем понятно mpd же стартует после запуска ipfw
"вкУрено" не тем местом:
iptable и ipfw это разные вещи, да и добавлять/удалять правила в ipfw можно "на лету" (без перезагрузки :) хоть рукам из консоли), НО

важный момент: надо добавить правила для ipfw на "ещё несуществующий" интерфейс, т.е. на ng0.
Правильно подмечено - первым стартует ipfw (ещё нет ng0), вторым пошёл mpd - инициализировался ng0 и добавляются для него правила скриптом .

Но можно и по-проще: в правилах имена интерфейсов не указывать (зачем тогда фаервол? :) )

Re: ipfw+mpd

Добавлено: 2008-08-06 14:46:38
schizoid
пусть мпд up-скриптом перечитает правила фаервола...

Re: ipfw+mpd

Добавлено: 2008-08-08 7:04:13
CTOPMbI4
Все решил уже все поднимается траффик гуляет.
большая благодарность что пинаете :"":
Но пока что на тачке с фряхой. В локалку еще не совался :roll:
Но мне кажется все через одно место поднято :-D
Да еще проблема ping через имя идет (ping ya.ru) а если по айпишке то выдает что запрещен. :ROFL:
Вот еще вопрос как бы врубить логирование а то дампом не успеваю просмотреть :smile:
ipfw 10 count log а далее что можно прикрутить?
Я так понял должно сыпаться в /var/log/security

Re: ipfw+mpd

Добавлено: 2008-08-08 7:47:00
прохожий
Дежурный минимум чтоб посмотреть и настроить правила ipfw:
ipfw zero
ipfw -a list
ipfw .... log logamount 12345 ..... (только не перебери с размером лога или удали после настройки )
tail -n 333 /var/log/security | grep "ля-ля" | grep -v "фи-фи"
tail -f /var/log/security (выход Ctrl+c)
В манах по-больше опций будет :)