The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"очередной pf + rdr вопрос."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Информационная безопасность (Public)
Изначальное сообщение [ Отслеживать ]

"очередной pf + rdr вопрос."  +/
Сообщение от srw email on 02-Дек-09, 16:42 
Добрый день!

   Перелазил кучу форумов и вроде как должно работать, а у меня не работает.
Ситуация такая. Поднял на MS VirtualPC FreeBSD 8.0

Пытаюсь настроить pf чтобы заменить в дальнейшем существующий фаервол.
Соответственно интерфейсы все локальные, IP тоже.

pf.conf
ext_if = "de0"
ext_ip="192.168.5.11"

#нат работает
nat on $ext_if from $int_net to any -> ($ext_if)

#а редирект нет
rdr pass on $ext_if proto tcp from any to $ext_if port 443 -> 192.168.0.2 port 443
rdr pass on $ext_if proto tcp from any to $ext_if port 80 -> 192.168.0.2 port 1080

pass quick all

Может такое в моей ситуации и не должно работать?
ifconfig FreeBSD
de0 192.168.5.11
de1 192.168.0.245
gate 192.168.5.10

ipconfig локальной ВинХП (эмуляция доступа снаружи)
192.168.5.55
gate 192.168.5.11

пытаюсь подключиться браузером на https://192.168.5.11 и на http://192.168.5.11 и ничего не получается

если на локальной машине ВинХП (эмуляция доступа изнутри)
192.168.0.201
gate 192.168.0.245
то доступ в интернет есть

пинги отовсюду проходят.
пытался отловить на каком месте затык через tcpdump, но в нем тишина, т.к. для редиректа не знаю как логирование настроить.

Я подозреваю, что возможно проблема в том, что это все на виртуальной машине крутится на одном физическом интерфейсе?

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "очередной pf + rdr вопрос."  +/
Сообщение от srw email on 02-Дек-09, 17:07 
интересно. нашел на openbsd и вот с такими правилами заработал редирект

nat on $int_if from $int_net to any -> ($int_if)

rdr on $int_if proto tcp from any to $int_if port 443 -> 192.168.0.2 port 443
rdr on $int_if proto tcp from any to $int_if port 80 -> 192.168.0.2 port 1080

Локальная ВинХП
192.168.0.201
gate 192.168.0.245

тогда при подключении https://192.168.0.245 и на http://192.168.0.245 всё отлично.

Буду разбираться почему не работает с внешними интерфейсами.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "очередной pf + rdr вопрос."  +/
Сообщение от srw email on 02-Дек-09, 17:17 
Похоже разобрался.
При тестировании доступа снаружи

Вот это правило
>nat on $ext_if from $int_net to any -> ($ext_if)

Разрешало НАТ только для локальной сети.
и когда попробовал изнутри редирект, то всё заработало

А как тогда прописать правило чтобы снаружи редирект работал?

>nat on $ext_if from any to any port 443 -> ($ext_if)

Как-то так что-ли?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "очередной pf + rdr вопрос."  +/
Сообщение от vagif (ok) on 02-Дек-09, 22:35 

>А как тогда прописать правило чтобы снаружи редирект работал?
>
>>nat on $ext_if from any to any port 443 -> ($ext_if)
>

у меня так
rdr pass on $ext_if proto {tcp,udp} to $my_addr port 27015 -> 192.168.22.33

почему ты для редиректа используешь nat?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "очередной pf + rdr вопрос."  +/
Сообщение от srw email on 03-Дек-09, 10:07 
>
>>А как тогда прописать правило чтобы снаружи редирект работал?
>>
>>>nat on $ext_if from any to any port 443 -> ($ext_if)
>>
>
>у меня так
>rdr pass on $ext_if proto {tcp,udp} to $my_addr port 27015 -> 192.168.22.33
>
>почему ты для редиректа используешь nat?

Вообще я НАТ хотел использовать, для доступа в интернет, но т.к. что-то не заработало в первоначальной конфигурации, начал пробовать разные вариации.
С PF разбираюсь только третий день, а c IPFW работал 3 года назад. :)


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "очередной pf + rdr вопрос."  +/
Сообщение от vagif (ok) on 03-Дек-09, 11:00 
>Вообще я НАТ хотел использовать, для доступа в интернет, но т.к. что-то
>не заработало в первоначальной конфигурации, начал пробовать разные вариации.
>С PF разбираюсь только третий день, а c IPFW работал 3 года
>назад. :)

