Документация по ОС FreeBSD Четверг, 21.11.2024, 14:26
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
IPFW [58]

Главная » Статьи » FireWall » IPFW

Пример построения пакетного фильтра на ipfw
Поправте меня если я неправ. Пакет проверяется списком правил дважды -- на входе и на выходе. Если на входном интерфейсе пакет прошел, то, если пакет должен уйти дальше, он будет проверяться еще раз на исходящем интерфейсе. Иными словами если пакету надо попасть на нашу машину, то он должен пройти наши правила -- а можно ли впустить этот пакет, после чего наша машина чего-то с ним делает и, если решает отправить этот пакет дальше -- то проверяет его списком правил еще раз -- а можно ли этот пакет выпускать. Соответственно нами генерируемые пакеты будут проверяться один раз -- на выходе, а предназначенные нам -- один раз -- на входе.Пример правил и для входящих и для исходящих пакетов

# глушатся все пакеты и на входе и на выходе
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
Категория: IPFW | Добавил: oleg (01.12.2007)
Просмотров: 2472 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024