The OpenNET Project / Index page

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

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

"Правильный двойной нат"  +/
Сообщение от FeNUMe on 08-Фев-10, 21:11 
Вкратце задача: к роутеру на FreeNAS(сильно облегченная FreeBSD7.2)подключено 2 локальные сети и интернет. нужно обеспечить хождение пакетов между двумя локалками и раздачу интернета в одну из локалок. Так как роуты возможно прописать только в одной локалке то во вторую ходить приходится от имени роутера тоесть через нат.
на сервере такие интерфейсы
rl0 - смотрит во внутреннюю локалку 10.1.1.0/29
re0 - смотрит во внешнюю локалку 172.16.0.0/16 и 192.168.0.0/16
ng0 - смотрит в инет, создается mpd5 при коннекте PPPoE

Нужно натить ng0 на rl0 и re0 на rl0, при этом пакеты не должны ходить между re0 и ng0.
Сейчас использую такой конфиг, но он дырявый и не универсальный.
#!/bin/sh
FW="/sbin/ipfw -q"
IF_CN="re0"
IF_HOME="rl0"
IF_NET="ng0"
IP_CN="172.16.0.0/16, 192.168.0.0/16"
IP_HOME="10.1.1.0/29"
IP_NET=`ifconfig ng0 | grep inet | awk '{print $2}'`

#------------START NAT--------------------------
natd -s -m -n ${IF_NET} -redirect_port tcp 10.1.1.1:55555 55555
natd -s -m -p 8778 -n ${IF_CN}

#------------START RULLES--------------------------
${FW} -f flush
${FW} add divert 8778 ip from any to any via ${IF_CN}
${FW} add divert 8668 ip from any to any via ${IF_NET}
${FW} add pass all from me to any
${FW} add pass all from any to me
${FW} add pass all from any to any


Хотелосьбы отойти от использования айпи, чтобы все правила использовали только интерфейсы. Также интересует возможно ли это организовать с помощью KernelNAT(IPFW2 NAT)

также на одну из машин внутренней локалки нужно прокинуть порт для торрента.

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

Оглавление

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


4. "Правильный двойной нат"  +/
Сообщение от FeNUMe on 10-Фев-10, 09:19 
наверное еслиб можно было использовать адреса большой локалки для домашней - я бы тут не задавал вопросов.(подсеть в которую включен мой роутер, подключена как не удивительно тоже через роутер который проверяет доступ по маку) Вот поэтому мне нужно сделать именно то что я написал.
повторяю упрощенно есть 3 сетевых интерфейса ng0 re0 rl0, нужно обеспечить два ната первый с ng0 на rl0 второй с re0 на rl0 и запретить любой трафик с re0 на ng0. Помомему вполне конкретный вопрос, интересует возможно ли такое организовать(именно на основе интерфейсов) и каким софтом. В идеале привести пример правил.

А вы вместо того чтобы попытатся помочь решили повыделыватся и попридиратся к словам.

На счет маршрутов приведу пример
есть 2 сети: сеть А - диапазон 172.16.1.0/24 и сеть Б - диапазон 192.168.1.0/24, между ними роутер 192.168.1.1/172.16.1.1.
для того чтобы пакеты между сетями бегали нужно в сети А прописать
route add 172.16.1.0/24 192.168.1.1
а в сети Б
route add 192.168.1.0/24 172.16.1.1

Если будет прописан только один из этих маршрутов - НИХРЕНА не будет работать. Вот их я и называю встречными, хотя наверно правильнее былобы назвать обратными.


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

15. "Правильный двойной нат"  +/
Сообщение от y (??) on 11-Мрт-10, 01:21 
kldload pf.co
man pf.conf в секции NAT
делается 2мя строчками
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "Правильный двойной нат"  +/
Сообщение от DenSha (??) on 11-Фев-10, 12:17 
>Вкратце задача: к роутеру на FreeNAS

Почему он?
>
>Хотелосьбы отойти от использования айпи, чтобы все правила использовали только интерфейсы.

ipfw действие протокол from интерфейс to интерфейс ? Фигня какая-то... Можно взглянуть, как это делается iptable-сом?

>Сейчас использую такой конфиг, но он дырявый и не универсальный.

Потому что "${FW} add pass all from any to any". Универсальный и ни разу не дырявый: "${FW} add deny all from any to any" первым и единственным правилом. Остальое недырявое, ИМХО, должно отвечать частным условиям. Такое предложение:

ipfw add divert 8668 tcp from any to me 55555 in via ${IF_NET}
ipfw add allow tcp from me to 10.1.1.1 55555 out via ${IF_HOME}
ipfw add divert 8668 tcp from 10.1.1.1 55555 to me in via ${IF_HOME}
ipfw add allow tcp from me 55555 to any out via ${IF_NET}

ipfw add divert 8778 ip from ${IP_HOME} to any in via ${IF_HOME}
ipfw add allow ip from me to ${IP_CN} out via ${IF_CN}
ipfw add allow ip from me to any out via ${IF_NET}
ipfw add divert 8778 ip from ${IP_CN} to me in via ${IF_CN}
ipfw add divert 8778 ip from any to me in via ${IF_NET}
ipfw add allow ip from any to ${IP_HOME} out via ${IF_HOME}

ipfw add deny all from any to any

Работоспособность не гарантирую. Не гуру. Просто вот так я вижу мир:)...

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

14. "Правильный двойной нат"  +/
Сообщение от Dmitry (??) on 10-Мрт-10, 18:36 

>на сервере такие интерфейсы
>ng0 - смотрит в инет, создается mpd5 при коннекте PPPoE
>
>Нужно натить ng0 на rl0 и re0 на rl0, при этом пакеты
>не должны ходить между re0 и ng0.

В mpd5.conf

set iface enable nat

Если версия mpd 5.5, то есть возможность управлять пробросом портов и протоколов

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

16. "Правильный двойной нат"  +/
Сообщение от Николай email(??) on 01-Апр-10, 22:05 

>Если версия mpd 5.5, то есть возможность управлять пробросом портов и протоколов
>

set nat red-port proto alias_addr alias_port local_addr local_port [ remote_addr remote_port ]

Вот только она требует указать alias адрес, который может быть динамическим

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

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

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

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