The OpenNET Project / Index page

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

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

"pf с поднятым NAT, огр. доступа по внутр. IP "  
Сообщение от reinover email(ok) on 09-Окт-08, 09:41 
Здравствуйте, я задался целью сделать на FreeBSD 7.0 PF с поднятым NAT  с ограничением доступа ко внешним ресурсам используя для этого внутренние IP адреса. Т.е. правила фильтра будут строятся по примерно следующему принципу:

$ext_if="de0" (1)
$int_if="de1"

$trusted_lan="192.168.1.0/24"  (3)

table <web> {213.180.204.8 и тд.}

nat on $ext_if from $trusted_lan to any  (5)

block all

pass out on $int_if proto {tcp,udp} from 192.168.1.5 to <web> (7)

Основная проблема заключается в том что pf сначала обрабатывает правила NAT (5), а только затем правила фильтра (7), поэтому последнее правило (7) не справедливо т.к. пакет уже обработан и его заголовок заменён с адреса 192.168.1.5 на адрес внешнего интерфейса, а именно на то что назначено de0 (1).

Собственно, как можно организовать используя pf доступ ко внешним ресурсам ориентируясь по внутреннему ip или внутреннему dns имени?

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

 Оглавление

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


1. "pf с поднятым NAT, огр. доступа по внутр. IP "  
Сообщение от Stalker email(??) on 09-Окт-08, 16:36 
>[оверквотинг удален]
>pass out on $int_if proto {tcp,udp} from 192.168.1.5 to <web> (7)
>
>Основная проблема заключается в том что pf сначала обрабатывает правила NAT (5),
>а только затем правила фильтра (7), поэтому последнее правило (7) не
>справедливо т.к. пакет уже обработан и его заголовок заменён с адреса
>192.168.1.5 на адрес внешнего интерфейса, а именно на то что назначено
>de0 (1).
>
>Собственно, как можно организовать используя pf доступ ко внешним ресурсам ориентируясь по
>внутреннему ip или внутреннему dns имени?

Если это весь набор правил то работать вообще не будет, потому что правилом block all блокируется весь входящий трафик на внутренний интерфейс и весь траффик на внешнем интерфейсе.

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

2. "pf с поднятым NAT, огр. доступа по внутр. IP "  
Сообщение от reinover email(ok) on 09-Окт-08, 19:39 
>Если это весь набор правил то работать вообще не будет, потому что
>правилом block all блокируется весь входящий трафик на внутренний интерфейс и
>весь траффик на внешнем интерфейсе.

Я рассматривал такую возможность ещё до того как задать вопрос на форуме, применял различные подробно расписанные конфиги вроде этого:

$ext_if="de0" (1)
$int_if="de1"
$trusted_lan="192.168.1.0/24"  (3)
table <web> {213.180.204.8 и тд.}
nat on $ext_if from $trusted_lan to any  (5)

block out on $int_if to any
block in on $int_if to any
block out on $ext_if to any
block in on $ext_if to any

pass in on $ext_if proto icmp from <web> to 192.168.1.5
pass out on $ext_if proto icmp from 192.168.1.5 to <web>
pass in on $int_if proto icmp from <web> to 192.168.1.5
pass out on $int_if proto icmp from 192.168.1.5 to <web>

И ничего... пинг с узла 192.168.1.5 на узлы <web> не идёт (естественно с узла 192.168.1.5 вводится ip адрес,а не имя хоста т.к. dns в данном примере не разрешён.)
PS: этот конфиг конечно упрощенный, но и с ним не работает так как мне нужно. Поэтому, я повторю вопрос:
Как можно организовать, используя pf c NAT, доступ ко внешним ресурсам ориентируясь по внутреннему ip или внутреннему dns имени?
PSS: конфигурация сети простая, один интерфейс смотрит во внешнюю, другой во внутреннюю сеть.

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

3. "pf с поднятым NAT, огр. доступа по внутр. IP "  
Сообщение от Stalker email(??) on 10-Окт-08, 08:16 
>[оверквотинг удален]
>pass in on $int_if proto icmp from <web> to 192.168.1.5
>pass out on $int_if proto icmp from 192.168.1.5 to <web>
>
>И ничего... пинг с узла 192.168.1.5 на узлы <web> не идёт (естественно с узла 192.168.1.5 вводится ip адрес,а не имя хоста т.к. dns в данном примере не разрешён.)
>PS: этот конфиг конечно упрощенный, но и с ним не работает так
>как мне нужно. Поэтому, я повторю вопрос:
>Как можно организовать, используя pf c NAT, доступ ко внешним ресурсам ориентируясь
>по внутреннему ip или внутреннему dns имени?
>PSS: конфигурация сети простая, один интерфейс смотрит во внешнюю, другой во внутреннюю
>сеть.

Конфиг у Вас не работает потому что написан неправильно. Нужно понять логику работы pf и как пакеты ходят.

Например когда Вы хотите пингануть что-нибудь во вне пакет из внутренней сети приходит на внутренний интерфейс ( т.е. он входящий на внутреннем интерфейсе ) потом к нему применяется правило nat, и затем он он должен уйти с внешнего интерфейса ( если правила фильтра ему позволяют ). А у Вас пакеты блокируются уже на входе во внутренний интерфейс.

Советую почитать хотя бы pf FAQ на OpenBSD.org. Обратите внимание на statefull filtering.

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

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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