Страница 1 из 2

nat проблемы

Добавлено: 2010-02-11 7:55:08
CTOPMbI4
конфа.
2 физ интерфейса один смотрит в локалку другой в ЛВС провайдера.
далее поднимается 2 тунеля посредствам mpd. ng0 ng1
Первый для внешки. Второй для локалки адреса типа 172.27.0/16
Задача натить свою локалку во внешку.
Решил обойтись добавлением в rc.conf
Прописываем

Код: Выделить всё

natd_enable="YES"
natd_interface="ng0"
natd_flags="-f /etc/natd.conf"
firewall_enable="YES"
firewall_script="/etc/testfire"

Код: Выделить всё

cat /etc/natd.conf
dynamic         yes
same_ports      yes
use_sockets     yes
unregistered_only yes

Код: Выделить всё

 

IntWan="rl0"
IntLan="nfe0"
vpn_ip="10.1.0.1"
vpn_wan="ng0"
vpn_lan="ng1"
vpn_lan_ip="172.0.10.55"
NetLan="192.168.1.0/24"
ipserver="192.168.1.1"

${FwCMD} table 1 flush
${FwCMD} table 1 10.0.0.0/8
${FwCMD} table 1 192.168.0.0/16
${FwCMD} table 1 0.0.0.0/8
${FwCMD} table 1 169.254.0.0/16
${FwCMD} table 1 240.0.0.0/4
${FwCMD} table 1 224.0.0.0/4
${FwCMD} table 3 255.255.255.255

${FwCMD} -f flush

${FwCMD} add check-state

#
${FwCMD} add allow ip from any to any via lo0

# icmp
${FwCMD} add deny icmp from any to any frag

${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${IntWan}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${IntWan}

#
${FwCMD} add allow tcp from any to any established
#nat
# (NAT)
${FwCMD} add divert natd ip from {NetLan} to any out via ${IntLan}
${FwCMD} add divert natd ip from any to ${NetLan} in via ${IntLan}
 

Код: Выделить всё

Destination        Gateway            Flags    Refs      Use  Netif Expire
default            ng0                US          0     5380    ng0
10.1.0.1           10.100.51.20        UGHS        1     6651    rl0
10.1.1.2           10.100.51.20        UGHS        0        0    rl0
10.1.1.10         10.100.51.20        UGHS        1      512    rl0
10.100.51.0/24     link#2             U           0        2    rl0
10.100.51.20       link#2             UHS         0        0    lo0
81.30.1.1        ng1                UHS         0       63    ng1
81.30.50.49      link#7             UHS         0        0    lo0
127.0.0.1          link#6             UH          0       73    lo0
172.0.10.55      link#8             UHS         0      467    lo0
192.168.1.0/24     link#1             U           0        0   nfe0
192.168.1.1        link#1             UHS         0        0    lo0
все поднимается туннули. но трафик не ходит не куда. тобишь не пингуется внешка нерезолвиться с днс и т.д.
Маршруты все норм. Убираешь из rc.conf nat и все пашет.
В чем может быть косяк мужики?

Re: nat проблемы

Добавлено: 2010-02-11 18:14:34
cloudsv

Код: Выделить всё

# (NAT)
${FwCMD} add divert natd ip from {NetLan} to any out via ${IntLan}
${FwCMD} add divert natd ip from any to ${NetLan} in via ${IntLan}
Расшифрую
Натить пакеты от "192.168.1.0/24" куда угодно через nfe0
Натить пакеты откуда угодно в "192.168.1.0/24" через nfe0

Зачем вам перекидывать пакеты внутри сети что ли?

Поставьте ng0 глядишь поможет...

ну и в rc.conf

Код: Выделить всё

gateway_enable="YES"
Еще rc.firewall меня как то смущает...страшный он

Re: nat проблемы

Добавлено: 2010-03-19 10:24:47
CTOPMbI4
Есть шаристые камрады в ipfw? :smile:

Re: nat проблемы

Добавлено: 2010-03-19 11:31:47
maga-maga
вы куда-то не туда натите, натить надо в адрес а не в any ))
выбросьте natd используйте kernel nat
и че у вас там за таблицы в фаерволе? зачем?

Re: nat проблемы

Добавлено: 2010-03-19 11:35:20
CTOPMbI4
maga-maga писал(а):вы куда-то не туда натите, натить надо в адрес а не в any ))
выбросьте natd используйте kernel nat
и че у вас там за таблицы в фаерволе? зачем?
ип выдается провайдером динамиком. Так что я не могу подставить туда определенный ип адрес.
Таблицы типо запретить входящий трафик с приватных сетей на внешнем интерфейсе.

Re: nat проблемы

Добавлено: 2010-03-19 11:47:14
maga-maga
я не очень знаю как работает natd, но нат это алиасинг/деалиасинг, и должно быть точно известно куда/откуда это делать. и еще вы не на том интерфейсе делаете. надо делать на внешнем
вы можете сначала получить адрес, а потом включить правила для нат

Re: nat проблемы

