IPFW2+NAT

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

temka-sp
Сообщения: 17
ОС: FreeBSD, Windows XP

IPFW2+NAT

Сообщение temka-sp »

Хочу настроить шлюз с работой через nat kernel. Информации в инете по этому поводу мало, очень бы хотелось чтоб кто нибудь помог, возможно готовым конфигом или инструкцией по настройке.
Спасибо сказали:
arch
Сообщения: 74
ОС: freebsd/arch

Re: IPFW2+NAT

Сообщение arch »

Почти с готовым конфигом:
opennet.ru/tips/info/1618.shtml
Спасибо сказали:
temka-sp
Сообщения: 17
ОС: FreeBSD, Windows XP

Re: IPFW2+NAT

Сообщение temka-sp »

по ней и делал, но почему то не работает.
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: IPFW2+NAT

Сообщение arachnid »

что именно не работает?
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
temka-sp
Сообщения: 17
ОС: FreeBSD, Windows XP

Re: IPFW2+NAT

Сообщение temka-sp »

именно не работаеn ipfw2 nat. то есть не работает сама трансляция адресов. Есть сеть 192.168.х.х (внутренняя) и 10.70.х.х (провайдер). Из внутренней нет доступа к ресурсам прова.
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: IPFW2+NAT

Сообщение arachnid »

temka-sp писал(а):
20.10.2008 11:17
именно не работаеn ipfw2 nat. то есть не работает сама трансляция адресов. Есть сеть 192.168.х.х (внутренняя) и 10.70.х.х (провайдер). Из внутренней нет доступа к ресурсам прова.

сюда набор правил и все изменения, которые вносили
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
Dimas
Сообщения: 137
Статус: FreeBSD

Re: IPFW2+NAT

Сообщение Dimas »

Freebsd 6.4
ставлю из портов nat
в /etc не вижу фаила natd.conf в чем может быть проблема ?
Спасибо сказали:
Igor Yakimchuk
Сообщения: 110
ОС: FreeBSD

Re: IPFW2+NAT

Сообщение Igor Yakimchuk »

из портов вообще-то ставится в /usr/local/etc, если не указывалось ничего другого
Спасибо сказали:
temka-sp
Сообщения: 17
ОС: FreeBSD, Windows XP

Re: IPFW2+NAT

Сообщение temka-sp »

arachnid писал(а):
20.10.2008 12:55
temka-sp писал(а):
20.10.2008 11:17
именно не работаеn ipfw2 nat. то есть не работает сама трансляция адресов. Есть сеть 192.168.х.х (внутренняя) и 10.70.х.х (провайдер). Из внутренней нет доступа к ресурсам прова.

сюда набор правил и все изменения, которые вносили



ip адреса немного другие, решил сделать подопытный сервер. Сеть 192.168.55.0 внутренняя, 192.168.54.0 внешняя. Вот с такими правилами из внутренней не получается попасть во внешнюю.

P.S Щас просто роль NAT'a выполняет FEDORA CORE. Там всё очень просто с Linux firewall'ом, особенно через Webmin. C ipfw знаком ещё плоховато.

Ядро пересобрано с параметрами IPFIREWALL_NAT и LIBALIAS (а так же IPFIREWALL, IPDIVERT И ТД)


[root@ testserv ~]# ipfw show
00001 369 38825 allow ip from any to any
00010 0 0 nat 123 ip from 192.168.55.0/24 to any
00020 0 0 nat 123 ip from any to 192.168.54.195
65535 0 0 deny ip from any to any
Спасибо сказали:
Аватара пользователя
Dimas
Сообщения: 137
Статус: FreeBSD

Re: IPFW2+NAT

Сообщение Dimas »

Igor Yakimchuk писал(а):
20.10.2008 17:42
из портов вообще-то ставится в /usr/local/etc, если не указывалось ничего другого

Там я проверил в первую очередь ) Удивился что конфига нет и полез в /etc/natd.conf искать и тоже ничего не обнаружил )
сама настройка не вызывает особых вопросов, удивило то что нет конфигурационного фаила и whereis nat не находит его.
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: IPFW2+NAT

