The OpenNET Project / Index page

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

[FreeBSD] Пример построения пакетного фильтра на ipfw (firewall ipfw example)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: firewall, ipfw, example,  (найти похожие документы)
From : Roman Y. Bogdanov http://peps37.ktk.ru/ Subj : [FreeBSD] Пример построения пакетного фильтра на ipfw ------------------------------------------------------------------------------- From: "mitrohin a.s." <swp#bspu.secna.ru> Поправте меня если я неправ. Пакет проверяется списком правил дважды -- на входе и на выходе. Если на входном интерфейсе пакет прошел, то, если пакет должен уйти дальше, он будет проверяться еще раз на исходящем интерфейсе. Иными словами если пакету надо попасть на нашу машину, то он должен пройти наши правила -- а можно ли впустить этот пакет, после чего наша машина чего-то с ним делает и, если решает отправить этот пакет дальше -- то проверяет его списком правил еще раз -- а можно ли этот пакет выпускать. Соответственно нами генерируемые пакеты будут проверяться один раз -- на выходе, а предназначенные нам -- один раз -- на входе. Пример правил и для входящих и для исходящих пакетов # глушатся все пакеты и на входе и на выходе ipfw add deny icmp from any to any # пропускаются все пакеты через ed0 ipfw add pass icmp from any to any via ed0 Пример однонапрвленных правил # разрешены все входящие пакеты через ed0 # вместо in recv можно написать in via :))) ipfw add deny ip from any to any in recv ed0 # разрешены все исходящие пакеты через ed0 # вместо out xmit можно написать out via ipfw add deny ip from any to any out xmit ed0 Очень важно что путь пройденный пакетом по нашей машине запоминается и соответственно мы можем использовать такие параметры как входящий и исходящий интерфейс. Это еще один интересный пример однонаправленных правил # запрещаются все ИСХОДЯЩИЕ через ed1 пакеты, которые # были получены через ed0 ipfw add deny ip fron any to any out recv ed0 xmit ed1 divert правила заворачивают все пакеты на сокет, который слушает natd. natd переписывает содержимое заголовка пакета. далее переходим к следующему правилу (!!! а пакет то уже другой). Например # заворачивается весь трафик через внешний интерфейс ipfw add divert 8668 ip from any to any via sl0 Пример Считаем что внутри только друзья -- которые используют прокси :))) ipfw add pass ip from any to any via lo0 ipfw add pass tcp from any to any established ipfw add pass icmp from any to any ipfw add pass ip from any to any frag ipfw add pass ip from any to any via ed0 ipfw add pass ip from ${ip_sl0} to any out xmit sl0 ipfw add pass tcp from any to ${ip_sl0} smtp in recv sl0 setup ipfw add pass tcp from any to ${ip_sl0} http in recv sl0 setup ipfw add pass tcp from any to ${ip_sl0} 53 in recv sl0 setup ipfw add pass udp from any to ${ip_sl0} 53 in recv sl0 ipfw add pass udp from any 53 to ${ip_sl0} in recv sl0 # это чтобы посмотреть чего мы запрещаем, может мы не правы? ipfw add count log ip from any to any # последнее правило 65535 deny ip from any to any

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, Bimax (?), 18:43, 29/09/2004 [ответить]  
  • +/
    Следующи конфиг ipfw делает следующее:
    1. Запрещает получать пакеты входящие через ed0, те что адресованны локальным адресам;
    2. Далее стоит запись НАТ, тобишь на тазике поднят НАТ который и перезаписывает заголовок пакета на локальные адреса (необходимо для нормальной работы НАТ)
    3. Далее идёт прикол!!! после обработки пакета процессом natd пакет далее проходит по правилам и он считается всё ещё как входящий в интерфейс ed0. Для этого и записанно следующее правило.

    01500       0         0 deny ip from any to 10.11.11.0/24 in recv ed0
    01600 1234066 354874155 divert 8668 ip from any to any via ed0
    01700  299171 250210529 allow ip from any to 10.11.11.0/24 in recv ed0

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




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

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