Страница 13 из 31

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

Добавлено: 2010-05-14 13:15:39
sergling
Забыл про обратный трафик, проброс портов все же не работает :(

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

Добавлено: 2010-05-14 14:44:33
terminus
В настройках интерфейса em0 параметры txcsum,rxcsum включены?
Если да, то выключите их.

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

Добавлено: 2010-05-14 15:04:35
sergling
не включал.

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

Добавлено: 2010-05-14 15:25:51
terminus
Они по дефотлу могут быть. Посмотрите вывод ifconfig.

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

Добавлено: 2010-05-14 15:55:19
sergling
точно, было включено, в статье как раз вЫключается, я подумал что включается, почитал документацию и не стал добавлять. Спасибо добрый человек!!!

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

Добавлено: 2010-05-16 13:54:05
krokozjabr

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

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

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

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

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 всё кроме ната работает и в панику ядра не выпадает.

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

Добавлено: 2010-06-02 14:16:11
crx
Извините, предыдущее сообщение от меня. Забыл зайти.

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

Добавлено: 2010-06-02 14:16:45
terminus
используются ли правила с директивой limit?
http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/144187

Еще один вариант:
http://lists.freebsd.org/pipermail/free ... 04257.html
Переходите на 8.1-PRERELASE

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

Добавлено: 2010-06-02 14:31:38
crx
Нет, не используются.
Вот список правил:

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

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:

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

Добавлено: 2010-06-02 14:37:46
terminus
Или переходите на 8.1 или "переверните" схему подключения - используйте stge0 со стороны инета.

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

Добавлено: 2010-06-02 14:50:42
crx
Перевернул
Спасибо огромное! Всё заработало :good:

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

Добавлено: 2010-06-02 19:25:40
Dwolfix
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 слишком либерален.

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

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

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

Добавлено: 2010-06-09 11:47:40
terminus
Уточните схему - сколько у вас сетевых интерфейсов? Только 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
Попробуйте, может зараьотает.

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

Добавлено: 2010-06-09 11:48:07
ADRE
а какже forward? не поможет?

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

Добавлено: 2010-06-09 11:52:52
terminus
fwd поможет, но там с keep-state надо замарачиваться.
в примере выше сделано, но не знаю будет ли работать...

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

Добавлено: 2010-06-09 11:57:26
terminus
хотя похоже что не заработает....

Такую же схему предлагал 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))

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

Добавлено: 2010-06-09 12:01:09
Dwolfix
Так и не получилось с пассивным ftp ничего сотворить.

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

Добавлено: 2010-06-09 12:09:11
terminus
зачем вы разрешаете диапазоны для ftp на отдельных правилах?
Эти разрешение стоят до или после правил с натом?
Вы можете прочитать свой конфиг и однозначно сказать что куда идет? Если нет, то зачем такой сложный? :pardon:

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

Добавлено: 2010-06-09 12:23:14
Dwolfix
Конфиг не такой уж сложный, правила для сервисов (www, dns, ftp и т.д.) располагаются до правил ната. Отдельные разрешения заведены для удобства настройки и контроля. Неоднозначной работы ipfw при таком конфиге быть не может. Все, что нужно открыто, остальное закрыто, как снаружи, так и изнутри сети. Вопрос состоял в другом - существует ли способ не открывать для пассивных ftp-сессий такие "ворота", используя механизмы автоматической подстройки ipfw, если таковые имеются.

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

Добавлено: 2010-06-09 12:27:35
Dwolfix
На http://forum.lissyara.su/viewtopic.php?f=8&t=18943 уже обсуждали эту тему

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

Добавлено: 2010-06-09 12:30:01
terminus
у меня работает 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