Сообщение arachnid »

2 Dimas - какой нат вы из портов ставили и чем вас natd системный не устраивает?

natd.conf нет - его надо создавать руками, если хотите прописать много параметров и не хотите писать их rc.conf
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
Dimas
Сообщения: 137
Статус: FreeBSD

Re: IPFW2+NAT

Сообщение Dimas »

/usr/ports/net-mgmt/nat
Тот что тут ) Наверное вы правы попробую покрутить системный natd
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: IPFW2+NAT

Сообщение arachnid »

Dimas писал(а):
21.10.2008 08:53
/usr/ports/net-mgmt/nat
Тот что тут ) Наверное вы правы попробую покрутить системный natd

а описание прочитать не судьба? :) это же NetBIOS auditing tool
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
evil
Сообщения: 149

Re: IPFW2+NAT

Сообщение evil »

temka-sp писал(а):
20.10.2008 18:35
00001 369 38825 allow ip from any to any

Этим правилом вы всю малину испортили :) его надо ставить после правил ната :)
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: IPFW2+NAT

Сообщение arachnid »

evil писал(а):
21.10.2008 12:32
temka-sp писал(а):
20.10.2008 18:35
00001 369 38825 allow ip from any to any

Этим правилом вы всю малину испортили :) его надо ставить после правил ната :)

абсолютно верно!
странно, что сам пропустил мимо и решил рассмотреть попозже...
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
Dimas
Сообщения: 137
Статус: FreeBSD

Re: IPFW2+NAT

Сообщение Dimas »

Немного запутался с natd
rl0 192.168.0.125
rl1 213.1.1.1

Делаю так (ядро естественно собрано с поддержкой firewall и nat )

1. ipfw show

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

 ipfw show
00100    0      0 allow ip from any to any via lo0
00200    0      0 deny ip from any to 127.0.0.0/8
00300    0      0 deny ip from 127.0.0.0/8 to any
65000 6378 477669 allow ip from any to any
65535   18   1483 deny ip from any to any


2. rc.conf

defaultrouter="213.1.1.1"
ifconfig_fxp0="inet 213.1.1.1 netmask 255.255.255.0"
ifconfig_rl0="inet 192.168.0.125 netmask 255.255.252.0"
gateway_enable="YES"
natd_enable="YES"
natd_flags="-a 213.1.1.1"

3. Разрешаем natd
/sbin/ipfw add divert natd ip from 192.168.0.1/24 to any out via rl1
/sbin/ipfw add divert natd ip from any to 213.1.1.1 in via rl1

4. Запускаем
/sbin/natd -a 213.1.1.1

5. sockstat | grep natd

root natd 1544 3 div4 *:8668 *:*

6. ipfw show

00100 0 0 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
65000 3614 280073 allow ip from any to any
65100 0 0 divert 8668 ip from 192.168.0.0/24 to any out via rl1
65200 0 0 divert 8668 ip from any to 213.1.1.1 in via rl1
65535 46 2735 deny ip from any to any

7. Пробую шлюзом на локальной машине с адресом 192.168.0.245 указать шлюзом ip сервера 192.168.0.125
Пингуем ya.ru пинга нет (
Пингуем 213.1.1.1 пинг есть!

Где я накосячил ? :blush: :blush:
Спасибо сказали:
temka-sp
Сообщения: 17
ОС: FreeBSD, Windows XP

Re: IPFW2+NAT

Сообщение temka-sp »

ОП. Всем спасибо за наводящие подсказки. Наконец то разобрался чё к чему, всё прекрасно пашет.
Спасибо сказали:
Аватара пользователя
Dimas
Сообщения: 137
Статус: FreeBSD

Re: IPFW2+NAT

Сообщение Dimas »

Сам написал , сам отвечу

ipfw show должно выглядеть вот так

00100 288 35648 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
00300 0 0 divert 8668 ip from 192.168.0.0/24 to any out via rl1
00400 9 568 divert 8668 ip from any to 213.1.1.1 in via rl1
65000 296269 23719459 allow ip from any to any
65535 46 2735 deny ip from any to any


т.е. все записи о divert должны идти до allow ip from any to any
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: IPFW2+NAT

Сообщение arachnid »

Dimas писал(а):
21.10.2008 16:59
Где я накосячил ? :blush: :blush:

там же, где и автор топика - правило для ната должно стоят до разрещающего правила всего и вся - ибо обработка в ipfw идет до первого совпадающего правила (в отличии от pf, где идет проверка по всем правилам) - поэтому до правила, перенаправляющего пакеты в нат, дело не доходит
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
Dimas
Сообщения: 137
Статус: FreeBSD

Re: IPFW2+NAT

Сообщение Dimas »

Можно закрепить как простенький ман по настройке nat + ipfw ))
Спасибо сказали:
Аватара пользователя
Dimas
Сообщения: 137
Статус: FreeBSD

