The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"IPFW порядок составления, прохождения правил с NAT. Пинги."
Отправлено Evonder, 02-Май-18 11:47 
Добрый день.Начинаю изучать FreeBSD. Пытаюсь разобраться с принципами работы NAT, изучал схему прохождения пакета по стеку ipfw, если для самой машины все более менее ясно, то вот то, как работают правила для NAT я никак понять не могу. Вводные данные:
------------------
rc.conf
ifconfig_re0="inet 192.168.30.254 netmask 255.255.255.0"  #Локальная сеть
ifconfig_re1="DHCP" #Интернет от провайдера работает только при получении настроек по DHCP" #Интернет
firewall_enable="YES"
firewall_script="/etc/rules.fw"
firewall_nat_enable="YES"
gateway_enable="YES"

-----------------
/etc/sysctl.conf
net.inet.ip.fw.one_pass=1
-----------------

rules.fw
fwcmd="ipfw -q add"
ipfw -q -f flush

$fwcmd 00001 allow all from any to any via re0
ipfw nat 1 config log if re1 reset same_ports deny_in
$fwcmd 00100  nat 1 ip from any to any via re1
-----------------------------------------------------------

  
предположим я хочу пропинговать сервер гугла 8.8.8.8 c хоста из внутренней подсети.

Пакет с машины поступает на интерфейс re0 и получает тег in и reciv re0, после чего попадает в подсистему ipfw на вход в IN где пакет пробегает по правилам, проходит ее согласно правилу 00001 (пакет имеет тег reciv re0) после чего попадает в функцию Forward где происходят некие действия и после этого пакет направляется на выход OUT ipfw, где пакету теряет тег IN, получает OUT и тег xmit re1 после чего направляется по правилам IPFW. Пройдя по правилам и дойдя до 00100 пакет будет перенаправлен в модуль NAT где с ним совершатся необходимые действия и он снова вернется в out ipfw, где из-за опции net.inet.ip.fw.one_pass=1 он будет пропущен на "выход" без прохождения цепочки выходных правил.

    Это я так понимаю процесс прохождения пакета по IPFW если где-то не ошибся.
А теперь вопросы по тому, что именно мне не понятно.
  Если я хочу сделать правило пинг для самого гейта, то 2 правила вида:
$fwcmd 00001 pass udp from me to any 53 out via re1
$fwcmd 00001 pass udp from any 53 to me icmptype 0 in via re1
  Дают мне необходимый результат, насколько я понимаю, данные правила должны располагаться выше по порядку чем правило NAT, и тогда пакеты не будут заруливаться на нат.

   Но как быть с правилами пинг с внутреннего хоста на внешний?
Насколько я понимаю, все правила отрабатывают до попадания пакета в в функцию NAT, поскольку после преобразования пакета с подменой адреса источника пакет из-за параметра net.inet.ip.fw.one_pass=1 проходит цепочку out ipfw "насквозь" словно pass all.
  Как тогда должно выглядеть правило для ping с внутренних узлов на внешку?
Дописать такое правило:
  $fwcmd 00002 allow icmp from 192.168.30.10 to any out via re1 setup keep-state

И еще один момент, подскажите по правилу прохождения цепочки правил IPFW, продолжается ли прохождение в случае:
1) для пакета найдено блокирующее правило
2) для пакета найдено разрешающее правило

Извините за сумбур, пытаюсь все переварить. Большое спасибо всем, кто откликнется.


Попробовал прописать вот это правило:
  $fwcmd 00002 allow icmp from 192.168.30.10 to any out via re1 setup keep-state

Смотрю внешний интерфейс  tcpdump -ni re1 icmp
и идут вот такие ответы:
10:57:04.752135 IP 192.168.30.10 > 8.8.8.8: ICMP echo request, id 1, seq 568, length 40

Непонятно почему ip внутренний, а не самого шлюза, т.е. нат получается не работает, и ответы не приходят.

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру