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

Исходное сообщение
"pf - обозначить подсеть за исключением одного адреса"

Отправлено tungus , 02-Апр-08 22:52 
Есть две подсети - 192.168.1.0/24 и 192.168.2.0/24. В подсети 192.168.2.0 есть некоторый хост 192.168.2.20
Нужно разрешить весь трафик между подсетями за исключением трафика на хост 192.168.2.0 - для этого хоста будут свои правила.

Т. е. нужно записать что-то вроде

block all
pass quick on $int_if inet from 192.168.1.0/24 to { ! 192.168.2.20 , 192.168.2.0/24 }
pass quick on $int_if inet from { ! 192.168.2.20 , 192.168.2.0/24 } to 192.168.1.0/24
# Ниже правила для 192.168.2.20
pass on $int_if inet from 192.168.1.0/24 to 192.168.2.20 port ftp S/SA keep state
.......

Но естественно так не будет работать.


Содержание

Сообщения в этом обсуждении
"pf - обозначить подсеть за исключением одного адреса"
Отправлено Vaso_Petrovich , 03-Апр-08 09:12 

>block all
># Ниже правила для 192.168.2.20
>pass on $int_if inet from 192.168.1.0/24 to 192.168.2.20 port ftp S/SA keep
>pass quick on $int_if inet from 192.168.1.0/24 to { ! 192.168.2.20 ,
>192.168.2.0/24 }
>pass quick on $int_if inet from { ! 192.168.2.20 , 192.168.2.0/24 }
>to 192.168.1.0/24
>state
>.......
>Но естественно так не будет работать.

по логике так должно работать...


"pf - обозначить подсеть за исключением одного адреса"
Отправлено tungus , 03-Апр-08 11:44 
>[оверквотинг удален]
>>pass on $int_if inet from 192.168.1.0/24 to 192.168.2.20 port ftp S/SA keep
>>pass quick on $int_if inet from 192.168.1.0/24 to { ! 192.168.2.20 ,
>>192.168.2.0/24 }
>>pass quick on $int_if inet from { ! 192.168.2.20 , 192.168.2.0/24 }
>>to 192.168.1.0/24
>>state
>>.......
>>Но естественно так не будет работать.
>
>по логике так должно работать...

Не работает потому что распишется как
pass quick on $int_if inet from 192.168.1.0/24 to ! 192.168.2.20
pass quick on $int_if inet from 192.168.1.0/24 to 192.168.2.0/24
pass quick on $int_if inet from ! 192.168.2.20 to 192.168.1.0/24
pass quick on $int_if inet from 192.168.2.0/24 to 192.168.1.0/24

Т. е. трафик c/на 192.168.2.20 будет пропускаться вторым и четвертым правилом.


"pf - обозначить подсеть за исключением одного адреса"
Отправлено kls , 15-Апр-08 14:37 
а если так попробовать?

>block all

#здесь правила для 192.168.2.20 (обязательно с quick)

block quick on $int_if inet from 192.168.1.0/24 to 192.168.2.20
pass quick on $int_if inet from 192.168.1.0/24 to { 192.168.2.0/24 }
block quick on $int_if inet from 192.168.2.20 to 192.168.1.0/24
pass quick on $int_if inet from { 192.168.2.0/24 } to 192.168.1.0/24



"pf - обозначить подсеть за исключением одного адреса"
Отправлено shutdown now , 06-Май-08 02:54 
>[оверквотинг удален]
>pass quick on $int_if inet from 192.168.1.0/24 to { ! 192.168.2.20 ,
>192.168.2.0/24 }
>pass quick on $int_if inet from { ! 192.168.2.20 , 192.168.2.0/24 }
>to 192.168.1.0/24
># Ниже правила для 192.168.2.20
>pass on $int_if inet from 192.168.1.0/24 to 192.168.2.20 port ftp S/SA keep
>state
>.......
>
>Но естественно так не будет работать.

сделай таблицу:
table net2_20 {!192.168.2.20 192.168.2.0/24 }

pass quick on $int_if inet from 192.168.1.0/24 to <net2_20>
pass quick on $int_if inet from <net2_20> to 192.168.1.0/24