Подробное руководство по ipfw nat

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
METAJIJI
рядовой
Сообщения: 19
Зарегистрирован: 2009-09-08 21:12:05

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение METAJIJI » 2013-04-02 12:44:34

Да тоже так думал, до сих пор не могу понять зачем эта опция вообще и почему нет защиты от дурака, при одновременном использовании redirect_... и deny_in :)

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

risk94
лейтенант
Сообщения: 831
Зарегистрирован: 2007-06-01 19:27:51

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение risk94 » 2013-04-02 18:20:19

ipfw и дураки не совместимы по определению! ))

Sabrewulf
рядовой
Сообщения: 13
Зарегистрирован: 2013-03-29 10:19:06

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Sabrewulf » 2013-04-15 23:21:05

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

xttm
проходил мимо
Сообщения: 3
Зарегистрирован: 2013-04-29 11:25:07

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение xttm » 2013-05-27 14:12:11

Несколько лет использую на шлюзах OpenBSD и соответственно pf. Вот решил разобраться в настройке FreeBSD с родным фаерволом. Вроде все понятно, но возникло несколько вопросов.

В руководстве по ipfw nat ни слова о фаерволе с сохранением состояния как в хендбуке. Почему не используют эту фичу?

Где-то попадалась инфа (не помню где), что наличие правил с keep-state негативно сказывается на производительности фаервола, так ли это?

Подскажите, стоит ли с этим заморачиваться или использовать фаер без сохранения состояния?

Аватара пользователя
vadim64
майор
Сообщения: 2101
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2013-05-28 15:16:23

xttm писал(а):В руководстве по ipfw nat ни слова о фаерволе с сохранением состояния как в хендбуке. Почему не используют эту фичу?

Где-то попадалась инфа (не помню где), что наличие правил с keep-state негативно сказывается на производительности фаервола, так ли это?
да, работа keep-state под нагрузкой вызывает генерацию целой кучи динамических правил, без тюнинга sysctl может засраться память, закреплённая под эти нужды. если соответствующим образом подтюнить переменные ядра, то всё будет упираться только я объём оперативной памяти
возможно сейчас что то изменилось, но в восьмёрке было так
ведётся ли командой FreeBSD работа по реализации динамического выделения памяти поэ это дело - хз
xttm писал(а):Подскажите, стоит ли с этим заморачиваться или использовать фаер без сохранения состояния?
как часто бы это последнее время не звучало, но тем не менее справедливо: всё зависит от задач
от себя: не сталкивался с реальной ситуацией, когда нельзя было бы отказаться от stateful в пользу статического фаерволла
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

xttm
проходил мимо
Сообщения: 3
Зарегистрирован: 2013-04-29 11:25:07

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение xttm » 2013-05-28 15:57:49

Спасибо, что откликнулись!!! Предварительный конфиг я вчера нарисовал. Если Вас не затруднит, не могли бы взглянуть и указать на возможные ошибки?

net.inet.ip.fw.one_pass=0 (планирую в будущем прикрутить dummynet)

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

    # Удаляем все правила
    ipfw -f flush
    ipfw -f pipe flush
    ipfw -f queue flush
    ipfw -f nat 1 delete
    ipfw -f table all flush

    # Задаем переменные
    ipfw="ipfw add"                                            # префикс для создания правил
    ext_if="em0"                                                # внешний интерфейс
    int_if="em1"                                                 # внутренний интерфейс
    int_ip="192.168.1.5"                                     # внутренний IP
    lan_net="192.168.1.0/24"                              # внутренняя сеть

    # Таблицы
    # Таблица 1 - Немаршрутезируемые сети
    #ipfw table 1 add 192.168.0.0/16
    ipfw table 1 add 172.16.0.0/12
    ipfw table 1 add 10.0.0.0/8
    ipfw table 1 add 127.0.0.0/8
    ipfw table 1 add 0.0.0.0/8
    ipfw table 1 add 169.254.0.0/16
    ipfw table 1 add 192.0.2.0/24
    ipfw table 1 add 204.152.64.0/23
    ipfw table 1 add 224.0.0.0/3


    # Разрешаем весь трафик на петлевом интерфейсе
    $ipfw 00010 allow all from any to any via lo0
    # Запрещаем доступ к lo0 извне
    $ipfw 00011 deny log all from any to 127.0.0.0/8
    # Блокируем исходящие пакеты от lo0
    $ipfw 00012 deny log all from 127.0.0.0/8 to any

    # Запрещаем IPv6
    $ipfw 00020 deny log ipv6 from any to any

    # Антиспуфинг
    $ipfw 00030 deny log ip from any to any not verrevpath in

    # Блокируем любые опоздавшие пакеты (запрещаем фрагменты)
    $ipfw 00040 deny all from any to any frag

    #-----------------------------------------
    # Внутренний интерфейс, исходящий трафик
    #-----------------------------------------

    # Разрешаем весь трафик от шлюза в сеть
    $ipfw 00100 allow ip from any to $lan_net out xmit $int_if

    # Запрещаем и заносим в журнал остальной исходящий трафик
    $ipfw 00199 deny log all from any to any out xmit $int_if

    #-----------------------------------------
    # Внутренний интерфейс, входящий трафик
    #-----------------------------------------

    # Запрещаем все Netbios службы
    $ipfw 00200 deny tcp from any to any 81,137,138,139 in recv $ext_if

    # Разрешаем трафик на внутреннем интерфейсе
    $ipfw 00210 allow tcp from $lan_net to any 21,22,80,443,1025-65535 in recv $int_if
    $ipfw 00220 allow udp from $lan_net to any 53 in recv $int_if
    $ipfw 00230 allow icmp from $lan_net to any icmptypes 0,3,8,11 in recv $int_if

    # Запрещаем и заносим в журнал остальной входящий трафик
    $ipfw 00299 deny log all from any to any in recv $int_if

    #-----------------------------------------
    # Внешний интерфейс, исходящий трафик
    #-----------------------------------------

    # Запрещаем весь исходящий трафик к немаршрутизируемым сетям
    $ipfw 00400 deny log all from any to 'table(1)' out xmit $ext_if

    # NAT
    ipfw nat 1 config log if $ext_if reset same_ports deny_in

    # NAT-им исходящий трафик
    $ipfw 00410 nat 1 ip from any to any out xmit $ext_if

    $ipfw 00420 allow tcp from any to any 21,22,80,443,1025-65535 out xmit $ext_if
    $ipfw 00430 allow udp from any to any 53 out xmit $ext_if
    $ipfw 00440 allow icmp from any to any icmptypes 0,3,8,11 out xmit $ext_if

    # Запрещаем и заносим в журнал остальной исходящий трафик
    $ipfw 00499 deny log all from any to any out xmit $ext_if

    #-----------------------------------------
    # Внешний интерфейс, входящий трафик
    #-----------------------------------------

    # Запрещаем весь входящий трафик с немаршрутизируемых сетей
    $ipfw 00500 deny log all from 'table(1)' to any in recv $ext_if

    # Запрещаем ident
    $ipfw 00510 deny tcp from any to any 113 in recv $ext_if

    # Запрещаем все Netbios службы
    $ipfw 00520 deny tcp from any to any 81,137,138,139 in recv $ext_if

    # SSH
    $ipfw 00530 allow ip from any to me 22 in via $ext_if

    # NAT-им входящий трафик
    $ipfw 00540 nat 1 ip from any to any in recv $ext_if

    $ipfw 00550 allow tcp from any 21,80,443,1025-65535 to any in recv $ext_if
    $ipfw 00560 allow udp from any 53 to any in recv $ext_if
    $ipfw 00570 allow icmp from any to any icmptypes 0,3,8,11 in recv $ext_if

    # Запрещаем и заносим в журнал остальной входящий трафик
    $ipfw 00599 deny log all from any to any in recv $ext_if

    $ipfw 00999 deny log logamount 100 all from any to any
Жаль, что документация по ipfw такая... эммм... неполная, особенно по nat ( http://openbsd.org/faq/pf/index.html для сравнения). Я бы не задавал такие нубские вопросы :oops: .

Спасибо

Аватара пользователя
vadim64
майор
Сообщения: 2101
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение vadim64 » 2013-05-28 16:18:56

очень много букв
прочитайте http://www.lissyara.su/articles/freebsd ... /ipfw_nat/
выберите пример под Вас, начните от простого к сложному
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

xttm
проходил мимо
Сообщения: 3
Зарегистрирован: 2013-04-29 11:25:07

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение xttm » 2013-05-28 16:20:01

Понял, спасибо

Perfectus
рядовой
Сообщения: 30
Зарегистрирован: 2012-11-05 13:54:04

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Perfectus » 2013-09-24 18:44:37

Добрый вечер!
Есть задача:
Настроить два и более каналов интернета на сервере под FreeBSD 9.1
На сервере стоит nginx и крутятся пара сайтов с высоким трафиком.
В данный момент настроен один канал через kernel nat. Все работает отлично. Настраивал по статье terminus'а
Канала в 100 мбит в один прекрасный момент не хватило)
Решил провести еще один. От того же провайдера. Выдали вторую статику, шлюз такой же как и у первого.
Подскажите пожалуйста какой из примеров, которые приведены в статье мне выбрать?
Мне нужно чтобы сайты были доступны с двух ip адресов. Ограничивать скорость для внутренних пользователей, не нужно.

Perfectus
рядовой
Сообщения: 30
Зарегистрирован: 2012-11-05 13:54:04

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Perfectus » 2013-09-28 12:27:50

Выбрал вариант номер 5 т.к. по одному кабелю провайдер не может дать более 100 мбит/с
Сделал все как в статье, за исключением того, что закоммениторвал строки где ограничивается скорость интернета.
Но есть проблема :smile:
Сайты не хотят работать на втором интерфейсе. На первом все хорошо.
Вот мой код:

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

#!/bin/sh
# Вводим переменные:

FwCMD="/sbin/ipfw"               # Расположение бинарника IPFW
LanOUT0="igb0"                   # Внешний интерфейс №1
LanOUT1="igb1"                   # Внешний интерфейс №1
LanIN="re0"                      # Внутренний интерфейс
IpOUT0="1.1.1.2"          # Внешний IP адрес №1
IpOUT1="1.1.1.3"          # Внешний IP адрес №2
IpIN="192.168.1.1"               # Внутренний IP адрес

# Сбрасываем все правила
${FwCMD} -f flush

# Очищаем таблицы с блокируемыми адресами
${FwCMD} -f "table 1" flush
${FwCMD} -f "table 2" flush

${FwCMD} add allow udp from any 53 to any via ${LanOUT0}
${FwCMD} add allow udp from any 53 to any via${LanOUT1}
${FwCMD} add allow udp from any to any 53 via ${LanOUT0}
${FwCMD} add allow udp from any to any 53 via ${LanOUT1}

# Разрешаем весь трафик по внутреннему интерфейсу (петле)
${FwCMD} add 1000 allow ip from any to any via lo0

# Разрешаем весь трафик по tun0 и udp по 1194 порту (для openvpn )
${FwCMD} add 1001 allow udp from any to any 1194
${FwCMD} add 1002 allow all from any to any via tun0

# Запрещаем lo0 куда то лезть и откуда то лезть
${FwCMD} add 1003 deny ip from any to 127.0.0.0/8
${FwCMD} add 1004 deny ip from 127.0.0.0/8 to any

# Запрещаем таблицу с ip адресами с которых неправильно ввели логин или пароль по SSH. BruteBlock для SSH
${FwCMD} add 1005 deny ip from "table(1)" to any in recv ${LanOUT0}
${FwCMD} add 1006 deny ip from "table(1)" to any in recv ${LanOUT1}

# Запрещаем таблицу с ip адресами с которых неправильно ввели логин или пароль к vsftpd
${FwCMD} add 1007 deny ip from "table(2)" to any in recv ${LanOUT0}
${FwCMD} add 1008 deny ip from "table(2)" to any in recv ${LanOUT1}

# Разрешаем некоторые типы ICMP запросов (эхо-запрос, эхо-ответ, время жизни пакета истекло)
${FwCMD} add 1009 allow icmp from any to any icmptypes 0,8,11

${FwCMD} add 1010 prob 0.5 skipto 1060 ip from any to any in recv ${LanIN}

${FwCMD} add 1011 skipto 1040 ip from any to any out xmit ${LanIN} tagged 1
${FwCMD} add 1012 skipto 1060 ip from any to any out xmit ${LanIN} tagged 2

