The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"И снова Free9.0 + PF: NAT есть, проброса нет"
Отправлено Yarikson, 02-Апр-12 16:55 
Видел несколько похожих тем но так и не нашел решения.

Дано - стоит машинка FreeBSD 9.0 + PF
2 сетевые карты, одна снаружи с белым IP, вторая внутри шлюзом у всех машин

sysctl ip.forwarding включен
gateway_enable="YES" стоит

проблема: работает NAT, работает форвард снаружи - не работает форвард изнутри на локальный порт машины
Конкретно - перехват порта 80 с заворачиванием на squid, но это в данном случае не важно т.к. не работает никакой перехват - например проброс на локальный адрес на порт 22 тоже не работает

По результатам tcpdump - пакеты на внутреннем интерфейсе видны, а на lo0 уже ничего нет

'pfctl -sa' правило редиректа показывает (fxp0 - внутренняя карточка) :
rdr pass on fxp0 inet proto tcp from 192.168.200.0/24 to any port = http -> 192.168.200.1 port 3127
  [ Evaluations: 27        Packets: 21        Bytes: 1040        States: 4     ]
  [ Inserted: uid 0 pid 82759 State Creations: 8     ]

пробую с машины 192.168.200.8, с нее разрешил вообще все (см ниже конфиг)

Конфиг PF:

ext_if="xl0"
int_if="fxp0"
internal_net=$int_if:network

tcp_services="{ 13671 }"

allowed_ports="{5190, 2041, 2042, 2043, 2044}"
web_ports="{80, 8080, 443}"
icmp_types="echoreq"

table <remote> {ИПшники}
table <priv> {ИПшники тех кто не все}

set block-policy drop
set loginterface $ext_if

set skip on ng

nat on $ext_if from $internal_net to any -> ($ext_if)

nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"

rdr pass on $ext_if proto tcp from <remote> to $ext_if port  81 -> 192.168.200.1 port 81
rdr pass on $ext_if proto tcp from <remote> to $ext_if port 443 -> 192.168.200.7
rdr pass on $int_if proto tcp to !($int_if) port ftp -> 127.0.0.1 port 8021
rdr pass on $int_if proto { tcp } from $internal_net to any port 80 -> 192.168.200.1 port 3127

pass quick log from 192.168.200.8 to any
antispoof quick for { lo $int_if }
anchor "ftp-proxy/*"
block in log on $ext_if

pass in quick on $int_if from any to any
pass out quick on $int_if from any to any

pass out quick on $ext_if from ($ext_if) to any

pass in on $ext_if inet proto tcp from any to ($ext_if) port $tcp_services
pass in on $ext_if inet proto tcp from <remote> to 192.168.200.7 port 443 synproxy state

pass out quick on $ext_if proto udp from $internal_net to any port 123 keep state
pass out quick on $ext_if from <priv> to any

pass out on $ext_if proto {tcp, udp} from $internal_net to any port $allowed_ports


UPDATE:
а) при написании правила редиректа в виде
rdr pass on $int_if proto { tcp } from $internal_net to any port 87 -> 192.168.200.1 port 3127
Редирект при обращении на сам хост 192.168.200.1 на порт 87 работает нормально - идет коннект на висящий на машинке Сквид ('telnet 192.168.200.1 87' с машины внутри сети)
А вот например 'telnet ya.ru 87' виснет на connecting to ya.ru...

б) при написания редиректа на лупбэк:
rdr pass on $int_if proto { tcp } from $internal_net to any port 87 -> 127.0.0.1 port 3127
уже не работает ничего, ни на саму машину ни наружу

IP-адрес ya.ru резолвится нормально, проверил
машина имеет полные права ходить везде (pass quick log from 192.168.200.8 to any - в правилах)

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру