URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 83215
[ Назад ]

Исходное сообщение
"Помогите с PF и FreeBSD"

Отправлено superles , 05-Дек-08 11:53 
Есть вот такой вот конфиг PF на FreeBSD 7.0 , по адрессу 10.0.0.254 стоит 2003 сервер с настроенным Lotus Notes(порт 1533), RDP(порт 3389) и VPN(1723) сервером. Так вот эти уважаемые ПОРТЫ не пробросились(((( Хотя вроде как 25 порт , который нужен для отправки и получения почты в лотусе пробросился т.к. почта приходит и уходит... В чём проблема? Оччень нужна помощь...

#макросы
ext_if="tun0"
int_if="fxp0"
#опции

set block-policy return
set loginterface $ext_if

set skip on lo

#нормализация траффика

scrub in

#NAT

nat on $ext_if from $int_if to any -> $ext_if

#проброс портов

rdr pass on { $ext_if, re0 } proto tcp from any to any port { 3389, 1533, 8888, 1352, 1723, 25, 80, 4090 } -> 10.0.0.254

#фильтрация
block in all

pass out keep state

antispoof quick for { lo, $int_if } inet

pass in on $ext_if inet proto tcp from any to $ext_if \
        port { 22, 113 } flags S/SA keep state

pass in inet proto icmp all icmp-type echoreq keep state

pass quick on $int_if


Содержание

Сообщения в этом обсуждении
"Помогите с PF и FreeBSD"
Отправлено niksonnnn , 05-Дек-08 12:15 
>
>#проброс портов
>
>rdr pass on { $ext_if, re0 } proto tcp from any to any port { 3389, 1533, 8888, 1352, 1723, 25, 80, 4090 } -> 10.0.0.254

для каждого редиректа ЖЕЛАТЕЛЬНО указывать отдельное правило...

Например:

rdr pass on { $ext_if, re0 } proto tcp from any to ВНЕШНИЙ ИП port  3389 -> 10.0.0.254 3389

Надеюсь разницу уловили?


"Помогите с PF и FreeBSD"
Отправлено superles , 05-Дек-08 12:31 
>[оверквотинг удален]
>>
>>rdr pass on { $ext_if, re0 } proto tcp from any to any port { 3389, 1533, 8888, 1352, 1723, 25, 80, 4090 } -> 10.0.0.254
>
>для каждого редиректа ЖЕЛАТЕЛЬНО указывать отдельное правило...
>
>Например:
>
>rdr pass on { $ext_if, re0 } proto tcp from any to ВНЕШНИЙ ИП port  3389 -> 10.0.0.254 3389
>
>Надеюсь разницу уловили?

Думаю проблема не в этом т.к. мои правила разворачиваются вот так:

freebsd# pfctl -sn
nat on tun0 inet from 10.0.0.253 to any -> Внешний АЙПИ
rdr pass on tun0 inet proto gre all -> 10.0.0.254
rdr pass on re0 inet proto gre all -> 10.0.0.254
rdr pass on tun0 inet proto tcp from any to any port = rdp -> 10.0.0.254
rdr pass on tun0 inet proto tcp from any to any port = virtual-places -> 10.0.0.254
rdr pass on tun0 inet proto tcp from any to any port = 8888 -> 10.0.0.254
rdr pass on tun0 inet proto tcp from any to any port = lotusnote -> 10.0.0.254
rdr pass on tun0 inet proto tcp from any to any port = pptp -> 10.0.0.254
rdr pass on tun0 inet proto tcp from any to any port = smtp -> 10.0.0.254
rdr pass on tun0 inet proto tcp from any to any port = http -> 10.0.0.254
rdr pass on tun0 inet proto tcp from any to any port = 4090 -> 10.0.0.254
rdr pass on re0 inet proto tcp from any to any port = rdp -> 10.0.0.254
rdr pass on re0 inet proto tcp from any to any port = virtual-places -> 10.0.0.254
rdr pass on re0 inet proto tcp from any to any port = 8888 -> 10.0.0.254
rdr pass on re0 inet proto tcp from any to any port = lotusnote -> 10.0.0.254
rdr pass on re0 inet proto tcp from any to any port = pptp -> 10.0.0.254
rdr pass on re0 inet proto tcp from any to any port = smtp -> 10.0.0.254
rdr pass on re0 inet proto tcp from any to any port = http -> 10.0.0.254
rdr pass on re0 inet proto tcp from any to any port = 4090 -> 10.0.0.254



"Помогите с PF и FreeBSD"
Отправлено BulgakowI , 05-Дек-08 15:38 
>freebsd# pfctl -sn
>nat on tun0 inet from 10.0.0.253 to any -> Внешний АЙПИ
>rdr pass on tun0 inet proto gre all -> 10.0.0.254

почему nat разрешён только для 10.0.0.253 ?
и через что 10.0.0.254 обшается с внешним миром ?



"Помогите с PF и FreeBSD"
Отправлено superles , 05-Дек-08 16:14 
>>freebsd# pfctl -sn
>>nat on tun0 inet from 10.0.0.253 to any -> Внешний АЙПИ
>>rdr pass on tun0 inet proto gre all -> 10.0.0.254
>
>почему nat разрешён только для 10.0.0.253 ?
>и через что 10.0.0.254 обшается с внешним миром ?

на сервере 10.0.0.254 стоит шлюзом 10.0.0.253 так что через НАТ


"Помогите с PF и FreeBSD"
Отправлено BulgakowI , 05-Дек-08 16:29 
>>>freebsd# pfctl -sn
>>>nat on tun0 inet from 10.0.0.253 to any -> Внешний АЙПИ
>>>rdr pass on tun0 inet proto gre all -> 10.0.0.254
>>
>>почему nat разрешён только для 10.0.0.253 ?
>>и через что 10.0.0.254 обшается с внешним миром ?
>
>на сервере 10.0.0.254 стоит шлюзом 10.0.0.253 так что через НАТ

from 10.0.0.253 to any
означает
пакет отправляемый с адреса .253 куда угодно
пакеты с сервера .254 идут мимо этого правила

у вас классическая DMZ - куча примеров
http://www.openbsd.org/faq/pf/example1.html - один из


"Помогите с PF и FreeBSD"
Отправлено A Clockwork Orange , 05-Дек-08 12:18 
правила для пропуска чего-либо через ext_if где?

"Помогите с PF и FreeBSD"
Отправлено superles , 05-Дек-08 12:28 
>правила для пропуска чего-либо через ext_if где?

rdr pass on { $ext_if, re0 } proto tcp from any to any port { 3389, 1533, 8888, 1352, 1723, 25, 80, 4090 } -> 10.0.0.254

тут же указано PASS

+ добавил строку
rdr pass on { $ext_if, re0 } proto gre from any to any -> 10.0.0.254

и заработал ВПН, но подсоединяясь к винде, он ВСЁРАВНО не хочет присоединяться по RDP и через сеть не открывает!!!


"Помогите с PF и FreeBSD"
Отправлено niksonnnn , 05-Дек-08 12:49 
>[оверквотинг удален]
>
>rdr pass on { $ext_if, re0 } proto tcp from any to any port { 3389, 1533, 8888, 1352, 1723, 25, 80, 4090 } -> 10.0.0.254
>
>тут же указано PASS
>
>+ добавил строку
>rdr pass on { $ext_if, re0 } proto gre from any to any -> 10.0.0.254
>
>и заработал ВПН, но подсоединяясь к винде, он ВСЁРАВНО не хочет присоединяться
>по RDP и через сеть не открывает!!!

А можно уточнить ОТКУДА, КУДА и ЧТО пробрасываете?


"Помогите с PF и FreeBSD"
Отправлено superles , 05-Дек-08 14:08 
>[оверквотинг удален]
>>
>>тут же указано PASS
>>
>>+ добавил строку
>>rdr pass on { $ext_if, re0 } proto gre from any to any -> 10.0.0.254
>>
>>и заработал ВПН, но подсоединяясь к винде, он ВСЁРАВНО не хочет присоединяться
>>по RDP и через сеть не открывает!!!
>
>А можно уточнить ОТКУДА, КУДА и ЧТО пробрасываете?

пробрасываю порты 3389, 1533, 8888, 1352, 1723, 25, 80, 4090 с ФриБСД которая является шлюзом, на сервер 2003 с VPN и RDP и Lotes Notes


"Помогите с PF и FreeBSD"
Отправлено niksonnnn , 05-Дек-08 14:14 
>[оверквотинг удален]
>>>rdr pass on { $ext_if, re0 } proto gre from any to any -> 10.0.0.254
>>>
>>>и заработал ВПН, но подсоединяясь к винде, он ВСЁРАВНО не хочет присоединяться
>>>по RDP и через сеть не открывает!!!
>>
>>А можно уточнить ОТКУДА, КУДА и ЧТО пробрасываете?
>
>пробрасываю порты 3389, 1533, 8888, 1352, 1723, 25, 80, 4090 с ФриБСД
>которая является шлюзом, на сервер 2003 с VPN и RDP и
>Lotes Notes

rdr pass on { $ext_if, re0 } proto tcp from any to ВНЕШНИЙ ИП port  3389 -> 10.0.0.254 3389

пробовали?


"Помогите с PF и FreeBSD"
Отправлено superles , 05-Дек-08 14:24 
>[оверквотинг удален]
>>>
>>>А можно уточнить ОТКУДА, КУДА и ЧТО пробрасываете?
>>
>>пробрасываю порты 3389, 1533, 8888, 1352, 1723, 25, 80, 4090 с ФриБСД
>>которая является шлюзом, на сервер 2003 с VPN и RDP и
>>Lotes Notes
>
>rdr pass on { $ext_if, re0 } proto tcp from any to ВНЕШНИЙ ИП port  3389 -> 10.0.0.254 3389
>
>пробовали?

да, всёравно не работает(((


"Помогите с PF и FreeBSD"
Отправлено Князь , 05-Дек-08 15:07 
кроме 1723 порта нужно еще пробросить gre протокол, который не дружит с pf. Корректно с ним работает только (по моему) только ipfw.

"Помогите с PF и FreeBSD"
Отправлено superles , 05-Дек-08 15:16 
>кроме 1723 порта нужно еще пробросить gre протокол, который не дружит с
>pf. Корректно с ним работает только (по моему) только ipfw.

пробросил :

rdr on $ext_if proto gre from any to $ext_if -> 10.0.0.254

НЕ РАБОТАЕТ ((((( уже не знаю где копать....


"Помогите с PF и FreeBSD"
Отправлено superles , 05-Дек-08 15:18 
>[оверквотинг удален]
>antispoof quick for { lo, $int_if } inet
>
>pass in on $ext_if inet proto tcp from any to $ext_if \
>
>        port { 22, 113
>} flags S/SA keep state
>
>pass in inet proto icmp all icmp-type echoreq keep state
>
>pass quick on $int_if

Выложу заново конфиг:

#макросы
ext_if="tun0"
int_if="fxp0"
#опции

set block-policy return
set loginterface $ext_if

set skip on lo

#нормализация траффика

scrub in

#NAT

nat on $ext_if from $int_if to any -> $ext_if

#проброс портов
rdr on $ext_if proto gre from any to $ext_if -> 10.0.0.254
rdr on $ext_if proto tcp from any to $ext_if port { 3389, 1494, 1533, 8888, 1352, 1723, 25, 80, 4090 } -> 10.0.0.254

#фильтрация
block in all

pass out keep state

antispoof quick for { lo, $int_if } inet

pass in on $ext_if inet proto tcp from any to $ext_if \
        port { 3389, 1494, 1533, 8888, 1352, 1723, 25, 80, 4090 } keep state

pass in on $ext_if inet proto tcp from any to $ext_if \
        port { 22, 113 } flags S/SA keep state

pass in inet proto icmp all icmp-type echoreq keep state

pass quick on $int_if


"Помогите с PF и FreeBSD"
Отправлено shutdown now , 05-Дек-08 15:24 
>[оверквотинг удален]
>1533, 8888, 1352, 1723, 25, 80, 4090 } keep state
>
>pass in on $ext_if inet proto tcp from any to $ext_if \
>
>        port { 22, 113
>} flags S/SA keep state
>
>pass in inet proto icmp all icmp-type echoreq keep state
>
>pass quick on $int_if

я вот так делаю и работает:

rdr      on $ext_if inet proto tcp from any to ($ext_if) port 65525:65529 tag EXT_NET -> 192.168.12.2 port 65525:65529
#
#...
#
pass out on { ng0 ng1 ng2 ng3 ng4 ng5 } inet all keep state tagged EXT_NET


"Помогите с PF и FreeBSD"
Отправлено djaarf , 05-Дек-08 15:31 
gre-траффик пробрасывтаь не надо, надо разрешить gre-траффик между pptp-сервером и pptp-клиентом.
>[оверквотинг удален]
>>pass quick on $int_if
>
>я вот так делаю и работает:
>
>rdr      on $ext_if inet proto tcp from any to ($ext_if) port 65525:65529 tag EXT_NET -> 192.168.12.2 port 65525:65529
>#
>#...
>#
>pass out on { ng0 ng1 ng2 ng3 ng4 ng5 } inet
>all keep state tagged EXT_NET


"Помогите с PF и FreeBSD"
Отправлено superles , 05-Дек-08 16:05 
>[оверквотинг удален]
>>pass quick on $int_if
>
>я вот так делаю и работает:
>
>rdr      on $ext_if inet proto tcp from any to ($ext_if) port 65525:65529 tag EXT_NET -> 192.168.12.2 port 65525:65529
>#
>#...
>#
>pass out on { ng0 ng1 ng2 ng3 ng4 ng5 } inet
>all keep state tagged EXT_NET

А можна поподробнее и весь конфиг ПЛЗ