The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
PF problem, !*! mclaud, 24-Ноя-05, 09:52  [смотреть все]
Система FreeBSD 5.4. Решил переходить с IPF на PF и столкнулся со следующей проблемой:
в конфигах IPF уменя были следущие строки:

nat

map on $ext_if from 192.168.0.0/24 -> $ext_if_ip

filter

block all
pass in on $local_if all
pass in on $local_if all
pass out quick on $ext_if from 192.168.0.100 to any port 5190 keep state
  
(т.е. весь трафик из внут. сети транслируется на внешний интерфейс, на внут. интерфейсе
разрешен весь трафик, а с внешнего интерфейса ICQ уходит только с 192.168.0.100)

При попытке сделать подобное на PF ничего не получается, тк(из доки по нему) транслирование происходит
до фильтрации и фильтрующие правила видят уже оттранслированный пакет. Т.е.правило

pass out quick on $ext_if from 192.168.0.100 to any port 5190 keep state

не работает, тк пакет к внешнему интерфейсу дошел с ip $ext_if_ip.

В результате приходится фильтровать пакеты на внут. интерфейсе, а с внешнего пропускать весь трафик.

Вопрос в следующем: возможноли замуть то же, что у меня было на IPF???

  • PF problem, !*! _Ale_, 15:11 , 24-Ноя-05 (1)
    Как вариант
    nat on $ext_if inet from $int_if:network to any port 53 -> ($ext_if)
    nat on $ext_if inet from $int_if:network to any port 80 -> ($ext_if)
    (если необходимо, добавляем правила для нужных портов)
    nat on $ext_if inet from 192.168.0.100 to any port 5190 -> ($ext_if)
    То есть, будет трансляция пакетов для всех по нужным портам, кроме icq, а для 192.168.0.100 - еще для icq.
    • PF problem, !*! McLaud, 15:27 , 24-Ноя-05 (2)
      >Как вариант
      >nat on $ext_if inet from $int_if:network to any port 53 -> ($ext_if)
      >nat on $ext_if inet from $int_if:network to any port 80 -> ($ext_if)
      >(если необходимо, добавляем правила для нужных портов)
      >nat on $ext_if inet from 192.168.0.100 to any port 5190 -> ($ext_if)
      >То есть, будет трансляция пакетов для всех по нужным портам, кроме icq,
      >а для 192.168.0.100 - еще для icq.

      а как же быть с icmp, tracert?

      • PF problem, !*! _Ale_, 16:21 , 24-Ноя-05 (3)
        >а как же быть с icmp, tracert?
        В чем проблема?
        Ты пробовал, что я посоветовал? Должно работать по всем протоколам.
        • PF problem, !*! McLaud, 16:42 , 24-Ноя-05 (4)
          >>а как же быть с icmp, tracert?
          >В чем проблема?
          >Ты пробовал, что я посоветовал? Должно работать по всем протоколам.

          а прблема в том, что конструкция правила нат не предполагает использования  типа протокола. Тем что ты написал можно разрулить tcp/udp трафик, а для того, чтоб icmp ходил наружу из всей локалки придется использованть
          nat on $ext_if from $local_net -> $ext_if

          • PF problem, !*! _Ale_, 17:06 , 24-Ноя-05 (5)
            >nat on $ext_if from $local_net -> $ext_if
            >nat on $ext_if from $local_net -> $ext_if
            Тогда так
            nat on $ext_if inet from $int_if:network to any port 53 -> ($ext_if)
            nat on $ext_if inet from $int_if:network to any port 80 -> ($ext_if)
            (если необходимо, добавляем правила для нужных портов)
            nat on $ext_if inet from 192.168.0.100 to any -> ($ext_if)
            То есть классному парню с ИП 192.168.0.100 будет разрешено все, в том числе и icmp

            • PF problem, !*! McLaud, 17:51 , 24-Ноя-05 (6)
              >>nat on $ext_if from $local_net -> $ext_if
              >>nat on $ext_if from $local_net -> $ext_if
              >Тогда так
              >nat on $ext_if inet from $int_if:network to any port 53 -> ($ext_if)
              >nat on $ext_if inet from $int_if:network to any port 80 -> ($ext_if)
              >(если необходимо, добавляем правила для нужных портов)
              >nat on $ext_if inet from 192.168.0.100 to any -> ($ext_if)
              >То есть классному парню с ИП 192.168.0.100 будет разрешено все, в том
              >числе и icmp

              спасибо за помощь, но это не очень красивый вариант. будут ли еще какие мысли?

              • PF problem, !*! _Ale_, 18:28 , 24-Ноя-05 (7)
                >спасибо за помощь, но это не очень красивый вариант. будут ли еще
                >какие мысли?
                есть еще мысли...
                например
                block in quick on $int_if proto tcp from !192.168.0.100 to any port 5190

                • PF problem, !*! McLaud, 18:59 , 24-Ноя-05 (8)
                  >>спасибо за помощь, но это не очень красивый вариант. будут ли еще
                  >>какие мысли?
                  >есть еще мысли...
                  >например
                  >block in quick on $int_if proto tcp from !192.168.0.100 to any port
                  >5190
                  я и начилал с того, что прихоходится фильтровать на внут. интерфейсе. Я так и поступил....




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

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