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

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

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

Непрочитанное сообщение sergling » 2010-05-14 13:15:39

Забыл про обратный трафик, проброс портов все же не работает :(

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

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

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

Непрочитанное сообщение terminus » 2010-05-14 14:44:33

В настройках интерфейса em0 параметры txcsum,rxcsum включены?
Если да, то выключите их.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.


Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

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

Непрочитанное сообщение terminus » 2010-05-14 15:25:51

Они по дефотлу могут быть. Посмотрите вывод ifconfig.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

sergling
проходил мимо
Сообщения: 8
Зарегистрирован: 2010-05-14 11:12:21

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

Непрочитанное сообщение sergling » 2010-05-14 15:55:19

точно, было включено, в статье как раз вЫключается, я подумал что включается, почитал документацию и не стал добавлять. Спасибо добрый человек!!!


Аватара пользователя
Dwolfix
рядовой
Сообщения: 28
Зарегистрирован: 2010-06-02 7:44:38
Откуда: Орск
Контактная информация:

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

Непрочитанное сообщение Dwolfix » 2010-06-02 7:55:48

Доброго всем дня! Разбираюсь (тщетно покуда) с пассивным ftp, когда клиенты сидят за nat'ом. Открывать для них порты в диапазоне 1024-65535 не есть повышение секьюрности. Понимаю, что дело в создании динамических правил, а вот реализовать их не получается. Перерыл много чего в поисках решения. Если кто сталкивался с подобной проблемой - отпишитесь, пожалуйста. Буду весьма признателен за любую информацию!
Бороться за знания, терзать препятствия, аки волк!

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

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

Непрочитанное сообщение terminus » 2010-06-02 10:19:04

Dwolfix писал(а):Доброго всем дня! Разбираюсь (тщетно покуда) с пассивным ftp, когда клиенты сидят за nat'ом
В статье было упоминание про хелперы libalias.
Подгрузите модуль alias_ftp.ko (или вручную через kldload alias_ftp.ko или через /boot/loader.conf alias_ftp_load="YES") и счастье наступит.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Гость
проходил мимо

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

Непрочитанное сообщение Гость » 2010-06-02 13:48:11

Доброго времени суток!
Большое спасибо автору за статью.
Попробовал все сделать точно так, как в первом примере. Пересобрал ядро, переписал конфиг файрвола.
Сложилась такая странная ситуация: Трафик через NAT из внутренней сети и в неё бегает, но если я на сервере запускаю что-то, что пытается с самого сервака вылезти в сеть (portsnap fetch или makeinstal clean) система уходит в перезагрузку с паникой ядра fatal trap 12 :cry: .
Версия системы Freebsd 8.0-RELEASE #7
Поиск по форуму ничего не дал. По гуглю пока тоже.
Причём, если я убираю правило форвандинга в нат ( add 10130 nat 1 ip from any to any via em0) и добавляю allow ip from any to any всё кроме ната работает и в панику ядра не выпадает.

crx
рядовой
Сообщения: 10
Зарегистрирован: 2010-06-02 13:29:50

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

Непрочитанное сообщение crx » 2010-06-02 14:16:11

Извините, предыдущее сообщение от меня. Забыл зайти.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

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

Непрочитанное сообщение terminus » 2010-06-02 14:16:45

используются ли правила с директивой limit?
http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/144187

Еще один вариант:
http://lists.freebsd.org/pipermail/free ... 04257.html
Переходите на 8.1-PRERELASE
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

crx
рядовой
Сообщения: 10
Зарегистрирован: 2010-06-02 13:29:50

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

Непрочитанное сообщение crx » 2010-06-02 14:31:38

Нет, не используются.
Вот список правил:

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

100 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
1040 allow ip from any to any via stge0
10130 nat 1 ip from any to any via em0
65535 deny ip from any to any
em0 - внешний интерфейс (инет)
stge0 - внутренний (локалка)
Настройка ната

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

nat 1 config log if em0 reset same_ports deny_in
По сути, я просто переписал Ваш первый пример. Учусь на кошках, так сказать :smile:

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

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

Непрочитанное сообщение terminus » 2010-06-02 14:37:46

Или переходите на 8.1 или "переверните" схему подключения - используйте stge0 со стороны инета.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

crx
рядовой
Сообщения: 10
Зарегистрирован: 2010-06-02 13:29:50

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

Непрочитанное сообщение crx » 2010-06-02 14:50:42

Перевернул
Спасибо огромное! Всё заработало :good:

Аватара пользователя
Dwolfix
рядовой
Сообщения: 28
Зарегистрирован: 2010-06-02 7:44:38
Откуда: Орск
Контактная информация:

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

Непрочитанное сообщение Dwolfix » 2010-06-02 19:25:40

terminus писал(а):
Dwolfix писал(а):Доброго всем дня! Разбираюсь (тщетно покуда) с пассивным ftp, когда клиенты сидят за nat'ом
В статье было упоминание про хелперы libalias.
Подгрузите модуль alias_ftp.ko (или вручную через kldload alias_ftp.ko или через /boot/loader.conf alias_ftp_load="YES") и счастье наступит.
А эта процедура разве и к пассивным ftp-сессиям относится? Попробовал загрузить. Вот часть конфига ipfw, отвечающая за работу ftp:

#!/bin/sh
cmd="/sbin/ipfw -q add"
...
lan="em0"
...
#FTP
$cmd 03900 allow tcp from 192.168.1.1 1024-65535 to any 20,21 via $lan
$cmd 04000 allow tcp from any 20,21 to 192.168.1.1 1024-65535 via $lan
...
$cmd 50000 deny log ip from any to any


А вот часть лога после попытки установить ftp-соединение с хостом, на котором ftp- сервер работает в пассивном режиме в диапазоне 50000-50100:

Jun 2 22:00:25 ns1 kernel: ipfw: 50000 Deny TCP 192.168.1.1:56363 91.207.143.4:50060 in via em0
Jun 2 22:00:34 ns1 last message repeated 2 times
Jun 2 22:09:21 ns1 kernel: ipfw: 50000 Deny TCP 192.168.1.1:56372 91.207.143.4:50086 in via em0
Jun 2 22:09:30 ns1 last message repeated 2 times


Вариант конфига ipfw, при котором все работает:

#FTP
$cmd 03900 allow tcp from 192.168.1.1 1024-65535 to any 20,21,1024-65535 via $lan
$cmd 04000 allow tcp from any 20,21,1024-65535 to 192.168.1.1 1024-65535 via $lan


Но, как я уже говорил, диапазон исходящих портов 1024-65535 слишком либерален.
Бороться за знания, терзать препятствия, аки волк!

raven502
проходил мимо

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

Непрочитанное сообщение raven502 » 2010-06-09 11:37:58

Здравствуйте. Возникла следующая проблема:
Есть два сетевых интерфейса em0 и em1 (согласно примеру 4).
em0 - смотрит на одного провайдера
em1- смотрит на второго провайдера
На сервере запущен сайт. При попытке стучаться к сайту по первому интерфейсу все работает, на него настроен дефаулт роут. По второму интерфейсу пакет доходит до сервера, но сервер пытается отправить ответ опять же по дефаулт роуту. Как научить сервер что мол пришел пакет через первый интерфейс посылай ответ по одному пути, а пришел со второго так и посылай уже через другой путь. Как добиться толку, хочется ослабить нагрузку на первый канал?
ipfw настроен по 4 примеру.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

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

Непрочитанное сообщение terminus » 2010-06-09 11:47:40

Уточните схему - сколько у вас сетевых интерфейсов? Только 2 или 3?

Я недавно вот такой вариант предлагал товарищу в соседней теме:
http://forum.lissyara.su/viewtopic.php?f=4&t=26680

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

add 1100 skipto 5000 tag 1 ip from any to any via em0 keep-state
add 1200 skipto 5000 tag 2 ip from any to any via em1 keep-state

add 5000 allow ip from any to any in

add 6000 fwd 1.2.3.4 ip from any to any out tagged 1
add 7000 fwd 5.6.7.8 ip from any to any out tagged 2
Попробуйте, может зараьотает.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
ADRE
майор
Сообщения: 2645
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

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

Непрочитанное сообщение ADRE » 2010-06-09 11:48:07

а какже forward? не поможет?
//del

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

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

Непрочитанное сообщение terminus » 2010-06-09 11:52:52

fwd поможет, но там с keep-state надо замарачиваться.
в примере выше сделано, но не знаю будет ли работать...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

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

Непрочитанное сообщение terminus » 2010-06-09 11:57:26

хотя похоже что не заработает....

Такую же схему предлагал nuclight здесь
http://nuclight.livejournal.com/124348.html
и писал, что чтобы оно заработало надо исходники править...
Приведенный в посте пример того, как на динамических правилах сделать аналог reply-to в pf, на самом деле, не работает. В исходниках был обнаружен запрет специально именно этого случая в мохнатом 2000 году из-за какой-то паники ядра на тех версиях. Что давно уже не актуально, но это, конечно же, поправить забыли. Патчится одной строчкой - открываете /sys/netinet/ip_fw2.c, находите слова case O_FORWARD_IP: (конкретный патч не приведу, зависит от версии системы). И вот там чуть ниже в строчке кусок

if (!q || dyn_dir == MATCH_FORWARD)

надо заменить на

if (sa->sin_port && (!q || dyn_dir == MATCH_FORWARD))
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
Dwolfix
рядовой
Сообщения: 28
Зарегистрирован: 2010-06-02 7:44:38
Откуда: Орск
Контактная информация:

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

Непрочитанное сообщение Dwolfix » 2010-06-09 12:01:09

Так и не получилось с пассивным ftp ничего сотворить.
Бороться за знания, терзать препятствия, аки волк!

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

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

Непрочитанное сообщение terminus » 2010-06-09 12:09:11

зачем вы разрешаете диапазоны для ftp на отдельных правилах?
Эти разрешение стоят до или после правил с натом?
Вы можете прочитать свой конфиг и однозначно сказать что куда идет? Если нет, то зачем такой сложный? :pardon:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
Dwolfix
рядовой
Сообщения: 28
Зарегистрирован: 2010-06-02 7:44:38
Откуда: Орск
Контактная информация:

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

Непрочитанное сообщение Dwolfix » 2010-06-09 12:23:14

Конфиг не такой уж сложный, правила для сервисов (www, dns, ftp и т.д.) располагаются до правил ната. Отдельные разрешения заведены для удобства настройки и контроля. Неоднозначной работы ipfw при таком конфиге быть не может. Все, что нужно открыто, остальное закрыто, как снаружи, так и изнутри сети. Вопрос состоял в другом - существует ли способ не открывать для пассивных ftp-сессий такие "ворота", используя механизмы автоматической подстройки ipfw, если таковые имеются.
Бороться за знания, терзать препятствия, аки волк!

Аватара пользователя
Dwolfix
рядовой
Сообщения: 28
Зарегистрирован: 2010-06-02 7:44:38
Откуда: Орск
Контактная информация:

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

Непрочитанное сообщение Dwolfix » 2010-06-09 12:27:35

На http://forum.lissyara.su/viewtopic.php?f=8&t=18943 уже обсуждали эту тему
Бороться за знания, терзать препятствия, аки волк!

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

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

Непрочитанное сообщение terminus » 2010-06-09 12:30:01

у меня работает alias_ftp.ko - никаких проблем с пассивными/активными FTP.

Минимальный конфиг что-то вроде:

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

add 1040 allow ip from any to any via fxp0
nat 1 config log if em0 reset same_ports deny_in
add 10130 nat 1 ip from any to any via em0
add 65534 deny all from any to any
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.