BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: Вт 23 авг, 2016 12:47 pm 
Не в сети

Зарегистрирован: Чт 18 авг, 2016 6:22 pm
Сообщения: 4
Всем привет!
Кто может сталкивался с проблемой фильтрации по портам для локальной сети.
Во всех примерах в интернете не парятся с внутренней сетью и делают
set skip on re1 - это внутренний интерфейс
тогда типа никаких проблем и внешний интерфейс отлично настраивается по правилах и тд.
А вот если фильтровать локалку? кто-то пробовал?
вот пример:
block in all
block out all все закрыто. ни пинги ничего не проходит. далее открываем по чуть чуть все что идет от пользователей 192.168.0.0/24 aka <local_networks>
#ping
pass in on $int_if inet proto icmp all icmp-type $icmp_types keep state
pass out on $int_if inet proto icmp all icmp-type $icmp_types keep state
Пинги начинают идти

#ssh
pass in log on $int_if inet proto tcp from $admin to $int_if port ssh modulate state queue ( l_ssh_login, l_ssh_bulk )
pass out log on $int_if inet proto tcp from $int_if port ssh to <local_networks> modulate state queue ( l_ssh_login, l_ssh_bulk )
Заработал SSH

#Dns
pass in on $int_if inet proto { tcp, udp } from <local_networks> to $int_if port domain keep state
pass out on $int_if inet proto { tcp, udp } from $int_if to <local_networks> port domain keep state
Заработал DNS локальный

#Dhcp
pass in quick on $int_if inet proto { tcp, udp } from <local_networks> port 67:68 to $int_if port 67:68 keep state
pass out quick on $int_if inet proto { tcp, udp } from $int_if port 67:68 to <local_networks> port 67:68 keep state
Выдал IP

#Samba
pass in on $int_if inet proto { tcp, udp } from <local_networks> to $int_if port 445 keep state
Впустил в шары

Потом открываем
pass in on $int_if inet proto { tcp, udp } from <local_networks> to $int_if port { http, https } modulate state
pass out on $int_if inet proto { tcp, udp } from $int_if port { http, https } to <local_networks> modulate state


И тут должен был бы быть инет, но его нет...
если сделать
pass in on $int_if inet proto { tcp, udp } from <local_networks> to ANY port { http, https } modulate state
pass out on $int_if inet proto { tcp, udp } from ANY port { http, https } to <local_networks> modulate state
тогда инет появляется
Вопрос. почему слово ANY а не внутренний интерфейс $int_if ? Как будто ANY все решает и лезет вообще не на $int_if а куда то еще. А откуда мне знать куда это ANY полезет? и тогда спрашивается зачем эти все правила выше если это правило разрешает и переопределяет все предыдущие? ))
Во всех примерах в инете и в мануалах ставят пропуск проверки на внутреннем интерфейсе ну или такие простые правила типа
pass in on @int_if from 192.168.0.0/24 to 192.168.0.1
pass out on @int_if from 192.168.0.1 to 192.168.0.0/24
Ну и все равно оно не работает потому что нужно слово ANY вместо 192.168.0.1 то есть внутреннего интерфейса

Кто знает что именно означает слово ANY? а точнее как отследить куда оно лезет?
Кто пробовал фильтровать строго локалку?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт 23 авг, 2016 2:42 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5081
Откуда: Москва
OlegK писал(а):
pass in on $int_if inet proto { tcp, udp } from <local_networks> to $int_if port { http, https } modulate state
pass out on $int_if inet proto { tcp, udp } from $int_if port { http, https } to <local_networks> modulate state


И тут должен был бы быть инет, но его нет...

С какой стати? Вы разрешили трафик на/с адреса принадлежащего внутреннему интерфейсу, а не в интернет. В пакетах "в интернет" адрес внутреннего интерфейса роутера никак не фигурирует. ANY же разрешает трафик c/на любые адреса.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт 23 авг, 2016 3:56 pm 
Не в сети

Зарегистрирован: Чт 18 авг, 2016 6:22 pm
Сообщения: 4
AMDmi3 писал(а):
OlegK писал(а):
pass in on $int_if inet proto { tcp, udp } from <local_networks> to $int_if port { http, https } modulate state
pass out on $int_if inet proto { tcp, udp } from $int_if port { http, https } to <local_networks> modulate state


И тут должен был бы быть инет, но его нет...

С какой стати? Вы разрешили трафик на/с адреса принадлежащего внутреннему интерфейсу, а не в интернет. В пакетах "в интернет" адрес внутреннего интерфейса роутера никак не фигурирует. ANY же разрешает трафик c/на любые адреса.


