PF не редиректит порт

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

FATMan
Сообщения: 166
ОС: OpenBSD4 Slacka11 MacOS X

PF не редиректит порт

Сообщение FATMan »

В сети есть web-сервер, к которому нужен доступ из интернета и сети. Настраиваю PF на редирект портов.
pf.conf:
ext_if="rl0"
int_if="vr0"


nat on $ext_if from $int_if:network to any -> ( $ext_if )
nat on ng0 from 192.168.2.0/24 to any -> ( ng0 )
nat on ng0 from 192.168.1.3 to any -> ( ng0 )

rdr on vr0 proto tcp from any to 192.168.1.1 port 80 -> 192.168.1.2 port 80
# 192.168.1.1 - IP сервера, на котором я настраиваю PF
pass quick all

В результате при обращении к 80-му порту происходит обращение к веб-серверу (видно из tcpdump), а ответ веб-сервера где-то теряется и не доходит...
Что посоветуете?
OS - FreeBSD 5.3
Спасибо сказали:
headcrab
Сообщения: 175
ОС: Windows 7

Re: PF не редиректит порт

Сообщение headcrab »

Вот мой pf.conf

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

ext_if = "tun0"
lan0_if = "xl0"
vpn_ifs = "{ tun1, tun2, tun3 }"

set skip on lo

scrub in

table <blacklist> persist file "/etc/blacklist"

nat on $ext_if inet from $lan0_if/27 to any -> ($ext_if:0)

nat on $ext_if inet from { (tun1)/27, (tun2)/27, (tun3)/27 } to any -> ($ext_if:0)

rdr on $lan0_if inet proto tcp from $lan0_if/27 to ! $lan0_if  port 80 -> \
    127.0.0.1 port 3128
rdr on $lan0_if inet proto tcp from 192.168.0.9/27 to 192.168.0.29 port 80 -> \
    127.0.0.1 port 3128

rdr pass on $ext_if proto tcp from any to any port { 6881:6889 } -> \
    192.168.0.9

rdr pass on $ext_if proto udp from any to any port { 6881:6889 } -> \
    192.168.0.9
block all
block return-rst in proto tcp
block in quick on $ext_if from <blacklist>
block quick inet6 all

pass out inet keep state

pass in on $vpn_ifs inet keep state
pass in on $lan0_if keep state
#pass in on $ext_if inet proto tcp to ($ext_if) port { www } flags S/SA keep state
pass in on $ext_if inet proto icmp to ($ext_if)


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

...
#протаскиваем порты со внешки 6881-6889 на машину 192.168.0.9 во внутренней сети
rdr pass on $ext_if proto udp from any to any port { 6881:6889 } -> \
    192.168.0.9
...

PF крутится под OpenBSD 4.2
Спасибо сказали:
FATMan
Сообщения: 166
ОС: OpenBSD4 Slacka11 MacOS X

Re: PF не редиректит порт

Сообщение FATMan »

Пробовал такое правило:
rdr pass on $int_if proto tcp from any to $int_if port 80 -> 192.168.1.2 port 80
Не помогло :(
Проблема та же...
Хотя такое вот работает нормально:
rdr pass on $int_if proto tcp from any to $int_if port 30 -> 127.0.0.1 port 22
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: PF не редиректит порт

Сообщение Shura »

А запросы откуда идут? Тоже из подсети 192.168.1.0?
Rock'n'roll мертв © БГ
Спасибо сказали:
FATMan
Сообщения: 166
ОС: OpenBSD4 Slacka11 MacOS X

Re: PF не редиректит порт

Сообщение FATMan »

Да, из этой подсети (идут от IP адреса, с которого пытаются обратится за редиректом). Но, если пытаться обратиться из интернета (ng0), то запросов нет вообще.
Спасибо сказали:
FATMan
Сообщения: 166
ОС: OpenBSD4 Slacka11 MacOS X

Re: PF не редиректит порт

Сообщение FATMan »

Прописал вот это:
rdrp="{80}" #ну и другие порты сюда же
rdr inet proto tcp from any to self port $rdrp -> 192.168.1.2
nat inet proto tcp from any to 192.168.1.2 port $rdrp -> $int_if
и заработало!
Спасибо сказали:
FATMan
Сообщения: 166
ОС: OpenBSD4 Slacka11 MacOS X

Re: PF не редиректит порт

Сообщение FATMan »

Странно только вот что: в венде, MacOS сайт редиректится нормально, а вот в Linux - нет. В Linux'ах (Debian и Slackware) браузеры не открывают сайт, а если и открывают, то с большой задержкой. При подключении через telnet к 192.168.1.1 и попытке выполнить GET /index.php ничего не выдаёт и через некоторое время разрывает соединение. Хотя с 192.168.1.2 работает нормально. :(
В чём может быть там проблема?
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: PF не редиректит порт

Сообщение Shura »

Честно говоря, странно, что вообще работает. Не должно. Редирект имеет смысл из одной подсети в другую, но не с машины на машину в одной подсети.
Rock'n'roll мертв © БГ
Спасибо сказали:
FATMan
Сообщения: 166
ОС: OpenBSD4 Slacka11 MacOS X

Re: PF не редиректит порт

Сообщение FATMan »

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