The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
очередной pf + rdr вопрос., !*! srw, 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, но в нем тишина, т.к. для редиректа не знаю как логирование настроить.

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

  • очередной pf + rdr вопрос., !*! srw, 17:07 , 02-Дек-09 (1)
    интересно. нашел на 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 всё отлично.

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


  • очередной pf + rdr вопрос., !*! srw, 17:17 , 02-Дек-09 (2)
    Похоже разобрался.
    При тестировании доступа снаружи

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

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

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

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

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

    • очередной pf + rdr вопрос., !*! vagif, 22:35 , 02-Дек-09 (3)

      >А как тогда прописать правило чтобы снаружи редирект работал?
      >
      >>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 + rdr вопрос., !*! srw, 10:07 , 03-Дек-09 (4)
        >
        >>А как тогда прописать правило чтобы снаружи редирект работал?
        >>
        >>>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 года назад. :)


  • очередной pf + rdr вопрос., !*! vagif, 18:23 , 03-Дек-09 (8)

    >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 адрес и такой порт.

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

    • очередной pf + rdr вопрос., !*! srw, 12:02 , 04-Дек-09 (9)
      >у тебя тут ошибка, надо не "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 адрес

  • очередной pf + rdr вопрос., !*! srw, 12:08 , 04-Дек-09 (10)
    В общем всем спасибо!

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

  • очередной pf + rdr вопрос., !*! srw, 12:33 , 04-Дек-09 (11)
    интересно получается. редирект без НАТ совсем не работает

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

    >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

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




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

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