${FwCMD} add 1040 setfib 0 ip from any to any in recv ${LanIN} keep-state
${FwCMD} add 1050 allow ip from any to any via ${LanIN}

${FwCMD} add 1060 setfib 1 ip from any to any in recv ${LanIN} keep-state
${FwCMD} add 1070 allow ip from any to any via ${LanIN}

${FwCMD} add 1080 deny ip from any to 192.168.0.0/16 in recv ${LanOUT0}
${FwCMD} add 1081 deny ip from any to 192.168.0.0/16 in recv ${LanOUT1}
${FwCMD} add 1090 deny ip from 192.168.0.0/16 to any in recv ${LanOUT0}
${FwCMD} add 1091 deny ip from 192.168.0.0/16 to any in recv ${LanOUT1}
${FwCMD} add 10100 deny ip from any to 172.16.0.0/12 in recv ${LanOUT0}
${FwCMD} add 10101 deny ip from any to 172.16.0.0/12 in recv ${LanOUT1}
${FwCMD} add 10110 deny ip from 172.16.0.0/12 to any in recv ${LanOUT0}
${FwCMD} add 10111 deny ip from 172.16.0.0/12 to any in recv ${LanOUT1}
${FwCMD} add 10120 deny ip from any to 10.0.0.0/8 in recv ${LanOUT0}
${FwCMD} add 10121 deny ip from any to 10.0.0.0/8 in recv ${LanOUT1}
${FwCMD} add 10130 deny ip from 10.0.0.0/8 to any in recv ${LanOUT0}
${FwCMD} add 10131 deny ip from 10.0.0.0/8 to any in recv ${LanOUT1}
${FwCMD} add 10140 deny ip from any to 169.254.0.0/16 in recv ${LanOUT0}
${FwCMD} add 10141 deny ip from any to 169.254.0.0/16 in recv ${LanOUT1}
${FwCMD} add 10150 deny ip from 169.254.0.0/16 to any in recv ${LanOUT0}
${FwCMD} add 10151 deny ip from 169.254.0.0/16 to any in recv ${LanOUT1}

# Запрещаем широковещательные icmp на внешнем интерфейсе
#${FwCMD} add 10152 deny log icmp from any to 255.255.255.255 in recv ${LanOUT0}
#${FwCMD} add 10153 deny log icmp from any to 255.255.255.255 out xmit ${LanOUT0}

# Запрещаем широковещательные icmp на внешнем интерфейсе
#${FwCMD} add 10154 deny log icmp from any to 255.255.255.255 in recv ${LanOUT1}
#${FwCMD} add 10155 deny log icmp from any to 255.255.255.255 out xmit ${LanOUT1}

#${FwCMD} pipe 1 config bw 10Mbit/s queue 60 gred 0.002/10/30/0.1
#${FwCMD} queue 1 config pipe 1 queue 60 mask src-ip 0xffffffff gred 0.002/10/30/0.1

#${FwCMD} pipe 2 config bw 10Mbit/s queue 60 gred 0.002/10/30/0.1
#${FwCMD} queue 2 config pipe 2 queue 60 mask dst-ip 0xffffffff gred 0.002/10/30/0.1

#${FwCMD} pipe 3 config bw 20Mbit/s queue 60 gred 0.002/10/30/0.1
#${FwCMD} queue 3 config pipe 3 queue 60 mask src-ip 0xffffffff gred 0.002/10/30/0.1

#${FwCMD} pipe 4 config bw 35Mbit/s queue 60 gred 0.002/10/30/0.1
#${FwCMD} queue 4 config pipe 4 queue 60 mask dst-ip 0xffffffff gred 0.002/10/30/0.1

${FwCMD} nat 1 config log if ${LanOUT0} same_ports reset deny_in \
redirect_port tcp ${IpOUT0}:22 22 \
redirect_port tcp ${IpOUT0}:21 21 \
redirect_port tcp ${IpOUT0}:50000-50500 50000-50500 \
redirect_port tcp ${IpOUT0}:80 80 \
redirect_port tcp ${IpOUT0}:8080 8080 \
redirect_port udp ${IpOUT0}:53 53 \
redirect_port tcp 192.168.1.2:1935 1935 \
redirect_port tcp 192.168.1.2:8134 8134 \
redirect_port tcp 192.168.1.2:8135 8135 \
redirect_port tcp 192.168.1.2:1111 1111

${FwCMD} nat 2 config log if ${LanOUT1} same_ports reset deny_in \
redirect_port tcp ${IpOUT1}:22 22 \
redirect_port tcp ${IpOUT1}:21 21 \
redirect_port tcp ${IpOUT1}:50000-50500 50000-50500 \
redirect_port tcp ${IpOUT1}:80 80 \
redirect_port tcp ${IpOUT1}:8080 8080 \
redirect_port udp ${IpOUT1}:53 53 \
redirect_port tcp 192.168.1.2:1935 1935 \
redirect_port tcp 192.168.1.2:8134 8134 \
redirect_port tcp 192.168.1.2:8135 8135 \
redirect_port tcp 192.168.1.2:1111 1111

#${FwCMD} add 10160 queue 1 ip from any to any out xmit ${LanOUT0}
${FwCMD} add 10170 nat 1 ip from any to any via ${LanOUT0}
${FwCMD} add 10171 skipto 10180 tag 1 ip from any to any in recv ${LanOUT0}
#${FwCMD} add 10180 queue 2 ip from any to any in recv ${LanOUT0}

#${FwCMD} add 10190 queue 3 ip from any to any out xmit ${LanOUT1}
${FwCMD} add 10200 nat 2 ip from any to any via ${LanOUT1}
${FwCMD} add 10201 skipto 10210 tag 2 ip from any to any in recv ${LanOUT1}
#${FwCMD} add 10210 queue 4 ip from any to any in recv ${LanOUT1}

${FwCMD} add 10220 allow all from any to any

${FwCMD} add 65534 deny all from any to any
Вот вывод ipfw show

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

