Помощь по ipfilter

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
dm07
сержант
Сообщения: 222
Зарегистрирован: 2008-07-27 19:58:25
Откуда: Уфа
Контактная информация:

Помощь по ipfilter

Непрочитанное сообщение dm07 » 2008-08-30 21:38:54

Всем добрый вечер. Подскажите пожалуйста логику отработки правил IPFilter. Описание: ОС FreeBSD 7 Stable, шлюз (gateway_enable="YES"), 3 сетевых карты, одна для Интернета, две других - для локальных сетей. На шлюзе ipnat, две локальных сетки ходят в интернет. На шлюзе стоит прокси, все клиенты ходят по HTTP через прокси.
Прочитал много документации по ipf, но не уловил некоторых деталей.
1. Когда пакеты из внутренней сети для внешней сети получает один из внутренних сетевых интерфейсов, то согласно работе шлюза, он передает этот пакет на внешний сетевой интерфейс, где применяются правила НАТ и пакет выходит во внешнюю сеть. Вопрос: фактически, нет необходимости расписывать правила IN для внешнего интерфейса для пакетов из внутренней сети? Вот пример правил:

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

# 1
pass in quick on lo0 all
# 2
pass out quick on lo0 all

# 3
pass out quick on $if_int all       # разрешены любые исходящие пакеты из внутренней LAN, например, клиенты лок. сети могут обратиться к прокси серверу SQUID
# 4
pass in quick on $if_int all        # разрешены любые входящие пакеты на внутреннюю LAN

# Исходящая секция для самого шлюза (используется, когда применяются правила NAT для пакетов из внутренней сети)
# if_ext - внешний сетевой интерфейс
# ip_ext - внешний IP адрес
block out quick on $if_ext from $ip_ext to any head 20
pass out quick on $if_ext proto tcp/udp from $ip_ext to any port = 53 keep state group 20      # DNS
# 5
pass out quick on $if_ext proto tcp from $ip_ext to any port = 80 flags S keep state group 20             # HTTP
block out log quick on $if_ext all group 20

# Исходящая секция для потока от внутренней сети на внешнюю сетевую карту
# $local_net - внутренняя сеть A.B.C.D/24
block out quick on $if_ext from $local_net to any head 30
pass out quick on $if_ext proto tcp/udp from $local_net to any port = 53 keep state group 30
block out log quick on $if_ext all group 30

# Входящая секция для внешнего сетевого интерфейса #
block in quick on $if_ext from any to any head 50
block in log quick on $if_ext all group 50                        # все запретим, где нам нужно, доступ откроют keep state правила.
Т.е. у меня нигде нет явно прописанных правил, которые бы разрешали пакеты из внутренней сети на внешний сетевой интерфейс. Однако пакеты уходят без проблем.
Правильно я понимаю: внутренний сетевой интерфейс получил пакет HTTP для внешней сети, это дает правило 3 и 4. Поскольку прокси-сервер установлен на прослушку внутреннего сетевого интерфейса, то он получил запрос от внутренней сети без проблем. А дальше передал его внешнему сетевому интерфейсу, где NAT преобразовал внутренний IP адрес отправителя во внешний IP. Уйти пакету во внешнюю сеть позволяет правило 5.
В ядре: options IPFILTER_DEFAULT_BLOCK

Спасибо всем за ответ.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Помощь по ipfilter

Непрочитанное сообщение zingel » 2008-08-31 0:40:40

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

Однако пакеты уходят без проблем.
Как определяли?
Z301171463546 - можно пожертвовать мне денег

dm07
сержант
Сообщения: 222
Зарегистрирован: 2008-07-27 19:58:25
Откуда: Уфа
Контактная информация:

Re: Помощь по ipfilter

Непрочитанное сообщение dm07 » 2008-08-31 0:43:21

zingel писал(а):

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

Однако пакеты уходят без проблем.
Как определяли?
Пользователи локальной сети ходят по HTTP и довольно успешно ).

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Помощь по ipfilter

Непрочитанное сообщение zingel » 2008-08-31 0:50:59

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

tcpdump -exxvvtt dst net <внутренняя сетка локалки>
или

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

tcpdump -exxvvtt -i <интерфейс на котором висит прокся>
Z301171463546 - можно пожертвовать мне денег

dm07
сержант
Сообщения: 222
Зарегистрирован: 2008-07-27 19:58:25
Откуда: Уфа
Контактная информация:

Re: Помощь по ipfilter

Непрочитанное сообщение dm07 » 2008-08-31 1:09:48

Просмотр дампа траффика думаю не поможет, нужно одновременно анализировать дамп на двух интерфейсах - внешнем и внутреннем и сопоставлять данные. Т.е. в данной ситуации я не могу по-другому считать, кроме как того, что в режиме шлюза пакет перекидывается с внутреннего интерфейса на внешний без соответствующих разрешающих правил со стороны IPF.
Еще вот один вопрос:
Дополнительно к правилам выше для сетевой карты, смотрящей во вторую LAN:

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

###############################################################
################## Входящая секция IF_INT2 ####################
###############################################################

block in log quick on $if_int2 from any to any head 60
pass in quick proto tcp from $local_net2 to any flags S/SAFR keep state keep frags group 60
pass in quick proto udp from $local_net2 to any keep state keep frags group 60
pass in quick proto icmp from $local_net2 to any keep state keep frags group 60
pass in quick proto gre from $local_net2 to any keep state keep frags group 60
pass in quick from $local_net2 to any group 60

###############################################################
################## Исходящая секция IF_INT2 ###################
###############################################################

block out log quick on $if_int2 from any to any head 61
pass out quick proto tcp from any to $local_net2 flags S/SAFR keep state keep frags group 61
pass out log quick proto tcp from any to $local_net2 group 61
pass out quick proto udp from any to $local_net2 keep state keep frags group 61
pass out quick proto icmp from any to $local_net2 keep state keep frags group 61
pass out quick proto gre from any to $local_net2 keep state keep frags group 61
Компьютеры из второй ЛАН отсылают данные с обычной скорость для канала (скажем, 300 Кбайт/с),а принимают со скоростью 100 бит/с. Чем может обусловлено такое поведение? Что в правилах выше некорректно?

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Помощь по ipfilter

Непрочитанное сообщение zingel » 2008-08-31 12:51:36

можно iperf запустить на разных сторонах, тогда будет точно понятно где трабл
Z301171463546 - можно пожертвовать мне денег