Маршрутизация , двойной NAT

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Маршрутизация , двойной NAT

Непрочитанное сообщение RusBiT » 2008-03-02 10:43:30

У интернет провайдера есть внутреннея локальная сеть (диапазоны ,к примеру, 172.16.0.0/16, 84.12.05.65/25 и т.п.).
Моя задача :
1. реализовать клиентам 10.0.0.29 и 10.0.0.8 , доступ в сеть провайдера (через интерфейс 10.0.0.7)
2. клиенту 10.0.0.62 доступ в интернет (через интерфейс 10.0.1.5 (данный интерфейс alias) ) , ресурсы провайдера можно оставить...

map.JPG
Пункт номер 1 я сделал, настроил nat, все работает

fxp0 - смотрит на сеть провайдера

В /etc/rc.conf

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

gateway_enable="YES"
firewall_enable="YES"
firewall_type="open"
natd_enable="YES"
natd_flags="-a ip_провайдера"
#доступ до lan
route add 172.16.0.0/16 ip_шлюза_провайдера
...

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

${fwcmd} add 010 divert 8668 ip from 10.0.0.29 to not 10.0.0.8/8 out xmit fxp0
${fwcmd} add 1010 allow ip from 10.0.0.29 to any
${fwcmd} add 1010 allow ip from any to 10.0.0.29

${fwcmd} add 010 divert 8668 ip from 10.0.0.8 to not 10.0.0.0/8 out xmit fxp0
${fwcmd} add 1010 allow ip from 10.0.0.8 to any
${fwcmd} add 1010 allow ip from any to 10.0.0.8
...
Теперь затруднение идет с пунктом номер 2, не совсем понимаю как поднять второй нат и прописать маршрут до инета :(
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

Хостинговая компания 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/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение dikens3 » 2008-03-02 12:07:59

2-а ната запускаются с помощью скрипта на sh. (кладёшь в /usr/local/etc/rc.d)
Дефолтовым маршрутом назначаешь:
через интерфейс 10.0.1.5
Создаёшь статические маршруты сюда:
У интернет провайдера есть внутреннея локальная сеть (диапазоны ,к примеру, 172.16.0.0/16, 84.12.05.65/25 и т.п.).

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

range_lan_provaider="172.16.0.0/16, 84.12.05.65/25"
clients1="10.0.0.0{8,29}"
clients2="10.0.0.62"
IP1="10.0.0.7"
IP2="10.0.1.5"

# Принимаем входящие пакеты на LAN_Интерфейсе в интернет и к провайдеру.
${fwcmd} add 80 allow ip from ${clients1},${clients2} to ${range_lan_provaider} in via LAN_Интерфейс
${fwcmd} add 90 allow ip from ${clients2} to not ${range_lan_provaider} in via LAN_Интерфейс

# Натим исходящие пакеты от клиентов 1 и 2 в сеть провайдера и интернет
${fwcmd} add 100 divert NAT1 ip from ${clients1},${clients2} to ${range_lan_provaider} out xmit fxp0
${fwcmd} add 110 divert NAT2 ip from ${clients2} to not ${range_lan_provaider} out xmit fxp0

# Разрешаем отправку пакетов в сеть провайдера  и интернет (Нат уже выполнен)
${fwcmd} add 120 allow ip from ${IP1} to ${range_lan_provaider} out xmit fxp0
${fwcmd} add 130 allow ip from ${IP2} to not ${range_lan_provaider} out xmit fxp0

# Производим обратное преобразование по приходу пакета (разначиваем)
${fwcmd} add 140 divert NAT1 ip from ${range_lan_provaider} to ${IP1} in via fxp0
${fwcmd} add 150 divert NAT2 ip from not ${range_lan_provaider} to ${IP2} in via fxp0

# Принимаем входящие пакеты (Тоже после ната) 
${fwcmd} add 160 allow ip from ${range_lan_provaider} to ${clients1},${clients2} in via fxp0
${fwcmd} add 170 allow ip from not ${range_lan_provaider} to ${clients2} in via fxp0

# Разрешаем отправку в нашу сеть пакетов принятых на интерфейсе FXP0 из интернет или провайдера (можно трафик считать так :-) )
${fwcmd} add 170 allow ip from ${range_lan_provaider} to ${clients1},${clients2} recv fxp0 xmit LAN_Интерфейс
${fwcmd} add 180 allow ip from not ${range_lan_provaider} to ${clients2} recv fxp0 xmit LAN_Интерфейс
P.S. И ещё, написал так для большего понимания и больше расписывать не собираюсь, так что проследи по каким правилам пакет уходит и приходит, тогда и вопросов не будет. Для этого существует действие log в правилах.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение RusBiT » 2008-03-02 13:36:32

Спасибо, оч понятно расписал , буду пробовать!
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение RusBiT » 2008-03-03 18:13:13

Помоему divert должен стоят на первом месте?
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение dikens3 » 2008-03-03 18:15:57

RusBiT писал(а):Помоему divert должен стоят на первом месте?
Важно чтобы он работал правильно и в нужном месте, а место уже от построения зависит.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение RusBiT » 2008-03-03 19:23:35

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

${clients1},${clients2}
странно, но выводится только содержимое ${clients1}
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение dikens3 » 2008-03-03 20:54:45

RusBiT писал(а):

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

${clients1},${clients2}
странно, но выводится только содержимое ${clients1}
ipfw show не судьба показать?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение RusBiT » 2008-03-04 6:55:52

Возникла проблема вот с этим правилом. Диверт не происходит.

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

# Производим обратное преобразование по приходу пакета (разначиваем)
${fwcmd} add 140 divert NAT1 ip from ${range_lan_provaider} to ${IP1} in via fxp0
${fwcmd} add 150 divert NAT2 ip from not ${range_lan_provaider} to ${IP2} in via fxp0
Если же указать

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

${fwcmd} add 140 divert NAT1 ip from ${range_lan_provaider} to ${EXT_IP} in via fxp0
то все работает , но всех клиентов пускает в интернет.
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

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

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение Alex Keda » 2008-03-04 8:58:29

как вы все [классический секс] с нумерацией правил... =)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение RusBiT » 2008-03-04 11:05:37