00100    57    19369 allow udp from any 53 to any via igb0
00200    57     4221 allow udp from any to any dst-port 53 via igb0
00300     0        0 allow udp from any to any dst-port 53 via igb1
01000    88     8108 allow ip from any to any via lo0
01001  1118   540580 allow udp from any to any dst-port 1194
01002   771   577753 allow ip from any to any via tun0
01003     0        0 deny ip from any to 127.0.0.0/8
01004     0        0 deny ip from 127.0.0.0/8 to any
01005     0        0 deny ip from table(1) to any in recv igb0
01006     0        0 deny ip from table(1) to any in recv igb1
01007     0        0 deny ip from table(2) to any in recv igb0
01008     0        0 deny ip from table(2) to any in recv igb1
01009    16     1094 allow icmp from any to any icmptypes 0,8,11
01010  9210   832740 prob 0.500000 skipto 1060 ip from any to any in recv re0
01011     0        0 skipto 1040 ip from any to any out xmit re0 tagged 1
01012     0        0 skipto 1060 ip from any to any out xmit re0 tagged 2
01040 21486  3560231 setfib 0 ip from any to any in recv re0 keep-state
01050 14999  2980174 allow ip from any to any via re0
01060 27382  7223851 setfib 1 ip from any to any in recv re0 keep-state
01070 18388  6447122 allow ip from any to any via re0
01080     0        0 deny ip from any to 192.168.0.0/16 in recv igb0
01081     0        0 deny ip from any to 192.168.0.0/16 in recv igb1
01090     3      441 deny ip from 192.168.0.0/16 to any in recv igb0
01091     0        0 deny ip from 192.168.0.0/16 to any in recv igb1
10100     0        0 deny ip from any to 172.16.0.0/12 in recv igb0
10101     0        0 deny ip from any to 172.16.0.0/12 in recv igb1
10110     0        0 deny ip from 172.16.0.0/12 to any in recv igb0
10111     0        0 deny ip from 172.16.0.0/12 to any in recv igb1
10120  1849   153822 deny ip from any to 10.0.0.0/8 in recv igb0
10121  1849   153822 deny ip from any to 10.0.0.0/8 in recv igb1
10130 11201  1148269 deny ip from 10.0.0.0/8 to any in recv igb0
10131  1631   256500 deny ip from 10.0.0.0/8 to any in recv igb1
10140     0        0 deny ip from any to 169.254.0.0/16 in recv igb0
10141     0        0 deny ip from any to 169.254.0.0/16 in recv igb1
10150     0        0 deny ip from 169.254.0.0/16 to any in recv igb0
10151     0        0 deny ip from 169.254.0.0/16 to any in recv igb1
10154     0        0 deny log logamount 1000 icmp from any to 255.255.255.255 in recv igb1
10155     0        0 deny log logamount 1000 icmp from any to 255.255.255.255 out xmit igb1
10170 40113 11466952 nat 1 ip from any to any via igb0
10171     0        0 skipto 10180 tag 1 ip from any to any in recv igb0
10200   853    52803 nat 2 ip from any to any via igb1
10201     0        0 skipto 10210 tag 2 ip from any to any in recv igb1
10220     0        0 allow ip from any to any
65534     0        0 deny ip from any to any
65535    27     1771 deny ip from any to any
Прописываю в nginx.conf чтобы сайт слушался на 1.1.1.3:80 - сайт не открывается. Прописываю 1.1.1.2:80 - все хорошо.
Шлюз по умолчанию задан 1.1.1.1
Втророй также.
setfib1_defaultroute="1.1.1.1"
В чем может быть дело?
Оба ip пингуются извне.

Perfectus
рядовой
Сообщения: 30
Зарегистрирован: 2012-11-05 13:54:04

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение Perfectus » 2013-09-30 7:59:39

Помогите пожалуйста, если не трудно.
От безысходности пришлось изгалиться и настроить репликацию сайта на другой сервер через rsync + MySQL master-master.
Если получиться настроить хотя бы два канала на каждом из серверов, то это надолго решит проблему.

ZULI
рядовой
Сообщения: 23
Зарегистрирован: 2014-04-13 22:20:27

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение ZULI » 2014-04-13 22:25:30

Подскажите, настроил по инструкции http://www.lissyara.su/articles/freebsd ... #example_4 все работает, но из локалки не пингуется внешний мир.

Ковырял и так и этак не могу понять куда дописать чего. Подскажите пожалуйста! Очень нужен пинг с локалки во внешний мир!

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