Добавлено: 2010-03-19 12:23:48
CTOPMbI4

Код: Выделить всё

Lan_net="192.168.1.0/24"
Wan_external="ng0" - внешка

${fw} add 30 divert natd ip from ${Lan_net} to any out via ${Wan_external}
${fw}add 31 divert natd ip from any to ${Lan_net} in via ${Wan_external}
Так будет работать если я не укажу ип который висит на ng0 интерфейсе?

Re: nat проблемы

Добавлено: 2010-03-19 13:37:05
cloudsv
CTOPMbI4 писал(а):

Код: Выделить всё

Lan_net="192.168.1.0/24"
Wan_external="ng0" - внешка

${fw} add 30 divert natd ip from ${Lan_net} to any out via ${Wan_external}
${fw}add 31 divert natd ip from any to ${Lan_net} in via ${Wan_external}
Так будет работать если я не укажу ип который висит на ng0 интерфейсе?

Будет работать

Re: nat проблемы

Добавлено: 2010-03-19 13:42:45
CTOPMbI4
Благодарю. проверю как буду в офисе.

Re: nat проблемы

Добавлено: 2010-03-19 14:00:11
cloudsv
CTOPMbI4 писал(а):Благодарю. проверю как буду в офисе.
Не забудь в rc.conf

Код: Выделить всё

natd_enable="YES"
natd_interface="ng0
natd_flags="-m -u"

Re: nat проблемы

Добавлено: 2010-03-20 0:32:07
CTOPMbI4
короче исходящие пакеты натятся. а вот входящие нет.

Код: Выделить всё

00030     8      409 divert 8668 ip4 from 192.168.1.0/24 to any out via ng0
00031     0        0 divert 8668 ip4 from any to 192.168.1.0/24 in via ng0
Вопрос почему?

Re: nat проблемы

Добавлено: 2010-03-20 0:36:17
terminus
CTOPMbI4 писал(а):короче исходящие пакеты натятся. а вот входящие нет.

Код: Выделить всё

00030     8      409 divert 8668 ip4 from 192.168.1.0/24 to any out via ng0
00031     0        0 divert 8668 ip4 from any to 192.168.1.0/24 in via ng0
Вопрос почему?

Нат как работает знаете? Что он делает с пакетом?

Код: Выделить всё

divert 8668 ip from 192.168.1.0/24 to any out via ng0
divert 8668 ip from any to me in via ng0

Re: nat проблемы

Добавлено: 2010-03-20 11:53:20
CTOPMbI4
Видимо не совсем понимаю. но если поставить так то

Код: Выделить всё

divert 8668 ip from any to me in via ng0
он будет натить все пакеты которые придут с внешнего интерфейса. А мне нужно чтобы только те пакеты которые ушли изначально из под моей локалки. 192.168.1.0/24
+ у меня еще висит прокся на ng1 интерфейсе и она не работает если так врубить нат.
Как подскажите вырулить в этой ситуации?

Re: nat проблемы

Добавлено: 2010-03-20 13:30:18
cloudsv
Предыдущий оратор был прав, я проглядел принимать нат пакеты должен же внешний интерфейс.
Нат подменяет адрес отправителя если в кратце.

Поставьте это и будет у вас счастье

Код: Выделить всё

divert 8668 ip from any to me in via ng0
+ у меня еще висит прокся на ng1 интерфейсе и она не работает если так врубить нат.
Перед натом разрешите соединения на порт прокси, тогда пакет не дойдет до обработки нат.

Re: nat проблемы

Добавлено: 2010-03-20 17:31:29
CTOPMbI4
прописал правила для прокси через ng1.

Код: Выделить всё

allow ip from any to me dst-port 5190 in via ng1
allow ip from me to any out via ng1
К прокси коннектиться норм.
далее сам прокси отправляет запрос так же через ng0 на внешку прописал правило

Код: Выделить всё

allow ip from me to any out via ng0
а вот обратно уже нет.тут трабла.
если поставить

Код: Выделить всё

allow ip from any to me in via ng0
перед натом то работает через прокси! Но тогда не работает через нат. соотвественно пакет не дойдет до ната

Код: Выделить всё

divert 8668 ip4 from any to me in via ng0
Если наоборот то соответственно над работает! Через прокси нет.
Может я недоганяю совсем но как решить поставленную задачу не понимаю. И вообще можно ли решить ее?! :cz2:

Re: nat проблемы

Добавлено: 2010-03-20 17:44:18
cloudsv

Код: Выделить всё

ipfw add allow tcp from any to me 5190 in via ng0
ipfw add allow tcp from me 5190 to any out via ng0

ipfw add divert 8668 ip from 192.168.1.0/24 to any out via ng0
ipfw add divert 8668 ip from any to me in via ng0

Откуда взялся ng1?

Re: nat проблемы

