The OpenNET Project / Index page

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



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

Исходное сообщение
"divert_packet: no divert tag"
Отправлено Kris, 13-Ноя-06 21:16 
>>>Кстати я бы ещё проверил ещё раз маску твоей подсети, маска 28
>>>- это вообще говоря 16 адресов, убедись что у тебя туда
>>>попадают все кто нужен.
>>
>>По поводу rc.conf ответ утвердительный :),
>>natd_program="/sbin/natd"
>>natd_enable="YES"
>>natd_interface="vlanX"
>>
>>маска /28, это не бага, это скорее фича :), так и нужно
>>что бы определенная подсеть могла ходить без прокси, причем всеми портами
>>наружу...
>>По поводу
>>$cmd add divert natd all from Х.Х.Х.Х/28 to any via $oif
>>$cmd add divert natd all from Х1.Х1.Х1.Х1/24 to any via $oif
>>$cmd add divert natd all from any to me via $oif
>>Мне кажется не хватает возврата пакетов назад ...
>>Типа
>>$cmd divert natd all from any to any IN via $oif
>За такое правило можно поплатиться тем что кто-то снаружи за твой счёт
>начнёт инетом пользоваться, да и вообще о каких обратных пакетах идёт
>речь?
>Ввот весь путь пакета :
>1. Попал на внутренний интерфейс прошёл проверку по ipfw сработал на правиле
>
>$cmd add divert natd all from Х.Х.Х.Х/28 to any via $oif был
>направлен в программу natd
>2. Программа natd изменила его обратный адрес на внешний адрес твоей машины
>и отдала таблице маршрутизации по этой таблице данный пакет необходимо кинуть
>на твой шлюз, поэтому  система кидает его на шлюз, но
>перед этим опять кидает на ipfw так как такой пакет система
>ещё не обрабатывала (ведь пакет был изменён, адрес же у него
>сменился)
>3. Сработало правило ipfw
>$cmd add pass all from me to any via $oif
>4. Пакет отправлен на твой шлюз
>
>Получение этого же паета:
>1. Получен пакет на внешний интерфейс с адресом назначения твой внешний адрес,
>пакет пропускается через ipfw и срабатывает на правиле $cmd add divert
>natd all from any to me via $oif  перенаправлен в
>программу natd
>2. Программа natd разначивает пакет и видит что он тунельный и просто
>вытаскивает внутренний адрес назначения пакета , меняет адрес назначения со своего
>внешнего на локальный адрес отправителя, затем кидает на таблицу маршрутизации
>3. Система смотрит по таблице маршрутизации что такие пакеты нужно направлять в
>локалку по МАК но перед этим опять кидает его на ipfw,
>так как это уже новый пакет ведь его сгенерила natd то
>его нужно сново проверить.
>4. Проверяется по правилам ipfw и срабатывает на правиле
>$cmd add pass all from any to any via $iif
>где $iif - внутренний интерфейс
>
>Вот и всё, и никакого $cmd add divert natd all from any
>to me via $oif здесь и близко не нужно! Даже наоборот,
>опасно такое делать!
>
>Более подробно написал здесь
>https://www.opennet.ru/openforum/vsluhforumID1/70184.html#4
>
>>По поводу разрешающих и запрещающих правил ....
>>По подробнее если можна ... то есть если я до ната сделаю
>>
>>deny log logamount 100 ip from any to any
>>то пакеты все равно будут попадать на natd ???
>>$cmd add allow any from any
>>у меня и так по умолчанию, поскольку
>>firewall_type="OPEN"
>
>
>Если ты напишешь правило после диверта
>deny log logamount 10000 ip from any to any
>то у тебя сначало сработает диверт и часть пакетов будет обработана natd,
>а потом только сработает твой запрет. Что это означает? А означает
>что твою систему можно бомбить заставляя проц грузиться, а если в
>natd есть какая-то уязвимость по поводу переполнения то можно ею и
>пользоваться, вот что это означает. И толку от такого правила написанного
>в конце всех правил очень мало :).
>Если же ты такое правило напишешь в самом начале, то оно всё
>запретит вообще, даже нат, вообще ничего никуда ходить не будет, все
>пакеты будут убиваться сразу же без каких-то задержек и нагрузка на
>проц будет меньше, да и эффективность защиты выше.
>Поэтому все правила запрета лучше писать до того как они могут сработать
>на natd. Это касается запретов в первую очередь для своих же
>пользователей, елси ты например хочешь кому-то отрезать сеть, то написав правило
>типа
>deny log logamount 1000 ip from кто-то to any
>после ната, ты ему ничего не закроешь, а если напишешь это же
>правило до ната то будешь убивать всё что от него придёт
>ещё до того как это будет перенаправлено на natd. Чувствуешь разницу?
>
>
>А вообще вот тебе мой список правил котрые я использую между прочем
>тоже на FreeBSD 5.4
>
>#Разрешаем лупбек (хотя это правило можно писать где угодно, главное до денаев)
>
>${ipfw} add 30 pass all from any to any via lo0
>
>#Закрываем доступ всех локальных адресов поступающих на внешний интерфейс
>${ipfw} add 200 deny log ip from 192.168.0.0/16 to any in via
>${ifout}
>${ipfw} add 210 deny log ip from 176.16.0.0/12 to any in via
>${ifout}
>${ipfw} add 220 deny log ip from 10.0.0.0/8 to any in via
>${ifout}
>
>#Запрещаем интеренет тем кто не заплатил
>${ipfw} add 301 deny log ip from 192.168.12.12 to any in via
>${ifuser}
>${ipfw} add 302 deny log ip from 192.168.12.15 to any in via
>${ifuser}
>${ipfw} add 303 deny log ip from 192.168.12.35 to any in via
>${ifuser}
>${ipfw} add 304 deny log ip from 192.168.12.102 to any in via
>${ifuser}
>
>#Два правила ната, один от локалки во внешний мир второй от внешнего
>мира к локалке
>${ipfw} add 510 divert natd all from ${ournet} to any via ${ifout}
>
>${ipfw} add 520 divert natd all from any to ${IPout} via ${ifout}
>
>
>#Разрешаем прохождение пакетов участвующих в соединение tcp
>${ipfw} add 600 pass tcp from any to any established
>
>#Разрешаем себе всё на выход через внешней интерфейс
>${ipfw} add 620 pass ip from me to any out xmit  
>${ifout}
>
>#разрешаем пакеты идущие к локалке
>${ipfw} add 710 pass all from any to ${ournet}
>
>#разрешаем всё что ходит по внутреннему интерфейсу
>${ipfw} add 1000 pass all from any to any via ${ifuser}
>
>
>#разрешаем доступ по ssh
>${ipfw} add 3000 pass ip from any to me 22 via ${ifout}
>in
>
>#Запрещаем всё что не попало ни под одно из правил с записью
>в лог
>${ipfw} add 10000 deny log ip from any to any
>
>Вот что я имел ввиду когда говорил почему надо писать правила запрета
>до ната и вообще первыми. Чтоб по ошибке ненужные пакеты не
>попадали в систему.
>
>Кстати я так и не понял, у тебя попрежнему система пишет в
>логах divert_packet: no divert tag ? Вообще-то должно означать что не
>указан интерфейс natd . Может ты всё же ошибся при задании
>интерфейса? Проверь ещё раз что пишет ifconfig? убедись что там есть
>тот интерфейс котрый ты подсовываешь нату. А лучше всего в rc.conf
>проверить что указан именно внешний интерфейс как интерфейс для ната.

Класс ... ответ просто супер. Большой респект за ответ.
По поводу интерфейса для natd в rc.conf то там все в порядке. Я прочему то начинаю склонятся к мысли, что divert не понимает какие то особенности 2-го уровня модели ОСИ.
У меня на одной сетевухе два вилана --- два интерфейса, на которых крутится вся кухня с маршрутизацией.
Все работает, а эти сообщения валятся иногда, но с завидным постоянством. Поэтому на НАТД
я грешить бы не стал ... А вот с правилами ipfw надо кардинально переделать ...
Все таки думаю что divert ругается из-за того что  интерфейсы - vlan.

 

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



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

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