Re: IPFW2+NAT

Сообщение Dimas »

allow ip from any to any via lo0
deny ip from any to 127.0.0.0/8
deny ip from 127.0.0.0/8 to any
divert 8668 ip from 192.168.0.0/24 to any out via rl1
divert 8668 ip from any to 213.1.1.1 in via rl1
allow ip from any to any
deny ip from any to any

При этом нат открыт полностью, но например если я хочу открыть только 25 и 110 порт

вместо

ipfw add divert 8668 ip from 192.168.0.0/24 to any out via fxp0

делаю

ipfw add divert 8668 ip from 192.168.0.0/24 to any 25,110 out via fxp0

allow ip from any to any via lo0
deny ip from any to 127.0.0.0/8
deny ip from 127.0.0.0/8 to any
divert 8668 ip from 192.168.0.0/24 to any out via fxp0
divert 8668 ip from 192.168.0.0/24 to any dst-port 25,110 out via fxp0
divert 8668 ip from any to 213.1.1.1 in via fxp0
allow ip from any to any
deny ip from any to any

То, нат не работает, почта на 25 и 110 порту тоже.... в чем ошибка ?
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: IPFW2+NAT

Сообщение arachnid »

Dimas писал(а):
01.11.2008 14:10
allow ip from any to any via lo0
deny ip from any to 127.0.0.0/8
deny ip from 127.0.0.0/8 to any
divert 8668 ip from 192.168.0.0/24 to any out via rl1
divert 8668 ip from any to 213.1.1.1 in via rl1
allow ip from any to any
deny ip from any to any

При этом нат открыт полностью, но например если я хочу открыть только 25 и 110 порт

вместо

ipfw add divert 8668 ip from 192.168.0.0/24 to any out via fxp0

делаю

ipfw add divert 8668 ip from 192.168.0.0/24 to any 25,110 out via fxp0

allow ip from any to any via lo0
deny ip from any to 127.0.0.0/8
deny ip from 127.0.0.0/8 to any
divert 8668 ip from 192.168.0.0/24 to any out via fxp0
divert 8668 ip from 192.168.0.0/24 to any dst-port 25,110 out via fxp0
divert 8668 ip from any to 213.1.1.1 in via fxp0
allow ip from any to any
deny ip from any to any

То, нат не работает, почта на 25 и 110 порту тоже.... в чем ошибка ?

интерфейсы разные - так и должно быть?
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
Maestro
Сообщения: 227
Статус: ипэшник
ОС: FreeBSD-6.2 STABLE

Re: IPFW2+NAT

Сообщение Maestro »

Тема миллион раз обсуждаемая и сто раз перелопаченая от и до... неужели пора написать статью по нат и правильной настройке под него IPFW???
И еще в сотый раз - сначала дайверт должен быть в ин, потом идти основные правила, сначала открывающие, потом запрещающие, потом дайверт в аут, потом нафик все закрыть и не маяться... но правильно это делать нужно через skip to. А по настройке IPFW с skip to можно прочитать в ЭТОМ топике. Главное вникнуть в суть ната - все просто.
дайте денег на обновление портов :)
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: IPFW2+NAT