Лис, подскажи где ошибка :)
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение schizoid » 2008-03-04 13:30:07

у тя ж 2 НАТа на разных портах слушают правильно?
первый к примеур диверт 8668, второй 8669... это так, чисто что б уточнить
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение RusBiT » 2008-03-04 21:19:32

Незнаю как даже благодарить dikens3! Помог , спасиб огромное! Все работает.
Неправильно я немного поставленную задачу описал.

Есть еще вопросики:
Как на нате запретить открытые не более 30 TCP сессий на внешнем интерфейсе?
Есть ли в freebsd блокировка отправки пакетов,например, чтоб в секунду отправлялось не больше 500 пакетов.
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение schizoid » 2008-03-04 21:49:48

ну и описал быб че и как ;)
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение RusBiT » 2008-03-05 7:49:33

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

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение dikens3 » 2008-03-05 10:10:12

RusBiT писал(а):Есть еще вопросики:
Как на нате запретить открытые не более 30 TCP сессий на внешнем интерфейсе?
На вход/выход или и то и другое?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение RusBiT » 2008-03-05 13:27:44

Нет, в данном случае нужно только на выход.
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение hizel » 2008-03-05 13:44:40

кол-во одновременных сессий можно ограничить stateful правилами
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение dikens3 » 2008-03-05 16:51:57

Если ты под сессиями имеешь ввиду IP-Адреса, тогда примерно так:

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

01000  26968  1412381 allow ip from me to any limit dst-addr 30
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение RusBiT » 2008-03-05 20:18:43

Вот как устроена вирусная блокировка у провайдера
Блокировка срабатывает при открытии более 600! сессий за 90 секунд... Сессией считается одно уникальное соединение с одного порта пользователя на один порт удаленой машины.
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение hizel » 2008-03-05 20:22:15

это больше смахивает на анализ нетфлов данных
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Маршрутизация , двойной NAT

Непрочитанное сообщение dikens3 » 2008-03-05 21:03:45

RusBiT писал(а):Вот как устроена вирусная блокировка у провайдера
Блокировка срабатывает при открытии более 600! сессий за 90 секунд... Сессией считается одно уникальное соединение с одного порта пользователя на один порт удаленой машины.
Я бы не парился над этим, для небольшой фирмы хватит.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.