Вроде как это правило должно выпускать в инет
nat on $ext_if inet from <local_networks> to !<local_networks> -> $ext_if

Или Вы хотите сказать что нужно писать вот так?
pass in on $int_if inet proto { tcp, udp } from <local_networks> to $ext_if port { http, https } modulate state
pass out on $int_if inet proto { tcp, udp } from $ext_if port { http, https } to <local_networks> modulate state

так разве можно?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт 23 авг, 2016 5:23 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5081
Откуда: Москва
Я хочу сказать ровно то что сказал - адрес внутреннего интерфейса к транзитному трафику никакого отношения не имеет. Адрес внешнего в общем случае тоже. На внутреннем интерфейсе трафик между локальной сетью и интернетом это <local_networks> ↔ ANY


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт 23 авг, 2016 7:37 pm 
Не в сети

Зарегистрирован: Чт 18 авг, 2016 6:22 pm
Сообщения: 4
AMDmi3 писал(а):
Я хочу сказать ровно то что сказал - адрес внутреннего интерфейса к транзитному трафику никакого отношения не имеет. Адрес внешнего в общем случае тоже. На внутреннем интерфейсе трафик между локальной сетью и интернетом это <local_networks> ↔ ANY


понял! только так <local_networks> ↔ ANY а не <local_networks> to $int_if и $int_if to <local_networks>
но в мануалах и различных конфигах типа как пример используют <local_networks> ↔ $int_if . и у них все работает типа.
Ну ладно.
Если поставить <local_networks> ↔ ANY тогда это правило переопределяет правило block all из <local_networks> to $int_if и разрешает Sambа, локальный dns, dhcp и тд без всяких и на то разрешающих правил. Спрашивается зачем тогда эти правила))?
pass in on $int_if inet proto { tcp, udp } from <local_networks> port 67:68 to $int_if port 67:68 keep state
pass in on $int_if inet proto { tcp, udp } from <local_networks> to $int_if port domain keep state
pass in on $int_if inet proto udp from <local_networks> to $int_if port ntp keep state
pass in on $int_if inet proto { tcp, udp } from <local_networks> to $int_if port 445 keep state

Логично должно быть так
не хватает только чтобы работали эти правила
pass in on $int_if inet proto { tcp udp } from <local_networks> to $int_if
pass out on $int_if inet proto { tcp udp } from $int_if to <local_networks>

pass in on $ext_if inet proto { tcp udp } from any port { http, https } to $ext_if
pass out on $ext_if inet proto { tcp udp } from $ext_if to any port { http, https }

тогда никаких вопросов не было б)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт 23 авг, 2016 7:57 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5081
Откуда: Москва
OlegK писал(а):
Если поставить <local_networks> ↔ ANY тогда это правило переопределяет правило block all из <local_networks> to $int_if и разрешает Sambа, локальный dns, dhcp и тд без всяких и на то разрешающих правил. Спрашивается зачем тогда эти правила))?

Кого "спрашивается"? Правила пишете вы, как вам надо так и пишите. Разрешайте <local_networks> ↔ !<local_networks>, либо разрешайте <local_networks> ↔ ANY, потом запрещайте <local_networks> ↔ <local_networks>, в обоих случаях локальный трафик после этих правил будет запрещён и его можно будет фильтровать как вы делаете сейчас.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт 23 авг, 2016 8:07 pm 
Не в сети

Зарегистрирован: Чт 18 авг, 2016 6:22 pm
Сообщения: 4
AMDmi3 писал(а):
OlegK писал(а):
Если поставить <local_networks> ↔ ANY тогда это правило переопределяет правило block all из <local_networks> to $int_if и разрешает Sambа, локальный dns, dhcp и тд без всяких и на то разрешающих правил. Спрашивается зачем тогда эти правила))?

Кого "спрашивается"? Правила пишете вы, как вам надо так и пишите. Разрешайте <local_networks> ↔ !<local_networks>, либо разрешайте <local_networks> ↔ ANY, потом запрещайте <local_networks> ↔ <local_networks>, в обоих случаях локальный трафик после этих правил будет запрещён и его можно будет фильтровать как вы делаете сейчас.


хм. ладно. спасибо! буду проверять


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт 06 окт, 2016 2:10 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт 03 янв, 2006 12:49 pm
Сообщения: 1038
Откуда: Киев
По необходимости, ни что не мешает создать группу запрещающих правил перед разрешающими.
Например, если большинству можно, а некоторым (или из таблицы ... ) - что то нет.

Я так отдельные компы отграничивал в выходе в и-нет. "Если ты из группы провинившихся, то тебе не повезло :) "


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Google [Bot], Google Feedfetcher, Yahoo [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика