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

Редирект трафика from LAN to LAN с помощью PF

Добавлено: 2012-08-10 17:43:04
ail-man
Хелло Алл!!
Есть интересная задачка!
Как сделать перенаправление трафика из локалки, адресованного на внешний интерфейс, обратно в локалку на веб-сервер, работающий на порту 3000/tcp (Mdaemon)?
Вот конфиг:

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

table <firewall> const { self }
....
#################
## Translation ##
#################

nat on $ext_if from $lan_net to any -> ($ext_if)
rdr on $ext_if proto tcp from any to <firewall> port 80 -> 192.168.254.15 port 3000
rdr on $int_if proto tcp from $lan_net to <firewall> port 80 -> 192.168.254.15 port 3000

###############
## Filtering ##
###############

block in on $ext_ifs all
antispoof quick for $int_if inet

# Rules for lan-interface
pass in quick on $int_if all
pass out quick on $int_if all

# Rules for out-traffic
pass out quick on $ext_if proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if proto { udp, icmp } from any to any keep state

# Rules to INBOUND connections
pass in quick on $ext_if proto tcp from $routers to any port 3000
Эти правила редиректа позволяют перенаправить трафик только из внешки на внутренний сервер. А из локалки на внутренний сервер аналогичное правило rdr не работает :-o
RINETD очень неплохо справляется с этой задачей, но хочется, чтобы все было в одном флаконе PF.
Это нужно для того, чтобы пользователи, указывая в браузере только одно DNS-имя сервера, могли попасть на него как с внешки, так и из локалки (проклятые юзвери, их не научишь разным адресам :smile:

Настраивать локальный DNS-сервер - не вариант, т.к. он настроен на другие зоны, и не хотелось бы из-за одного адреса заводить целую зону.
Пробовал настраивать как тут: http://house.hcn-strela.ru/BSDCert/BSDA ... reflection - но никак не получается :st:
Помогите дописать данные правила, чтобы работало!

Re: Редирект трафика from LAN to LAN с помощью PF

Добавлено: 2012-08-13 9:16:23
mak_v_
обычно данный "возврат" реализовывают проще - через named, прописывая разные views.

Re: Редирект трафика from LAN to LAN с помощью PF

Добавлено: 2012-08-13 10:24:54
ail-man
mak_v_ писал(а):обычно данный "возврат" реализовывают проще - через named, прописывая разные views.
Да, все верно, сначала так и хотел сделать, но по вышесказанным причинам зону заводить не хотелось.
Однако мне все же удалось завернуть трафик по статье! Вот как будут выглядеть правила после преобразования:

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

table <firewall> const { self }
....
#################
## Translation ##
#################

#вот здесь добавляем 3 правила, а предыдущее нижнее правило rdr убираем, оно нам больше не нужно
rdr on $int_if proto tcp from $lan_net to $ext_if port 80 -> 192.168.254.15 port 3000
no nat on $int_if proto tcp from $int_if to $lan_net
nat on $int_if proto tcp from $lan_net to 192.168.254.15 port 3000 -> $int_if

nat on $ext_if from $lan_net to any -> ($ext_if)
rdr on $ext_if proto tcp from any to <firewall> port 80 -> 192.168.254.15 port 3000

###############
## Filtering ##
###############

block in on $ext_ifs all
antispoof quick for $int_if inet

# Rules for lan-interface
pass in quick on $int_if all
pass out quick on $int_if all

# Rules for out-traffic
pass out quick on $ext_if proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if proto { udp, icmp } from any to any keep state

# Rules to INBOUND connections
pass in quick on $ext_if proto tcp from $routers to any port 3000
Надеюсь, кому-нибудь это пригодится. :smile:
Тема закрыта! Спасибо.