Сообщение arachnid »

Maestro писал(а):
06.11.2008 14:18
Тема миллион раз обсуждаемая и сто раз перелопаченая от и до... неужели пора написать статью по нат и правильной настройке под него IPFW???
И еще в сотый раз - сначала дайверт должен быть в ин, потом идти основные правила, сначала открывающие, потом запрещающие, потом дайверт в аут, потом нафик все закрыть и не маяться... но правильно это делать нужно через skip to.

да для ната можно и одно правило - а потом уже указываем, кого и что и куда пускаем.
какая разница, на каком этапе разрешать?
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
Maestro
Сообщения: 227
Статус: ипэшник
ОС: FreeBSD-6.2 STABLE

Re: IPFW2+NAT

Сообщение Maestro »

arachnid писал(а):
06.11.2008 15:00
Maestro писал(а):
06.11.2008 14:18
Тема миллион раз обсуждаемая и сто раз перелопаченая от и до... неужели пора написать статью по нат и правильной настройке под него IPFW???
И еще в сотый раз - сначала дайверт должен быть в ин, потом идти основные правила, сначала открывающие, потом запрещающие, потом дайверт в аут, потом нафик все закрыть и не маяться... но правильно это делать нужно через skip to.

да для ната можно и одно правило - а потом уже указываем, кого и что и куда пускаем.
какая разница, на каком этапе разрешать?

А Вы реально по работе пользовались IPFW+natd?? Это делается для того, чтобы IPFW обрабатывал пакеты, которые попадают в нат... Короче... Сначала пакет через нат попадает на интерфейс (внешний естественно) потом IPFW смотрит - каким правилам соответствует этот пакет, если правила подошли, то он выпускает его дальше, через нат, если нет, то режет... Не помню если честно точно, в чем была проблема, то ли с инет банками, то ли с ВПН то ли с РАдмином - но пришлось делать именно через скипы и чрез нат... А потом понравилось, и с правилами все проще, ВПН можно пропустить выше ната, IPSEC туда же... ну и плюс проброс по портам через natd.conf... Задач было много, поэтому было избрано именно такое решение, которое, кстати, взято из англицкого хэндбука по IPFW - где все популярно с примерами прописано, что для чего, как и зачем.

ЗЫ - пора учить PF и не маяться с IPFW - хотя привычка - это же дело такое, вот, например, до сих пор курить не могу бросить =)
дайте денег на обновление портов :)
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: IPFW2+NAT

Сообщение arachnid »

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

кстати, пора осваивать ядренный нат для ipfw...
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
Dimas
Сообщения: 137
Статус: FreeBSD

Re: IPFW2+NAT

Сообщение Dimas »

arachnid писал(а):
06.11.2008 13:12
интерфейсы разные - так и должно быть?

Интерфейсы конечно одинаковые)

(Maestro) писал(а):И еще в сотый раз - сначала дайверт должен быть в ин, потом идти основные правила, сначала открывающие, потом запрещающие, потом дайверт в аут, потом нафик все закрыть и не маяться.


Тогда судя по вашему

allow ip from any to any via lo0
deny ip from any to 127.0.0.0/8
deny ip from 127.0.0.0/8 to any
allow tcp from any to any 22
allow tcp fron any 22 to any
divert 8668 ip from any to 1.1.1.1 in via rl1
allow udp from any 53 to any
allow udp from any to any 53
allow tcp from any to any 25,110
allow tcp from any 25,110 to any
divert 8668 ip from 192.168.0.0/24 to any out via rl1
deny log all from any to any

Либо если через skipto

divert 8668 ip from any to 213.167.60.19 in via rl1
skipto 400 tcp from any 25,110 to any
skipto 400 tcp from any to any dst-port 25,110
400 divert 8668 ip from 192.168.0.0/24 to any out via rl1
allow ip from any to any
deny ip from any to any


Верно вас понимаю ? Но так работает и 80 порт через нат тоже
Убираем правило allow ip from any to any, через нат почта не идет....
Спасибо сказали: