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

Исходное сообщение
"pf пропускает весь трафик от локальной сети"

Отправлено wsnet , 07-Дек-10 23:33 
Ребята сильно не пинайте начинающего.

Вообщем сделал такой конфиг:
int_if="em1"  #внутренний интерфейс в мою локальную сеть
ext_if="tun0" # виртульный интерфейс после поднятия pptp
lannet="192.168.0.0/24" #внутренняя  моя локалка
comp="192.168.0.10"

allow_service="{http,https,smtp,pop3,domain}"

set skip on lo0
set skip on $int_if

scrub in all

nat on $ext_if from $int_if:network to any -> ($ext_if)
#rdr pass on $ext_if proto tcp from any to ($ext_if) port rdp -> $comp port rdp
#rdr pass on $ext_if proto tcp from any to ($ext_if) port rdp -> $comp

block all

pass quick proto tcp from any to any port 1723
pass quick proto gre all

pass out on $ext_if proto {tcp,udp} from (self) to any port domain keep state
pass out on $ext_if proto tcp from (self) to any port http keep state

#pass out on $ext_if proto {tcp,udp} from $lannet to any port $allow_service kee
pass inet proto icmp all

В чем смысл, а точнее в чем его нет.

Данный конфиг пропускает пакеты от всех клиентов моей локалки.
Хотя по конфигу он должен пропускать исходящие пакеты непосредственно с машины - шлюза.

Что не так можете пояснить?
Да еще читал что такая роблема может иметь место когда интерфейс внешний виртуальный и IP адрес динамический - у меня все именно так. Для этого внешний интерфейс $ext_if я поставил в скобки


Содержание

Сообщения в этом обсуждении
"pf пропускает весь трафик от локальной сети"
Отправлено co6aka , 08-Дек-10 02:06 
Дайте вывод:
#ifconfig -a
#route -rn
#pfctl -sn
#pfctl -sr

ps: http://www.openbsd.org/faq/pf/ru/index.html
http://www.openbsd.org/faq/pf/index.html


"pf пропускает весь трафик от локальной сети"
Отправлено dm , 08-Дек-10 03:19 

pfctl -f /etc/pf.conf ?
pfctl -e  ?

"pf пропускает весь трафик от локальной сети"
Отправлено mef , 08-Дек-10 10:40 
> Данный конфиг пропускает пакеты от всех клиентов моей локалки.
> Хотя по конфигу он должен пропускать исходящие пакеты непосредственно с машины -
> шлюза.

Напиши подробнее, что и куда должно пропускаться и что не должно.


"pf пропускает весь трафик от локальной сети"
Отправлено sage444 , 08-Дек-10 10:50 
> set skip on $int_if

если $int_if пропускаете то конечно все будет пропускаться ;)

> nat on $ext_if from $int_if:network to any -> ($ext_if)

а потом все натите

> Данный конфиг пропускает пакеты от всех клиентов моей локалки.

так и должен пропускать
> Хотя по конфигу он должен пропускать исходящие пакеты непосредственно с машины -
> шлюза.

а что разве не пропускает?


"pf пропускает весь трафик от локальной сети"
Отправлено guest , 08-Дек-10 10:54 
>set skip on $int_if

Читайте этот кусочек мана до полного понимая.
     set skip on <ifspec>
             List interfaces for which packets should not be filtered.
             Packets passing in or out on such interfaces are passed as if pf
             was disabled, i.e. pf does not process them in any way.  This can
             be useful on loopback and other virtual interfaces, when packet
             filtering is not desired and can have unexpected effects.


"pf пропускает весь трафик от локальной сети"
Отправлено wsnet , 08-Дек-10 11:26 
Да верно все, я сглупил конечно же.

Подскажите а как тогда переделать мой конфиг, чтобы допустим пользователи локалки ходил по http а шлюз - машина с pf имел доступ только во внешний мир по smtp, но если можно отключив фильтрацию на внутреннем интерфейсе ?

Это реально вообще сделать, если да подскажите как ?


"pf пропускает весь трафик от локальной сети"
Отправлено sage444 , 08-Дек-10 11:29 
> если можно отключив фильтрацию на
> внутреннем интерфейсе ?

а в чем смысл ?


"pf пропускает весь трафик от локальной сети"
Отправлено guest , 08-Дек-10 11:36 
> Это реально вообще сделать, если да подскажите как ?

Не очень понял вашу хотелку...
Условия:
все запрещено.
трафик локальной сети ходит через шлюз и не фильтруется
из локальной сети в мир разрешен только www. (а как быть скажем с dns???)
непосредственно со шлюза разрешен только исходящий smtp

все так?


"pf пропускает весь трафик от локальной сети"
Отправлено wsnet , 08-Дек-10 12:10 
>> Это реально вообще сделать, если да подскажите как ?
> Не очень понял вашу хотелку...
> Условия:
> все запрещено.
> трафик локальной сети ходит через шлюз и не фильтруется
> из локальной сети в мир разрешен только www. (а как быть скажем
> с dns???)
> непосредственно со шлюза разрешен только исходящий smtp
> все так?

Да + днс от шлюза и от локалки конечно разрешены.

Все так.


"pf пропускает весь трафик от локальной сети"
Отправлено guest , 08-Дек-10 12:36 
Как то так


nat pass on $ext_if inet proto tcp from ($int_if:network) to any port www -> ($ext_if:0)
# для DNS лучше не any, а ip DNS серверов провайдера. А еще лучше поднять свой на шлюзе.
nat pass on $ext_if inet proto {tcp,udp} from ($int_if:network) to any port domain -> ($ext_if:0)

block all
pass out on $ext_if inet proto tcp from self to any port smtp
pass out on $ext_if inet proto {tcp,udp} from self to any port domain

pass on $int_if from ($int_if:network) to ($int_if:network)
pass in on $int_if inet proto tcp from ($int_if:network) to any port www
pass in on $int_if inet proto {tcp,udp} from ($int_if:network) to any port domain