URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 64812
[ Назад ]

Исходное сообщение
"PF. Блокирование ESTABLISHED соединений"

Отправлено babay82 , 15-Мрт-06 13:00 
Кто подскажет как в PF блокировать ESTABLISHED соединения?
Начал потихоньку учить PF. И натолкнулся на такую проблемму.
Иногда нужно блокировать возможность прослушивания online радио с определённого сервера на порту 8000.
Добавляю правила
block drop out quick on rl0 proto tcp from any to $radio_server port 8000
block drop in quick on rl0 proto tcp from $radio_server port 8000 to any
Но эти правила не обрывают уже установленные соединения. И получается, те кто слушали радио, продолжают его слушать пока не отключатся.
Заранее благодарен за ответ.

Содержание

Сообщения в этом обсуждении
"PF. Блокирование ESTABLISHED соединений"
Отправлено paul , 15-Мрт-06 20:20 
>Добавляю правила
>block drop out quick on rl0 proto tcp from any to $radio_server
>port 8000
>block drop in quick on rl0 proto tcp from $radio_server port 8000
>to any
>Но эти правила не обрывают уже установленные соединения. И получается, те кто
>слушали радио, продолжают его слушать пока не отключатся.
>Заранее благодарен за ответ.

Скорее всего выше этих правил присутствует правило с quick, разрешающее ESTABLISHED соединения - например, pass in quick on rl0 proto tcp all modulate state. Решение - поместить запрещающие правила выше или убрать quick у вышестоящего правила


"PF. Блокирование ESTABLISHED соединений"
Отправлено babay82 , 16-Мрт-06 13:17 
>Скорее всего выше этих правил присутствует правило с quick, разрешающее ESTABLISHED соединения
>- например, pass in quick on rl0 proto tcp all modulate
>state. Решение - поместить запрещающие правила выше или убрать quick у
>вышестоящего правила

Таких правил нет.
Листинг pf.conf
ext_if="rl0"    #Внешний интерфейс
int_if="fxp0"   #Внутренний интерфейс
local_net="192.168.1.0/24"      #Внутренняя сеть
ext_addr="1.1.1.1"       #Внешний адрес
NoRouteIp="{ 127.0.0.0/8, 192.168.1.0/24 }"     #Не маршрутизируемые в инет адреса

#Нормализация и дефрагментация пакета
scrub in all
#NAT
nat on $ext_if from $local_net to any -> $ext_addr
###Фильтрация###
#Блокирование спуфинга
antispoof quick for $int_if inet
#Блокировка на внешнем интерфейсе внутренних адресов RFC 1918
block in quick on $ext_if from $NoRouteIp to any
block out quick on $ext_if from any to $NoRouteIp
#Блокировка радио
block drop out quick on $ext_if proto tcp from any to any port 8000
block drop in quick on $ext_if proto tcp from any port 8000 to any

Вывод pfctl -sr
scrub in all fragment reassemble
block drop in quick on ! fxp0 inet from 192.168.1.0/24 to any
block drop in quick inet from 192.168.1.1 to any
block drop in quick on rl0 inet from 127.0.0.0/8 to any
block drop in quick on rl0 inet from 192.168.1.0/24 to any
block drop out quick on rl0 inet from any to 127.0.0.0/8
block drop out quick on rl0 inet from any to 192.168.1.0/24
block drop out quick on rl0 proto tcp from any to any port = 8000
block drop in quick on rl0 proto tcp from any port = 8000 to any


"PF. Блокирование ESTABLISHED соединений"
Отправлено paul , 16-Мрт-06 14:46 
>>Скорее всего выше этих правил присутствует правило с quick, разрешающее ESTABLISHED соединения
>>- например, pass in quick on rl0 proto tcp all modulate
>>state. Решение - поместить запрещающие правила выше или убрать quick у
>>вышестоящего правила
>
>Таких правил нет.
>Листинг pf.conf
>ext_if="rl0"    #Внешний интерфейс
>int_if="fxp0"   #Внутренний интерфейс
>local_net="192.168.1.0/24"      #Внутренняя сеть
>ext_addr="1.1.1.1"       #Внешний адрес
>NoRouteIp="{ 127.0.0.0/8, 192.168.1.0/24 }"     #Не маршрутизируемые в инет
>адреса
>
>#Нормализация и дефрагментация пакета
>scrub in all
>#NAT
>nat on $ext_if from $local_net to any -> $ext_addr
>###Фильтрация###
>#Блокирование спуфинга
>antispoof quick for $int_if inet
>#Блокировка на внешнем интерфейсе внутренних адресов RFC 1918
>block in quick on $ext_if from $NoRouteIp to any
>block out quick on $ext_if from any to $NoRouteIp
>#Блокировка радио
>block drop out quick on $ext_if proto tcp from any to any
>port 8000
>block drop in quick on $ext_if proto tcp from any port 8000
>to any
>
>Вывод pfctl -sr
>scrub in all fragment reassemble
>block drop in quick on ! fxp0 inet from 192.168.1.0/24 to any
>
>block drop in quick inet from 192.168.1.1 to any
>block drop in quick on rl0 inet from 127.0.0.0/8 to any
>block drop in quick on rl0 inet from 192.168.1.0/24 to any
>block drop out quick on rl0 inet from any to 127.0.0.0/8
>block drop out quick on rl0 inet from any to 192.168.1.0/24
>block drop out quick on rl0 proto tcp from any to any
>port = 8000
>block drop in quick on rl0 proto tcp from any port =
>8000 to any

Можно попробовать добавить в начало правило
block in all
block out all
Что бы быть уверенным, что все в конце зарежется. А что показывает tcpdump когда пользователь слушает радио? Может оно по udp ходит..


"PF. Блокирование ESTABLISHED соединений"
Отправлено 118088 , 19-Мрт-06 15:22 
>block drop out quick on rl0 proto tcp from any to $radio_server port 8000
>block drop in quick on rl0 proto tcp from $radio_server port 8000 to any

Попробуйте блокировать не на внешнем, а на внутреннем int_if="fxp0"
тогда будет

int_if="fxp0"   #Внутренний интерфейс
local_net="192.168.1.0/24"      #Внутренняя сеть
radio_server="A.B.C.D"
block quick on $int_if proto tcp from $local_net to $radio_server port 8000

Отпишитесь с результатом пожалуйста.


"PF. Блокирование ESTABLISHED соединений"
Отправлено babay82 , 20-Мрт-06 15:06 
>
>Попробуйте блокировать не на внешнем, а на внутреннем int_if="fxp0"
>тогда будет
>
>int_if="fxp0"   #Внутренний интерфейс
>local_net="192.168.1.0/24"      #Внутренняя сеть
>radio_server="A.B.C.D"
>block quick on $int_if proto tcp from $local_net to $radio_server port 8000
>
>
>Отпишитесь с результатом пожалуйста.


Да, при блокировке на внутреннем интерфейсе, получилось оборвать соединения.
Огромное спасибо.


"PF. Блокирование ESTABLISHED соединений"
Отправлено A Clockwork Orange , 20-Мрт-06 15:52 
а как насчет флагов S и S/A

"PF. Блокирование ESTABLISHED соединений"
Отправлено 118088 , 20-Мрт-06 22:52 
>а как насчет флагов S и S/A
добавить flags S/SA
)