The OpenNET Project / Index page

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

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

"Как отключить интернет по IP-адресу политиками PF"  +/
Сообщение от komix (ok) on 27-Сен-10, 11:55 
Всем привет, это мое первое сообщение на форуме, до этого как-то справлялся, но тут впал в ступор. Мне по наследству от предыдущего сисадмина достался шлюз построенный на FreeBSD и с фаерволом PF. Была поставлена задача запретить доступ к интернету некоторым пользователям. Решил обойтись надстройками политик на PF, конкретнее - закрыть все, что проходит по протоколу TCP определенным IP-адресам. После добавления:

table <bedguys> { 192.168.0.100 }
...
block quick on $ext_if proto tcp from <bedguys>

не помогло, пробовал добавлять сразу после "block all", а также после "pass all", результат один и тот же...

Подскажите, пожалуйста, где я ошибся?
Ниже приведен полный конфиг PF'а:

ugm = "192.168.0.0/24"
zlk = "192.168.2.0/24"
suk = "192.168.25.0/24"
openvpn = "10.0.0.0/8"
int_if = "sis0"
ext_if = "tun0"
ovpn_if = "tun1"
mail_server = "192.168.0.2/32"
mail_ports = "80"
mail_smtp = "25"
icmp_types = "{ echoreq, unreach }"

table <trusted> { $ugm, $suk, $zlk, $ext_if, $openvpn, $mail_server }
table <bedguys> { 192.168.0.100 }

set block-policy drop
set skip on lo0

scrub in all

rdr on tun0 proto { tcp, udp } from any to $ext_if port $mail_ports -> $mail_server port $mail_ports
rdr on tun0 proto { tcp, udp } from any to $ext_if port $mail_smtp -> $mail_server port $mail_smtp

nat on $ext_if from <trusted> to any -> ($ext_if)

antispoof quick for $ext_if

block all
block quick on $ext_if inet proto tcp from <bedguys>
block quick on $ext_if inet proto tcp to <bedguys>

pass out on $ext_if from $ext_if to any keep state
pass out on $ext_if from <trusted> to any keep state
pass in log on $ext_if proto { tcp, udp } from any to $mail_server port $mail_ports keep state
pass in log on $ext_if proto { tcp, udp } from any to $mail_server port $mail_smtp keep state
pass in log on $ext_if proto { tcp, udp } from any to 192.168.0.8 port 3389 keep state
pass in on $ext_if proto udp from any to $ext_if port 1194 keep state
pass out on $ext_if proto udp from any to $ext_if port 1194 keep state
pass on $ovpn_if from <trusted> to any keep state
pass log inet proto icmp all icmp-type $icmp_types
pass all

интерфейсы:

(смотрит в локалку) sis0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether XX:XX:XX:XX:XX:XX
        inet 192.168.0.5 netmask 0xffffff00 broadcast 192.168.0.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
(смотрит в инет) vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether XX:XX:XX:XX:XX:XX
        inet XXX.XXX.XXX.XXX netmask 0xffffff00 broadcast XXX.XXX.XXX.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
(не используется) rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether XX:XX:XX:XX:XX:XX
        inet 192.16.111.5 netmask 0xffffff00 broadcast 192.16.111.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33204
(pppoe) tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492
        inet XXX.XXX.XXX.XXX --> YYY.YYY.YYY.YYY netmask 0xffffffff
        Opened by PID 452
tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        inet 10.0.0.1 --> 10.0.0.2 netmask 0xffffffff
        Opened by PID 834

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

Оглавление

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


1. "Как отключить интернет по IP-адресу политиками PF"  +/
Сообщение от reader (ok) on 27-Сен-10, 12:24 
>[оверквотинг удален]
>
>rdr on tun0 proto { tcp, udp } from any to $ext_if port $mail_ports -> $mail_server port $mail_ports
>rdr on tun0 proto { tcp, udp } from any to $ext_if port $mail_smtp -> $mail_server port $mail_smtp
>
>nat on $ext_if from <trusted> to any -> ($ext_if)
>
>antispoof quick for $ext_if
>
>block all
>block quick on $ext_if inet proto tcp from <bedguys>

тут ip источника уже будет ip ext_if

>[оверквотинг удален]
>
>pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33204
>(pppoe) tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492
>        inet XXX.XXX.XXX.XXX --> YYY.YYY.YYY.YYY netmask 0xffffffff
>        Opened by PID 452
>
>tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
>        inet 10.0.0.1 --> 10.0.0.2 netmask 0xffffffff
>        Opened by PID 834
>

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

2. "Как отключить интернет по IP-адресу политиками PF"  +/
Сообщение от sage444 (ok) on 27-Сен-10, 12:43 
>[оверквотинг удален]
>
>pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33204
>(pppoe) tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492
>        inet XXX.XXX.XXX.XXX --> YYY.YYY.YYY.YYY netmask 0xffffffff
>        Opened by PID 452
>
>tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
>        inet 10.0.0.1 --> 10.0.0.2 netmask 0xffffffff
>        Opened by PID 834
>

запрещайте на внутреннем интерфейсе

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

3. "Как отключить интернет по IP-адресу политиками PF"  +/
Сообщение от komix (ok) on 27-Сен-10, 15:20 
>запрещайте на внутреннем интерфейсе

честно говоря, не понял в чем моя ошибка, не могли бы вы объяснить подробнее.

P.S. PF, если честно, первый раз в глаза вижу, BSD второй) до этого администрировал дебиан и на мой взгляд с iptables все куда проще, хотя это уже дело привычки.

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

4. "Как отключить интернет по IP-адресу политиками PF"  +/
Сообщение от reader (ok) on 27-Сен-10, 15:35 
>>запрещайте на внутреннем интерфейсе
>
>честно говоря, не понял в чем моя ошибка, не могли бы вы
>объяснить подробнее.

в том что не хотите понять что на ext_if сначала выполнится nat (snat в аналогии с iptables), а потом уже пакет попадет на правила фильтров.
если фильтровать на внутреннем интерфейсе , то это будет до nat и ip еще не будут изменены

>
>P.S. PF, если честно, первый раз в глаза вижу, BSD второй) до
>этого администрировал дебиан и на мой взгляд с iptables все куда
>проще, хотя это уже дело привычки.

одинаково, главное порядок прохождения знать

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

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

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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