посмотри живие конфиги http://wiki.zeynalov.com/vagif:docs:freebsd:pf
а вообще есть родная документация http://www.openbsd.org/faq/pf/index.html

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "очередной pf + rdr вопрос."  +/
Сообщение от srw on 03-Дек-09, 14:28 
>>Вообще я НАТ хотел использовать, для доступа в интернет, но т.к. что-то
>>не заработало в первоначальной конфигурации, начал пробовать разные вариации.
>>С PF разбираюсь только третий день, а c IPFW работал 3 года
>>назад. :)
>
>посмотри живие конфиги http://wiki.zeynalov.com/vagif:docs:freebsd:pf
>а вообще есть родная документация http://www.openbsd.org/faq/pf/index.html

Да пересмотрел не один конфиг уже и книжку вот эту почитал (раздел про НАТ)
http://www.bsd.md/BSDA/BSDCert/BSDA-course/apcs02.html#pf-pf...

Вот у всех правило вот так пишется, как я писал в первом посте

># NAT
>nat on $ext_if from $int_net to any -> ($ext_if)
>rdr on $ext_if proto {udp} to $my_addr port 5060 -> 192.168.22.101

у меня так почему-то не работает, а работает только если прописать НАТ правило вот так

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

Мне не нравится "from any"

Может конечно это из-за того что на виртуальной машине всё это хозяйство. Нет возможности протестировать на реальном железе.

Родная документация, кстати есть на русском http://www.openbsd.org/faq/pf/ru/

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "очередной pf + rdr вопрос."  +/
Сообщение от cemen13 email(ok) on 03-Дек-09, 14:39 
У меня вот так работает
nat on $ext_if from $nat_user to any -> $ext_if
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "очередной pf + rdr вопрос."  +/
Сообщение от vagif (ok) on 03-Дек-09, 18:23 

>ext_if = "de0"
>ext_ip="192.168.5.11"
>
>#а редирект нет
>rdr pass on $ext_if proto tcp from any to $ext_if port 443 -> 192.168.0.2 port 443
>rdr pass on $ext_if proto tcp from any to $ext_if port 80 -> 192.168.0.2 port 1080
>

у тебя тут ошибка, надо не "to $ext_if", а "to $ext_ip", то есть
rdr pass on $ext_if proto tcp from any to $ext_ip port 443 -> 192.168.0.2 port 443
rdr pass on $ext_if proto tcp from any to $ext_ip port 80 -> 192.168.0.2 port 1080

на русский это переводится так:
повесить правило на внешнюю карту, для tcp пакатов, который приходят откуда угодно, НО НА МОЙ IP АДРЕС, и на такой-то порт - вот их то и перекидывать на такой-то внутренний IP адрес и такой порт.

а ты не указал точный адрес, который надо мониторить...
хотя по мне, то могли бы и сделать, чтобы и по все карте смотрело...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "очередной pf + rdr вопрос."  +/
Сообщение от srw on 04-Дек-09, 12:02 
>у тебя тут ошибка, надо не "to $ext_if", а "to $ext_ip", то
>есть
>rdr pass on $ext_if proto tcp from any to $ext_ip port 443 -> 192.168.0.2 port 443

Здесь нет ошибки, можно и так, и так указывать, если указать интерфейс, то будут браться ИП адреса из rc.conf кажется

В любом случае при просмотре правил НАТ pfctl -sn поле $ext_if заменяется на IP адрес

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "очередной pf + rdr вопрос."  +/
Сообщение от srw on 04-Дек-09, 12:08 
В общем всем спасибо!

Понятно, что правила примерно правильные как и в книжках.
Буду разбираться дальше.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "очередной pf + rdr вопрос."  +/
Сообщение от srw on 04-Дек-09, 12:33 
интересно получается. редирект без НАТ совсем не работает

попробовал настроить редирект из локальной сети.

>ext_if = "de0"
>int_if = "de1"
>ext_ip="192.168.5.11"
>int_ip="192.168.0.245"
>int_net="192.168.0.0/24"
>почтовый сервер 1ая сетевая 192.168.0.2, вторая сетевая 192.168.5.2
>клиент 192.168.0.201
>шлюз 192.168.0.245

nat on $ext_if from $int_net to any port -> ($ext_if)

вот такой редирект не работает
rdr on $int_if proto tcp from $int_net to $int_ip port 443 -> 192.168.0.2 port 443
https://192.168.0.245

а вот такой работает
rdr on $int_if proto tcp from $int_net to $int_ip port 443 -> 192.168.5.2 port 443
https://192.168.0.245

Так же с клиента почтовый сервер
отвечает по https://192.168.0.2 и отвечат по https://192.168.5.2

Почему не редиректится на ИП во внутренней подсети, а только на ИП внешней подсети?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




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

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