Добавлено: 2010-03-20 17:55:29
CTOPMbI4
ng1 для локалки (через сеть провайдера) адреса типа 172.16.0.0/12
на нем висит прокси. тобишь к нему коннектятся юзверы. маршрут на сеть 172.16.0.0/12 прибит статиком к нему. И есть внешка это собственно уже ng0. на него дефолтный маршрут.
192.168.1.0/24 физически подключена к серверу. На нем сеть офиса. должны выходить через нат.

Re: nat проблемы

Добавлено: 2010-03-20 19:12:07
cloudsv
CTOPMbI4 писал(а):ng1 для локалки (через сеть провайдера) адреса типа 172.16.0.0/12
на нем висит прокси. тобишь к нему коннектятся юзверы. маршрут на сеть 172.16.0.0/12 прибит статиком к нему. И есть внешка это собственно уже ng0. на него дефолтный маршрут.
192.168.1.0/24 физически подключена к серверу. На нем сеть офиса. должны выходить через нат.
Вот все должно работать.

Код: Выделить всё

ipfw add divert 8668 ip from 192.168.1.0/24 to any out via ng0
ipfw add divert 8668 ip from any to me in via ng0
ipfw add allow ip from any to any via ng1

Re: nat проблемы

Добавлено: 2010-03-21 8:45:36
CTOPMbI4
Хех если поставить именно так

Код: Выделить всё

ipfw add divert 8668 ip from any to me in via ng0
То любой приходящий пакет на ng0 суб-интерфейс. будет подпадать под это правило.
соотвественно с прокси ничего не работает. кроме того и самого шлюза не работает.

Re: nat проблемы

Добавлено: 2010-03-21 11:15:22
cloudsv
CTOPMbI4 писал(а):Хех если поставить именно так

Код: Выделить всё

ipfw add divert 8668 ip from any to me in via ng0
То любой приходящий пакет на ng0 суб-интерфейс. будет подпадать под это правило.
соотвественно с прокси ничего не работает. кроме того и самого шлюза не работает.
Вы же говорили что прокси висит на другом интерфейсе, значит пакет в divert попадать не будет.

И так же не плохо было бы вам изучить статейку: http://www.lissyara.su/articles/freebsd/tuning/ipfw/

Re: nat проблемы

Добавлено: 2010-03-21 11:36:14
CTOPMbI4
Да прокси висит на дрйгом суб-интерфейсе, но..дальше то запросы идут на внешку на ng0 тобишь все равно они подпадают под это правило когда они приходят на ng0 с внешки.
Хорошо почитаю на досуге может что то прояснится :smile:

Re: nat проблемы

Добавлено: 2010-03-21 13:24:37
CTOPMbI4
Сильно извеняюсь. :oops:
У меня по каким то причинам не запускается скрипт nat-а ругается на синтаксис хотя вроде все верно. прописал вручную

Код: Выделить всё

natd_flags="-m -u -dynamic"
Короче все завелось. Как я понял демон natd анализирует пакеты приходящие на интерфейс и уже их сам напрявляет в локальную сетку. :smile: а все другие пакеты уже проходят по правилам дальше и подпадают под правило

Код: Выделить всё

allow ip from any to me in via ng0

Re: nat проблемы

Добавлено: 2010-03-23 22:29:04
CTOPMbI4
Короче говоря рано обрадовался. НЕ пашет не фига.
по счетчику ,

Код: Выделить всё

00030      6       288 divert 8668 ip4 from 192.168.1.0/24 to any out via ng0
00031  49610   3024687 divert 8668 ip4 from any to me in via ng0
00065  49595   3023967 allow ip from any to me in via ng0
Видно что на nfe0 внутрений интерфейс

Код: Выделить всё

00:02:17.516465 IP 192.168.1.2.1053 > 213.180.204.8.80: Flags [S], seq 1518579369, win 65535, options [mss 1460,nop,nop,sackOK], length 0
на ng0 во внешку и оратно

Код: Выделить всё

00:01:27.309583 IP 81.54.97.60.1052 > 213.180.204.8.80: Flags [S], seq 2743147693, win 65535, options [mss 1460,nop,nop,sackOK], length 0
00:01:27.428877 IP 213.180.204.8.80 > 81.54.97.60.1052: Flags [S.], seq 4061162568, ack 2743147694, win 8192, options [mss 1410,sackOK,eol], length 0
А вот в обратку на nfe0 пакетов не видно.
нат запущен

Код: Выделить всё

965  ??  Ss     2:09.57 /sbin/natd -m -u -dynamic -redirect_port tcp 192.168.1.2:23 22 -n ng0
Чет не догоняю что еще может быть. Подскажите а то уже запарился :st:

Re: nat проблемы

Добавлено: 2010-03-23 22:32:21
cloudsv
Что это вообще за извращения?

Напишите четко и ясно, что должен уметь делать ваш файрвол и нат.

Re: nat проблемы

Добавлено: 2010-03-23 22:52:29
CTOPMbI4
Где извращение ? :ROFL:
Задача полный доступ локалке в офисе тобишь должен работать nat
+ прокси на отдельном интерфейсе
+ фаир для разруливания и блокировки.
В идеале конечно только то что разрешено.