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


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

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