IPFW2+NAT
Модератор: arachnid
-
temka-sp
- Сообщения: 17
- ОС: FreeBSD, Windows XP
IPFW2+NAT
Хочу настроить шлюз с работой через nat kernel. Информации в инете по этому поводу мало, очень бы хотелось чтоб кто нибудь помог, возможно готовым конфигом или инструкцией по настройке.
-
arch
- Сообщения: 74
- ОС: freebsd/arch
Re: IPFW2+NAT
Почти с готовым конфигом:
opennet.ru/tips/info/1618.shtml
opennet.ru/tips/info/1618.shtml
-
temka-sp
- Сообщения: 17
- ОС: FreeBSD, Windows XP
Re: IPFW2+NAT
по ней и делал, но почему то не работает.
-
arachnid
- Модератор
- Сообщения: 1100
- ОС: freeBSD
Re: IPFW2+NAT
что именно не работает?
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
-
temka-sp
- Сообщения: 17
- ОС: FreeBSD, Windows XP
Re: IPFW2+NAT
именно не работаеn ipfw2 nat. то есть не работает сама трансляция адресов. Есть сеть 192.168.х.х (внутренняя) и 10.70.х.х (провайдер). Из внутренней нет доступа к ресурсам прова.
-
arachnid
- Модератор
- Сообщения: 1100
- ОС: freeBSD
Re: IPFW2+NAT
сюда набор правил и все изменения, которые вносили
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
-
Dimas
- Сообщения: 137
- Статус: FreeBSD
Re: IPFW2+NAT
Freebsd 6.4
ставлю из портов nat
в /etc не вижу фаила natd.conf в чем может быть проблема ?
ставлю из портов nat
в /etc не вижу фаила natd.conf в чем может быть проблема ?
-
Igor Yakimchuk
- Сообщения: 110
- ОС: FreeBSD
Re: IPFW2+NAT
из портов вообще-то ставится в /usr/local/etc, если не указывалось ничего другого
-
temka-sp
- Сообщения: 17
- ОС: FreeBSD, Windows XP
Re: IPFW2+NAT
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
Igor Yakimchuk писал(а): ↑20.10.2008 17:42из портов вообще-то ставится в /usr/local/etc, если не указывалось ничего другого
Там я проверил в первую очередь ) Удивился что конфига нет и полез в /etc/natd.conf искать и тоже ничего не обнаружил )
сама настройка не вызывает особых вопросов, удивило то что нет конфигурационного фаила и whereis nat не находит его.
-
arachnid
- Модератор
- Сообщения: 1100
- ОС: freeBSD
Re: IPFW2+NAT
2 Dimas - какой нат вы из портов ставили и чем вас natd системный не устраивает?
natd.conf нет - его надо создавать руками, если хотите прописать много параметров и не хотите писать их rc.conf
natd.conf нет - его надо создавать руками, если хотите прописать много параметров и не хотите писать их rc.conf
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
-
Dimas
- Сообщения: 137
- Статус: FreeBSD
Re: IPFW2+NAT
/usr/ports/net-mgmt/nat
Тот что тут ) Наверное вы правы попробую покрутить системный natd
Тот что тут ) Наверное вы правы попробую покрутить системный natd
-
arachnid
- Модератор
- Сообщения: 1100
- ОС: freeBSD
Re: IPFW2+NAT
а описание прочитать не судьба?
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
-
evil
- Сообщения: 149
-
arachnid
- Модератор
- Сообщения: 1100
- ОС: freeBSD
Re: IPFW2+NAT
абсолютно верно!
странно, что сам пропустил мимо и решил рассмотреть попозже...
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
-
Dimas
- Сообщения: 137
- Статус: FreeBSD
Re: IPFW2+NAT
Немного запутался с natd
rl0 192.168.0.125
rl1 213.1.1.1
Делаю так (ядро естественно собрано с поддержкой firewall и nat )
1. ipfw show
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 пинг есть!
Где я накосячил ?

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 any2. 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 пинг есть!
Где я накосячил ?
-
temka-sp
- Сообщения: 17
- ОС: FreeBSD, Windows XP
Re: IPFW2+NAT
ОП. Всем спасибо за наводящие подсказки. Наконец то разобрался чё к чему, всё прекрасно пашет.
-
Dimas
- Сообщения: 137
- Статус: FreeBSD
Re: IPFW2+NAT
Сам написал , сам отвечу
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
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
там же, где и автор топика - правило для ната должно стоят до разрещающего правила всего и вся - ибо обработка в ipfw идет до первого совпадающего правила (в отличии от pf, где идет проверка по всем правилам) - поэтому до правила, перенаправляющего пакеты в нат, дело не доходит
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
-
Dimas
- Сообщения: 137
- Статус: FreeBSD
Re: IPFW2+NAT
Можно закрепить как простенький ман по настройке nat + ipfw ))
-
Dimas
- Сообщения: 137
- Статус: FreeBSD
Re: IPFW2+NAT
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 порту тоже.... в чем ошибка ?
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
Dimas писал(а): ↑01.11.2008 14:10allow 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
Тема миллион раз обсуждаемая и сто раз перелопаченая от и до... неужели пора написать статью по нат и правильной настройке под него IPFW???
И еще в сотый раз - сначала дайверт должен быть в ин, потом идти основные правила, сначала открывающие, потом запрещающие, потом дайверт в аут, потом нафик все закрыть и не маяться... но правильно это делать нужно через skip to. А по настройке IPFW с skip to можно прочитать в ЭТОМ топике. Главное вникнуть в суть ната - все просто.
И еще в сотый раз - сначала дайверт должен быть в ин, потом идти основные правила, сначала открывающие, потом запрещающие, потом дайверт в аут, потом нафик все закрыть и не маяться... но правильно это делать нужно через skip to. А по настройке IPFW с skip to можно прочитать в ЭТОМ топике. Главное вникнуть в суть ната - все просто.
дайте денег на обновление портов :)
-
arachnid
- Модератор
- Сообщения: 1100
- ОС: freeBSD
Re: IPFW2+NAT
Maestro писал(а): ↑06.11.2008 14:18Тема миллион раз обсуждаемая и сто раз перелопаченая от и до... неужели пора написать статью по нат и правильной настройке под него IPFW???
И еще в сотый раз - сначала дайверт должен быть в ин, потом идти основные правила, сначала открывающие, потом запрещающие, потом дайверт в аут, потом нафик все закрыть и не маяться... но правильно это делать нужно через skip to.
да для ната можно и одно правило - а потом уже указываем, кого и что и куда пускаем.
какая разница, на каком этапе разрешать?
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
-
Maestro
- Сообщения: 227
- Статус: ипэшник
- ОС: FreeBSD-6.2 STABLE
Re: IPFW2+NAT
arachnid писал(а): ↑06.11.2008 15:00Maestro писал(а): ↑06.11.2008 14:18Тема миллион раз обсуждаемая и сто раз перелопаченая от и до... неужели пора написать статью по нат и правильной настройке под него IPFW???
И еще в сотый раз - сначала дайверт должен быть в ин, потом идти основные правила, сначала открывающие, потом запрещающие, потом дайверт в аут, потом нафик все закрыть и не маяться... но правильно это делать нужно через skip to.
да для ната можно и одно правило - а потом уже указываем, кого и что и куда пускаем.
какая разница, на каком этапе разрешать?
А Вы реально по работе пользовались IPFW+natd?? Это делается для того, чтобы IPFW обрабатывал пакеты, которые попадают в нат... Короче... Сначала пакет через нат попадает на интерфейс (внешний естественно) потом IPFW смотрит - каким правилам соответствует этот пакет, если правила подошли, то он выпускает его дальше, через нат, если нет, то режет... Не помню если честно точно, в чем была проблема, то ли с инет банками, то ли с ВПН то ли с РАдмином - но пришлось делать именно через скипы и чрез нат... А потом понравилось, и с правилами все проще, ВПН можно пропустить выше ната, IPSEC туда же... ну и плюс проброс по портам через natd.conf... Задач было много, поэтому было избрано именно такое решение, которое, кстати, взято из англицкого хэндбука по IPFW - где все популярно с примерами прописано, что для чего, как и зачем.
ЗЫ - пора учить PF и не маяться с IPFW - хотя привычка - это же дело такое, вот, например, до сих пор курить не могу бросить =)
дайте денег на обновление портов :)
-
arachnid
- Модератор
- Сообщения: 1100
- ОС: freeBSD
Re: IPFW2+NAT
реально пользовался 
не, полагаю, что есть задачи, для которых стандартная конфа не будет работать, но мне с оной столкнуться не довелось
согласен, что более правильно разбить на более мелкие конструкции, но вот для начинающего пусть оно сначала заработает, а уже потом можно и пошлифовать
кстати, пора осваивать ядренный нат для ipfw...
не, полагаю, что есть задачи, для которых стандартная конфа не будет работать, но мне с оной столкнуться не довелось
согласен, что более правильно разбить на более мелкие конструкции, но вот для начинающего пусть оно сначала заработает, а уже потом можно и пошлифовать
кстати, пора осваивать ядренный нат для ipfw...
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
-
Dimas
- Сообщения: 137
- Статус: FreeBSD
Re: IPFW2+NAT
Интерфейсы конечно одинаковые)
(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, через нат почта не идет....