The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"PF  и блокировка IP"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Информационная безопасность (Public)
Изначальное сообщение [ Отслеживать ]

"PF  и блокировка IP"  
Сообщение от fvf email(ok) on 29-Апр-08, 17:28 
Доброго времени суток!

По мануалу никак не могу разобраться с такой проблемой:

Стоит FreeBSD 6.x, в качестве файрвола используется PF. Необходимо блокировать пользователей внутренней сети по IP адресу. Реализовал я это так:
Создал таблицу:
table <ipblock> persist { }
куда добавляю ip адреса для блокировки.

Правило для блокировки:
block in quick log on $int_if from <ipblock> to any

Собсно, все работает, за исключением нюанса. Если есть активная сессия на блокируемом ip, ну например кто-то слушает on-line радио, то правило не срабатывает пока сессия не закончится.
Насколько я понимаю, это связано с обработкой keep state/modulate state в разрешающих правилах. Тоесть фильтр игнорирует сразу же все пакеты активной сессии. И применяет правило блокирования только для попыток установить новую сессию.

Вот собсно и вопрос, как сразу же рубить сессию у ip адресов попавших в таблицу ipblock.
Наверняка есть простое решение, но я его к сожалению не вижу :-[

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "PF  и блокировка IP"  
Сообщение от rayne on 30-Апр-08, 09:51 
set block-policy  какие параметры?
может большую часть конфига покажете ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "PF  и блокировка IP"  
Сообщение от fvf email(ok) on 30-Апр-08, 11:05 
>set block-policy  какие параметры?
>может большую часть конфига покажете ?

Вот такой у меня конфиг:

set optimization normal
set block-policy drop
set limit { states 20000, frags 20000, src-nodes 20000 }
set state-policy floating

table <ipblock> persist { }    # localnet users out of traffic limit

scrub in on $int_if all no-df fragment reassemble
scrub in on $ext_if all
scrub on $ext_if random-id reassemble tcp

#------------------
# NAT
nat-anchor "pftpx/*"
nat on $ext_if from $int_if:network to any -> ($ext_if)
rdr-anchor "pftpx/*"
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021

# squid
rdr on $int_if proto tcp from any to any port 80 -> 127.0.0.1 port 3128

#------------------
# Filter

block all

pass quick on lo0 all

# Antispoffing interfaces
antispoof log for $int_if
antispoof log for $ext_if

block in quick log on $int_if from <ipblock> to any

pass on $int_if from any to any keep state

pass in log on $ext_if inet proto icmp from any to $ext_addr icmp-type echoreq keep state (max 10)

#_Allow_SSH_connections_to_ME
pass in log on $ext_if inet proto tcp from any to $ext_if port 22 modulate state (max 20) flags S/SA

# _FTP
anchor "pftpx/*"
pass out log inet proto tcp from $ext_addr to any port 21 flags S/SA modulate state

# _HTTP
pass out log on $ext_if inet proto tcp from $ext_if to any port 80 flags S/SA modulate state
pass out log on $ext_if inet proto tcp from $ext_if to any port 443 flags S/SA modulate state

# _CVSUP
pass out on $ext_if inet proto tcp from $ext_if to any port 5999 flags S/SA modulate state

# _DNS
pass out log on $ext_if inet proto { tcp, udp } from $ext_if to any port 53 flags S/SA keep state

# _SSH
pass out log on $ext_if inet proto tcp from $ext_if to any port 22 flags S/SA modulate state


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "PF  и блокировка IP"  
Сообщение от rayne on 30-Апр-08, 12:20 
А если изключить из ната таблицу ipblock ?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "PF  и блокировка IP"  
Сообщение от fvf email(ok) on 30-Апр-08, 15:34 
>А если изключить из ната таблицу ipblock ?

Спасибо, попробую! Это должно сработать :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "PF  и блокировка IP"  
Сообщение от fvf email(ok) on 07-Май-08, 13:52 
Добавил правило, перед всеми остальными:
no nat on $ext_if from <ipblock> to any

К сожалению, не сработало...

Видимо по этой причине:
Translation rules modify either the source or destination address of the packets associated with a stateful connection.
A stateful connection is automatically created to track packets matching such a rule as long as they are not blocked by the filtering section of pf.conf.

Может есть еще идеи как это сделать?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "PF  и блокировка IP"  
Сообщение от fvf email(ok) on 14-Май-08, 11:09 
Возникла одна идея, снижать скорость потока до 0 для таблицы с заблокированными адресами с помощью altq, я думаю должно сработать. ;)
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "PF  и блокировка IP"  
Сообщение от rayne on 14-Май-08, 16:08 
>Возникла одна идея, снижать скорость потока до 0 для таблицы с заблокированными
>адресами с помощью altq, я думаю должно сработать. ;)

qwest какойто , и как получилось ? ;) а то мне уже любопытно .

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру