Есть вот такой вот конфиг 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_ifset 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 allpass 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 statepass in inet proto icmp all icmp-type echoreq keep state
pass quick on $int_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для каждого редиректа ЖЕЛАТЕЛЬНО указывать отдельное правило...
Например:
rdr pass on { $ext_if, re0 } proto tcp from any to ВНЕШНИЙ ИП port 3389 -> 10.0.0.254 3389
Надеюсь разницу уловили?
>[оверквотинг удален]
>>
>>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
>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 обшается с внешним миром ?
>>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 так что через НАТ
>>>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 - один из
правила для пропуска чего-либо через ext_if где?
>правила для пропуска чего-либо через 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 и через сеть не открывает!!!
>[оверквотинг удален]
>
>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 и через сеть не открывает!!!А можно уточнить ОТКУДА, КУДА и ЧТО пробрасываете?
>[оверквотинг удален]
>>
>>тут же указано 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
>[оверквотинг удален]
>>>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 Notesrdr pass on { $ext_if, re0 } proto tcp from any to ВНЕШНИЙ ИП port 3389 -> 10.0.0.254 3389
пробовали?
>[оверквотинг удален]
>>>
>>>А можно уточнить ОТКУДА, КУДА и ЧТО пробрасываете?
>>
>>пробрасываю порты 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
>
>пробовали?да, всёравно не работает(((
кроме 1723 порта нужно еще пробросить gre протокол, который не дружит с pf. Корректно с ним работает только (по моему) только ipfw.
>кроме 1723 порта нужно еще пробросить gre протокол, который не дружит с
>pf. Корректно с ним работает только (по моему) только ipfw.пробросил :
rdr on $ext_if proto gre from any to $ext_if -> 10.0.0.254
НЕ РАБОТАЕТ ((((( уже не знаю где копать....
>[оверквотинг удален]
>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_ifset 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 allpass 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 statepass in on $ext_if inet proto tcp from any to $ext_if \
port { 22, 113 } flags S/SA keep statepass in inet proto icmp all icmp-type echoreq keep state
pass quick on $int_if
>[оверквотинг удален]
>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
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
>[оверквотинг удален]
>>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А можна поподробнее и весь конфиг ПЛЗ