tcpdump -ni em0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em0, link-type EN10MB (Ethernet), capture size 65535 bytes
22:24:09.499652 IP 192.168.1.10 > 185.12.241.204: ICMP echo request, id 1, seq 783, length 40
22:24:44.497149 IP 192.168.1.10 > 185.12.241.204: ICMP echo request, id 1, seq 790, length 40
22:24:49.497106 IP 192.168.1.10 > 185.12.241.204: ICMP echo request, id 1, seq 791, length 40
а обратных пакетов нет :-(

wooka
проходил мимо
Сообщения: 1
Зарегистрирован: 2014-04-15 1:13:59

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение wooka » 2014-04-15 1:24:52

Perfectus писал(а):Выбрал вариант номер 5 т.к. по одному кабелю провайдер не может дать более 100 мбит/с
Сделал все как в статье, за исключением того, что закоммениторвал строки где ограничивается скорость интернета.
Но есть проблема :smile:
Сайты не хотят работать на втором интерфейсе. На первом все хорошо.

В чем может быть дело?
Оба ip пингуются извне.
в ИП - они из одной подсети, обратитесь к провайдеру или купите хороший роутер.

sergko
рядовой
Сообщения: 24
Зарегистрирован: 2010-01-19 11:44:16

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение sergko » 2014-05-05 11:08:36

ZULI писал(а):Подскажите, настроил по инструкции http://www.lissyara.su/articles/freebsd ... #example_4 все работает, но из локалки не пингуется внешний мир.

Ковырял и так и этак не могу понять куда дописать чего. Подскажите пожалуйста! Очень нужен пинг с локалки во внешний мир!

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

tcpdump -ni em0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em0, link-type EN10MB (Ethernet), capture size 65535 bytes
22:24:09.499652 IP 192.168.1.10 > 185.12.241.204: ICMP echo request, id 1, seq 783, length 40
22:24:44.497149 IP 192.168.1.10 > 185.12.241.204: ICMP echo request, id 1, seq 790, length 40
22:24:49.497106 IP 192.168.1.10 > 185.12.241.204: ICMP echo request, id 1, seq 791, length 40
а обратных пакетов нет :-(
У меня так же было, пока не прописал:

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

# разрешить всем пользователям сети, пользоваться пингом
${fwcmd} add 9005 nat 190 log ip from any to any via ${ext_if} icmptypes 0,3,8,11
# Ставим после nat, иначе не работает
# Разрешаем некоторые типы ICMP запросов
${fwcmd} add 9010 allow log icmp from any to me in via ${ext_if} icmptypes 0,3,8,11
# Все остальные входящие ICMP блокируются
${fwcmd} add 9020 deny log icmp from any to me in via ${ext_if}

artem20041991
мл. сержант
Сообщения: 76
Зарегистрирован: 2010-01-09 18:09:16

Re: Подробное руководство по ipfw nat

Непрочитанное сообщение artem20041991 » 2014-05-28 12:30:23

сделал переброс порта в Интернет с локальной сети, как сделать чтоб нат интернет клиенты видели этот порт через внешний адрес?

shunya
проходил мимо
Сообщения: 4
Зарегистрирован: 2015-09-20 12:26:10

Подробное руководство по ipfw nat

Непрочитанное сообщение shunya » 2015-09-20 13:47:05

Доброго времени суток всем...

Долгое время использовал в качестве ната pf, и все устраивало до тех пор, пока объемы не привысили 2G. На сервере собран lagg 4G и pf максимум продавливает 2.5G при этом загружая проц i7-2600 CPU @ 3.40GHz в 60%. Сначала искал причину в lagg, тюнил, потом понял что не там капаю т.к. iperf продавил 4G на 4 соседних сервера с гигабитными интерфейсами... Затем были попытки тюнинга pf, но они тоже не увенчались успехом. Понял что надо пробовать альтернативы pf т.к. ставить второй сервер не очень хочется и наткнулся на отличную статью Ipfw nat (большое спасибо автору), прочитал и приступил к тестам.

Собрал тестовый стенд, от машины необходимо только натить все в пул Ip, что прилетает на внутренний интервейс из локальной сети. Простой нат в 1 ip работает отлично, но вылезли проблемы с натом в пул адресов. По выводу Ipfw видно что траффик проходит по правилу в мир но счетчик второго правила nat преднозначенному для обратного траффика пустует, ну и соответственно ничего не работает. Прошу помощи аудитории найти причину...

/etc/rc.conf

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

hostname="X-NAT.dev"
gateway_enable="YES"
ifconfig_em0="inet 195.xx.xx.171 netmask 255.255.255.240"
ifconfig_em0_alias0="inet 195.xx.xx.152 netmask 255.255.255.255"
ifconfig_em0_alias1="inet 195.xx.xx.153 netmask 255.255.255.255"
ifconfig_em0_alias2="inet 195.xx.xx.154 netmask 255.255.255.255"
ifconfig_em0_alias3="inet 195.xx.xx.155 netmask 255.255.255.255"
ifconfig_em1="inet 172.16.100.8 netmask 255.255.255.0"
defaultrouter="195.xx.xx.161"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_type="/etc/ipfw-rules"
sshd_enable="YES"
static_routes="local"
route_local="-net 172.16.0.0/16 172.16.100.1"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"
/etc/sysctl.conf

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

net.inet.ip.forwarding=1
net.inet.ip.fw.one_pass=0
/etc/ipfw-rules

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

#
add 1052 prob 0.2 skipto 2052 ip from any to any in recv em1
add 1053 prob 0.4 skipto 2053 ip from any to any in recv em1
add 1054 prob 0.6 skipto 2054 ip from any to any in recv em1
add 1055 prob 1 skipto 2055 ip from any to any in recv em1
#
add 2052 skipto 2500 tag 1 ip from any to any via em1 keep-state
add 2053 skipto 2500 tag 2 ip from any to any via em1 keep-state
add 2054 skipto 2500 tag 3 ip from any to any via em1 keep-state
add 2055 skipto 2500 tag 4 ip from any to any via em1 keep-state
#
add 2500 allow ip from any to any via em1
#
nat 1 config log ip 195.xx.xx.152 reset same_ports deny_in
nat 2 config log ip 195.xx.xx.153 reset same_ports deny_in
nat 3 config log ip 195.xx.xx.154 reset same_ports deny_in
nat 4 config log ip 195.x.x.155 reset same_ports deny_in
#
add 10101 nat 1 ip from any to any out xmit em0 tagged 1
add 10102 nat 1 ip from any to 195.xx.xx.152 in recv em0
add 10201 nat 2 ip from any to any out xmit em0 tagged 2
add 10202 nat 2 ip from any to 195.xx.xx.153 in recv em0
add 10301 nat 3 ip from any to any out xmit em0 tagged 3
add 10302 nat 3 ip from any to 195.xx.xx.154 in recv em0
add 10401 nat 4 ip from any to any out xmit em0 tagged 4
add 10402 nat 4 ip from any to 195.xx.xx.155 in recv em0
#
add 20000 allow all from any to any
ipfw -a list

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

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
00400    0      0 deny ip from any to ::1
00500    0      0 deny ip from ::1 to any
00600    0      0 allow ipv6-icmp from :: to ff02::/16
00700    0      0 allow ipv6-icmp from fe80::/10 to fe80::/10
00800    0      0 allow ipv6-icmp from fe80::/10 to ff02::/16
00900    0      0 allow ipv6-icmp from any to any ip6 icmp6types 1
01000    0      0 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
01052  250  29909 prob 0.200000 skipto 2052 ip from any to any in recv em1
01053  423  57426 prob 0.400000 skipto 2053 ip from any to any in recv em1
01054  405  57273 prob 0.600000 skipto 2054 ip from any to any in recv em1
01055  252  27379 skipto 2055 ip from any to any in recv em1
02052  586  90460 skipto 2500 tag 1 ip from any to any via em1 keep-state
02053  875 125494 skipto 2500 tag 2 ip from any to any via em1 keep-state
02054  751 103885 skipto 2500 tag 3 ip from any to any via em1 keep-state
02055  450  23961 skipto 2500 tag 4 ip from any to any via em1 keep-state
02500 1390 181145 allow ip from any to any via em1
10101  236  36450 nat 1 ip from any to any out xmit em0 tagged 1
10102    0      0 nat 1 ip from any to 195.45.42.152 in recv em0
10201  437  62583 nat 2 ip from any to any out xmit em0 tagged 2
10202    0      0 nat 2 ip from any to 195.45.42.153 in recv em0
10301  375  51874 nat 3 ip from any to any out xmit em0 tagged 3
10302    0      0 nat 3 ip from any to 195.45.42.154 in recv em0
10401  224  11748 nat 4 ip from any to any out xmit em0 tagged 4
10402    0      0 nat 4 ip from any to 195.45.42.155 in recv em0
20000 3039 286960 allow ip from any to any
65535   30   1623 deny ip from any to any

dimidrol80
рядовой
Сообщения: 38
Зарегистрирован: 2008-06-07 17:50:21
Контактная информация:

Подробное руководство по ipfw nat

Непрочитанное сообщение dimidrol80 » 2015-09-28 16:51:41

shunya,
У вас ошибка в том что правило надо размещать в самом конце списка точно после всех натов

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

add 2500 allow ip from any to any via em1 

shunya
проходил мимо
Сообщения: 4
Зарегистрирован: 2015-09-20 12:26:10

Подробное руководство по ipfw nat

Непрочитанное сообщение shunya » 2015-10-02 21:38:03

dimidrol80 писал(а):shunya,
У вас ошибка в том что правило надо размещать в самом конце списка точно после всех натов

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

add 2500 allow ip from any to any via em1 
em1 это интерфейс локальной сети и правило 2500 тут необходимо чтоб обеспечить выход траффика из сети преднозначенного для ната из прохода IN после применения tag. В данной схемке у меня получается что траффик вылетает в мир, но обратно не проходит по nat правилам преднозначенным для em0(интернет интерфейс).

dimidrol80
рядовой
Сообщения: 38
Зарегистрирован: 2008-06-07 17:50:21
Контактная информация:

Подробное руководство по ipfw nat

Непрочитанное сообщение dimidrol80 » 2015-10-06 0:32:01

shunya, Согласен моя ошибка немного не досмотрел.
Если честно то для начала давайте все таки настраивать правила фаервола с простейшего примера.
1. уберите skip
2. настройте нат для em0 без алиасов
3. нат у вас скомпилен с ядром или подгружается модулем?

shunya
проходил мимо
Сообщения: 4
Зарегистрирован: 2015-09-20 12:26:10

Подробное руководство по ipfw nat

Непрочитанное сообщение shunya » 2015-10-20 22:12:24

Да да, нат вкомпилен в ядро. Без алиасов и skip натит без проблем в один Ip. А вы используете у себя нат в несколько ip?

dimidrol80
рядовой
Сообщения: 38
Зарегистрирован: 2008-06-07 17:50:21
Контактная информация:

Подробное руководство по ipfw nat

Непрочитанное сообщение dimidrol80 » 2015-10-21 15:57:45

да я использую нат в несколько IP только у меня все построено на виланах.

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

{IPFW} check-state
{IPFW} setfib 1 ip from 192.168.3.0/24 to any in recv vlan3
{IPFW} setfib 1 ip from 192.168.4.0/24 to any in recv vlan4
{IPFW} setfib 1 ip from table(20) to any in recv vlan2
{IPFW} setfib 1 ip from 192.168.2.0/24 to any in recv vlan2
{IPFW} setfib 0 ip from 192.168.2.142 to any in recv vlan2
{IPFW} setfib 0 ip from 192.168.2.200 to any in recv vlan2
{IPFW} setfib 0 ip from 192.168.2.12 to any in recv vlan2
{IPFW} setfib 0 ip from 192.168.2.69 to any in recv vlan2
{IPFW} setfib 0 ip from 192.168.2.110 to any in recv vlan2
{IPFW} setfib 0 ip from 192.168.2.141 to any in recv vlan2
{IPFW} setfib 0 ip from table(21) to any in recv vlan2
{IPFW} deny log logamount 100 ip from table(10) to me
{IPFW} allow ip from any to any via vlan2
{IPFW} allow ip from any to any via vlan3
{IPFW} allow ip from any to any via vlan4
{IPFW} allow ip from any to any via lo0
{IPFW} deny ip from any to 127.0.0.0/8
{IPFW} deny ip from 127.0.0.0/8 to any
{IPFW} allow udp from any 53 to my_out_ip_setfib0 in via vlan10
{IPFW} allow udp from my_out_ip_setfib0 to any dst-port 53 out via vlan10
{IPFW} allow udp from any 53 to my_out_ip_setfib1 in via vlan11
{IPFW} allow udp from my_out_ip_setfib1 to any dst-port 53 out via vlan11
{IPFW} allow udp from me to any dst-port 67 out via vlan10 setup keep-state
{IPFW} allow udp from me to any dst-port 67 out via vlan11 setup keep-state
{IPFW} allow udp from me to any dst-port 67,68 out via vlan2
{IPFW} allow udp from any 67,68 to me out via vlan2
{IPFW} allow udp from me to any dst-port 67,68 out via vlan3
{IPFW} allow udp from any 68,67 to me out via vlan3
{IPFW} allow udp from me to any dst-port 67,68 out via vlan4
{IPFW} allow udp from any 68,67 to me out via vlan4
{IPFW} allow tcp from me to any dst-port 80 out via vlan10 setup keep-state
{IPFW} allow tcp from me to any dst-port 80 out via vlan11 setup keep-state
{IPFW} allow tcp from me to any dst-port 443 out via vlan10 setup keep-state
{IPFW} allow tcp from me to any dst-port 443 out via vlan11 setup keep-state
{IPFW} allow tcp from me to any dst-port 25 out via vlan10 setup keep-state
{IPFW} allow tcp from me to any dst-port 25 out via vlan11 setup keep-state
{IPFW} allow tcp from me to any dst-port 110 out via vlan10 setup keep-state
{IPFW} allow tcp from me to any dst-port 110 out via vlan11 setup keep-state
{IPFW} allow tcp from me to any out via vlan10 setup uid root keep-state
{IPFW} allow tcp from me to any out via vlan11 setup uid root keep-state
{IPFW} allow icmp from me to any out keep-state
{IPFW} allow tcp from me to any dst-port 37 out via vlan10 setup keep-state
{IPFW} allow tcp from me to any dst-port 119 out via vlan10 setup keep-state
{IPFW} allow tcp from me to any dst-port 22 out via vlan10 setup keep-state
{IPFW} allow tcp from me to any dst-port 22 out via vlan11 setup keep-state
{IPFW} allow tcp from me to any dst-port 43 out via vlan10 setup keep-state
{IPFW} allow udp from me to any dst-port 123 out via vlan10 setup keep-state
{IPFW} allow ip from 192.168.3.0/24 to 192.168.2.0/24
{IPFW} allow ip from 192.168.2.0/24 to 192.168.3.0/24
{IPFW} deny ip from 172.16.0.0/12 to any in via vlan10
{IPFW} deny ip from 10.0.0.0/8 to any in via vlan10
{IPFW} deny ip from 169.254.0.0/16 to any in via vlan10
{IPFW} deny ip from 192.0.2.0/24 to any in via vlan10
{IPFW} deny ip from 204.152.64.0/23 to any in via vlan10
{IPFW} deny ip from 224.0.0.0/3 to any in via vlan10
{IPFW} deny ip from 172.16.0.0/12 to any in via vlan11
{IPFW} deny ip from 10.0.0.0/8 to any in via vlan11
{IPFW} deny ip from 169.254.0.0/16 to any in via vlan11
{IPFW} deny ip from 192.0.2.0/24 to any in via vlan11
{IPFW} deny ip from 204.152.64.0/23 to any in via vlan11
{IPFW} deny ip from 224.0.0.0/3 to any in via vlan11
{IPFW} deny tcp from any to any dst-port 113 in via vlan10
{IPFW} deny tcp from any to any dst-port 113 in via vlan11
{IPFW} deny log logamount 100 ip from any to me dst-port 161 in via vlan10
{IPFW} deny log logamount 100 ip from any to me dst-port 161 in via vlan11
{IPFW} deny tcp from any to any dst-port 137 in via vlan10
{IPFW} deny tcp from any to any dst-port 138 in via vlan10
{IPFW} deny tcp from any to any dst-port 139 in via vlan10
{IPFW} deny tcp from any to any dst-port 81 in via vlan10
{IPFW} deny tcp from any to any dst-port 137 in via vlan11
{IPFW} deny tcp from any to any dst-port 138 in via vlan11
{IPFW} deny tcp from any to any dst-port 139 in via vlan11
{IPFW} deny tcp from any to any dst-port 81 in via vlan11
{IPFW} deny log logamount 100 ip from any to me dst-port 5006 in via vlan10
{IPFW} deny log logamount 100 ip from any to me dst-port 5006 in via vlan11
{IPFW} deny log logamount 100 tcp from table(15) to any dst-port 25 out via vlan10
{IPFW} deny log logamount 100 tcp from 192.168.3.0/24 to any dst-port 25 out via vlan10
{IPFW} deny log logamount 100 tcp from not 192.168.4.88 to any dst-port 25 out via vlan10
{IPFW} allow log logamount 100 ip from table(14) to my_out_ip_setfib0 dst-port 3306 in via vlan10
{IPFW} allow log logamount 100 ip from table(14) to my_out_ip_setfib0 dst-port 3306 in via vlan11
{IPFW} deny ip from any to me dst-port 3306 in via vlan10
{IPFW} deny ip from any to me dst-port 3306 in via vlan11
{IPFW} allow log logamount 100 ip from table(14) to me dst-port 5060 in via vlan10
{IPFW} allow log logamount 100 ip from me to any dst-port 5060 out via vlan10
{IPFW} allow log logamount 100 ip from table(14) to me dst-port 5061 in via vlan10
{IPFW} allow log logamount 100 ip from table(14) to me src-port 5061 in via vlan10
{IPFW} allow log logamount 100 ip from me to any dst-port 5061 out via vlan10
{IPFW} allow udp from 192.168.2.0/24 to me dst-port 10-65535 in via vlan2
{IPFW} allow udp from 192.168.3.0/24 to me dst-port 10-65535 in via vlan3
{IPFW} allow udp from 192.168.4.0/24 to me dst-port 10-65535 in via vlan4
{IPFW} deny log logamount 100 ip from any to me src-port 5060 in via vlan10
{IPFW} deny log logamount 100 ip from any to me src-port 5061 in via vlan10
{IPFW} deny log logamount 100 ip from any to me src-port 5040 in via vlan10
{IPFW} deny log logamount 100 ip from any to me src-port 5060 in via vlan11
{IPFW} deny log logamount 100 ip from any to me src-port 5061 in via vlan11
{IPFW} deny log logamount 100 ip from any to me src-port 5040 in via vlan11
{IPFW} deny log logamount 100 ip from any to me dst-port 5060 in via vlan10
{IPFW} deny log logamount 100 ip from any to me dst-port 5061 in via vlan10
{IPFW} deny log logamount 100 ip from any to me dst-port 5040 in via vlan10
{IPFW} deny log logamount 100 ip from any to me dst-port 5060 in via vlan11
{IPFW} deny log logamount 100 ip from any to me dst-port 5061 in via vlan11
{IPFW} deny log logamount 100 ip from any to me dst-port 5040 in via vlan11
{IPFW} allow log logamount 100 ip from any to my_out_ip_setfib0 src-port 5060,5061,7070-7089 keep-state
{IPFW} deny log logamount 100 ip from any to me dst-port 5038 in via vlan10
{IPFW} deny log logamount 100 ip from any to me dst-port 5038 in via vlan11
{IPFW} allow tcp from any to me dst-port 80 in via vlan10 setup limit src-addr 20
{IPFW} allow tcp from any to me dst-port 80 in via vlan11 setup limit src-addr 20
{IPFW} allow tcp from any to me src-port 443 in via vlan10 setup limit src-addr 10
{IPFW} allow tcp from any to me src-port 443 in via vlan11 setup limit src-addr 10
{IPFW} allow tcp from any to me dst-port 22 in via vlan10 setup keep-state
{IPFW} allow tcp from any to me dst-port 22 in via vlan11 setup keep-state
{IPFW} allow tcp from any to my_out_ip_setfib0 dst-port 25 via vlan10 setup limit src-addr 10
{IPFW} allow tcp from any to my_out_ip_setfib1 dst-port 25 via vlan11 setup limit src-addr 10
{IPFW} allow tcp from any to my_out_ip_setfib0 dst-port 143 via vlan10 setup limit src-addr 10
{IPFW} allow tcp from any to my_out_ip_setfib0 dst-port 110 via vlan10 setup limit src-addr 10
{IPFW} nat 2 ip from table(20) to any out via vlan11
{IPFW} nat 2 ip from table(21) to any out via vlan11
{IPFW} nat 1 tag 8 tcp from table(3) to any dst-port 1723 out recv vlan2 xmit vlan10
{IPFW} nat 1 tag 8 gre from table(3) to any out recv vlan2 xmit vlan10
{IPFW} nat 1 tag 8 gre from my_out_ip_setfib0 to any out via vlan10
{IPFW} allow tcp from my_out_ip_setfib0 to any dst-port 1723 out via vlan10 tagged 8
{IPFW} allow gre from my_out_ip_setfib0 to any out via vlan10 tagged 8
{IPFW} nat 1 tag 8 tcp from any 1723 to my_out_ip_setfib0 in via vlan10
{IPFW} nat 1 tag 8 gre from any to my_out_ip_setfib0 in via vlan10
{IPFW} allow tcp from any 1723 to table(3) in via vlan10 tagged 8
{IPFW} allow gre from any to table(3) in via vlan10 tagged 8
{IPFW} nat 2 tag 8 tcp from table(3) to any dst-port 1723 out recv vlan2 xmit vlan11
{IPFW} nat 2 tag 8 gre from table(3) to any out recv vlan2 xmit vlan11
{IPFW} nat 2 tag 8 gre from my_out_ip_setfib1 to any out via vlan11
{IPFW} allow tcp from my_out_ip_setfib1 to any dst-port 1723 out via vlan11 tagged 8
{IPFW} allow gre from my_out_ip_setfib1 to any out via vlan11 tagged 8
{IPFW} nat 2 tag 8 tcp from any 1723 to my_out_ip_setfib1 in via vlan11
{IPFW} nat 2 tag 8 gre from any to my_out_ip_setfib1 in via vlan11
{IPFW} allow tcp from any 1723 to table(3) in via vlan11 tagged 8
{IPFW} allow gre from any to table(3) in via vlan11 tagged 8
{IPFW} allow tcp from my_out_ip_setfib0 1723 to any out via vlan10
{IPFW} allow gre from my_out_ip_setfib0 to any out via vlan10
{IPFW} allow tcp from any to my_out_ip_setfib0 dst-port 1723 in via vlan10
{IPFW} allow gre from any to my_out_ip_setfib0 in via vlan10
{IPFW} allow tcp from my_out_ip_setfib1 1723 to any out via vlan11
{IPFW} allow gre from my_out_ip_setfib1 to any out via vlan11
{IPFW} allow tcp from any to my_out_ip_setfib1 dst-port 1723 in via vlan11
{IPFW} allow gre from any to my_out_ip_setfib1 in via vlan11
{IPFW} allow tcp from my_out_ip_setfib1 1723 to any out via vlan11
{IPFW} allow gre from my_out_ip_setfib1 to any out via vlan11
{IPFW} nat 1 ip from 192.168.2.0/24 to any out via vlan10
{IPFW} nat 2 ip from 192.168.2.0/24 to any out via vlan11
{IPFW} nat 1 ip from 192.168.3.0/24 to any out via vlan10
{IPFW} nat 2 ip from 192.168.3.0/24 to any out via vlan11
{IPFW} nat 1 ip from 192.168.4.0/24 to any out via vlan10
{IPFW} nat 2 ip from 192.168.4.0/24 to any out via vlan11
{IPFW} nat 1 ip from any to my_out_ip_setfib0 in recv vlan10
{IPFW} nat 2 ip from any to my_out_ip_setfib1 in recv vlan11
{IPFW} allow icmp from table(11) to me
{IPFW} allow tcp from me to any dst-port 80 out via vlan10 setup keep-state
{IPFW} allow tcp from me to any dst-port 80 out via vlan11 setup keep-state
{IPFW} allow tcp from any to my_out_ip_setfib0 dst-port 25 via vlan10
{IPFW} allow tcp from any to my_out_ip_setfib0 dst-port 143 via vlan10
{IPFW} allow tcp from any to my_out_ip_setfib0 dst-port 110 via vlan10
{IPFW} allow tcp from any to my_out_ip_setfib0 in via vlan10 established
{IPFW} allow tcp from any to my_out_ip_setfib1 in via vlan11 established
{IPFW} allow ip from me to any out via vlan10
{IPFW} allow ip from me to any out via vlan11
{IPFW} deny ip from any to my_out_ip_setfib0 in via vlan10
{IPFW} deny ip from any to my_out_ip_setfib1 in via vlan11
{IPFW} allow log logamount 100 ip from any to any

shunya
проходил мимо
Сообщения: 4
Зарегистрирован: 2015-09-20 12:26:10

Подробное руководство по ipfw nat

Непрочитанное сообщение shunya » 2015-11-01 22:15:49

Ух... спасибо за пример. Долго его разбирал :) У Вас нат вкомпилен или модульный?


usrZorg
проходил мимо
Сообщения: 5
Зарегистрирован: 2011-05-13 9:00:27

Подробное руководство по ipfw nat

Непрочитанное сообщение usrZorg » 2018-03-30 12:12:12

Здравствуйте уважаемые гуру FreeBSD, ipfw и ядерного NAT-а.
Прошу помощи в реализации.
Есть "главный" внешний ip адрес на который подвязана еще подсеть внешний ip-шек.
Есть локальная сеть, которую хочу разделить в целях безопасности на рабочую и общую.
На данный момент все идет через главный внешний ip адрес с одной локальной сети.
Настроен шейпинг, проброс портов и прочие фишки, все работает.
Трафик ходит через один физический интерфейс с двумя vlan-ами.
vlan2 интернет
vlan10 локальная сеть
Хочу сделать так чтобы рабочая сеть vlan10 ходила через внешний ip адрес из выделенной подсети,
а общая сеть vlan20 ходила через другой внешний ip адрес из выделенной подсети.
Прошу помочь хотя бы самым мелким конфигом.
Эти две подсети не должны иметь доступа друг к другу или было бы хорошо давать доступ определенным ip адресам.
После этой модификации (апгрейда сети) планирую добавить еще два vlan-а.
Ддя двух других рабочих подсетей.
Заранее всем спасибо.
Очень прошу помочь.
Всем добра!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Подробное руководство по ipfw nat

Непрочитанное сообщение Alex Keda » 2018-03-30 19:53:53

картинку дайте, а?

в половине случаев, после этого вопроса следует радостный крик - что всё получилось
просто потому что "на пальцах" - это не на бумаге или вообще каком-то носителе =)
Убей их всех! Бог потом рассортирует...