The OpenNET Project / Index page

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

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

"Нужна помощь с фильтром пакетов во FreeBSD."  +/
Сообщение от jamalspb (ok) on 15-Фев-11, 14:28 
Здравствуйте, стоит задача - закрыть контакт всем юзерам. Шлюз на FreeBSD. Как не крутил конфиг pf, контакт работает как часы. Вот конфиг:

if_int = fxp0
if_ext = rl0
social_nets = "{vkontakte.ru, vk.com}"
scrub in all fragment reassemble min-ttl 20 max-mss 1440
scrub in all no-df
scrub all reassemble tcp
rdr pass on $if_ext proto tcp from any to ($if_ext) port 33990 -> 192.168.1.123 port 3389
rdr pass on $if_ext proto tcp from any to ($if_ext) port 33991 -> 192.168.1.214 port 3389
rdr pass on $if_ext proto tcp from any to ($if_ext) port 33890 -> 192.168.1.146 port 3389
rdr pass on $if_ext proto tcp from any to ($if_ext) port 43990 -> 192.168.1.123 port 4899
rdr pass on $if_int proto tcp from any to 212.113.121.5 port 110 -> 192.168.0.2 port 110
dns0 = 217.170.64.5
dns1 = 217.170.67.5
pop0 = 212.113.121.5
smtp0 = 81.9.33.32
ftp0 = 212.113.114.3
bank = 81.3.141.34
bank1 = 81.3.141.38
buh = 89.249.20.50
memebot = 69.60.123.180
dvesite0 = 88.201.201.136
dvesite1 = 88.212.196.88
consultant1 = 81.177.13.194
consultant2 = 212.5.88.13
ku_pp_ru1 = 216.98.141.250
ku_pp_ru2 = 66.197.160.197
table <unlim_ext> {$dns0,$dns1,$pop0,$smtp0,$ftp0,$bank,$bank1,$buh,$memebot,$dvesite0,$dvesite1,$consultant1,$consultant2,$ku_pp_ru1,$ku_pp_ru2}
lta = 192.168.11.33
srv = 192.168.1.123
igor = 192.168.1.112
michael = 192.168.1.100
table <DOMAIN_USERS> {}
nat on $if_ext from <DOMAIN_USERS> to <unlim_ext> -> ($if_ext)
table <unlim_local> { $srv,$lta,$igor,$michael }
nat on $if_ext inet proto icmp from $if_int:network to any -> ($if_ext)
nat on $if_ext from <unlim_local> to any -> ($if_ext)
nat on $if_ext from 10.0.0.0/24 to any -> ($if_ext)
nat on $if_ext from $if_int:network to <unlim_ext> -> ($if_ext)
nat on $if_ext from $if_int:network to any -> ($if_ext)
pass quick from <unlim_local> to any keep state
pass quick from any to <unlim_local> keep state
pass quick from 10.0.0.0/24 to any keep state
pass quick from any to 10.0.0.0/24 keep state
pass quick from $if_ext:network to <unlim_ext> keep state
pass quick from <unlim_ext> to $if_ext:network keep state
pass quick from $if_ext:network to any keep state
pass quick from any to $if_ext:network keep state
block all
block in on $if_int proto tcp from "192.168.0.0/16" to $social_nets        *Вот так я пытаюсь закрыть контакт
block in  log quick from any os NMAP
block in  log quick proto tcp from any flags SF/SFRA
block in  log quick proto tcp from any flags FPU/SFRAUP
block in  log quick proto tcp from any flags F/SFRA
block in  log quick proto tcp from any flags U/SFRAU
block in  log quick proto tcp from any flags P/P
block in  quick on $if_ext from { 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 0.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 204.152.64.0/23, 224.0.0.0/3, 20.20.20.0/24 }
block out quick on $if_ext from { 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 0.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 204.152.64.0/23, 224.0.0.0/3, 20.20.20.0/24 }
pass in  quick on lo keep state
pass out quick on lo keep state
pass in on $if_int from any to any keep state
pass out on $if_int from any to any keep state
block on $if_int from 192.168.1.91 to any
block on $if_int from any to 192.168.1.91
block out on $if_int from 192.168.0.123 to any
pass in log on $if_ext inet proto icmp icmp-type echoreq
pass in on $if_ext inet proto icmp icmp-type echorep
pass in  on $if_ext proto udp from 78.36.0.0/16 to $if_ext:network keep state
tcp_services_ext = "{ ssh, ftp, ftp-data, smtp, pop3, www, 1723, 7000 }"
pass in  on $if_ext proto tcp from any to $if_ext:network port $tcp_services_ext flags S/SA keep state
pass in  on $if_ext proto tcp from any to $if_ext:network port > 49151 flags S/SA keep state
pass out on $if_ext from any to any keep state

Ответить | Правка | Cообщить модератору

Оглавление

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


1. "Нужна помощь с фильтром пакетов во FreeBSD."  +/
Сообщение от mef (ok) on 15-Фев-11, 15:11 
А так?
 block in quick on $if_int proto tcp from "192.168.0.0/16" to $social_nets 

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Нужна помощь с фильтром пакетов во FreeBSD."  +/
Сообщение от jamalspb (ok) on 15-Фев-11, 15:22 
> А так?
 block in quick on $if_int proto tcp from "192.168.0.0/16" 
> to $social_nets

И так соответсвенно тоже, т.к. нет других похожих правил.


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Нужна помощь с фильтром пакетов во FreeBSD."  +/
Сообщение от Alexander Sheiko on 15-Фев-11, 15:51 
>> А так?
 block in quick on $if_int proto tcp from "192.168.0.0/16" 
>> to $social_nets

> И так соответсвенно тоже, т.к. нет других похожих правил.

Не занимайтесь ерундой. "Вконтакте" висит на куче IP, которые крутятся DNS балансировщиком:

root@gw:/usr/home/adsh>host vkontakte.ru
vkontakte.ru has address 87.240.188.251
vkontakte.ru has address 87.240.188.252
vkontakte.ru has address 87.240.188.253
vkontakte.ru has address 87.240.188.254
vkontakte.ru has address 87.240.188.249
vkontakte.ru has address 87.240.188.250
vkontakte.ru mail is handled by 10 mail.vkontakte.ru.
root@gw:/usr/home/adsh>host vkontakte.ru
vkontakte.ru has address 87.240.188.249
vkontakte.ru has address 87.240.188.250
vkontakte.ru has address 87.240.188.251
vkontakte.ru has address 87.240.188.252
vkontakte.ru has address 87.240.188.253
vkontakte.ru has address 87.240.188.254
vkontakte.ru mail is handled by 10 mail.vkontakte.ru.

Поднимите в своём локальном DNS фиктивную зону для этих доменов. Пусть резолвятся в IP основного сайта Вашей компании...

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Нужна помощь с фильтром пакетов во FreeBSD."  +/
Сообщение от kerilka on 15-Фев-11, 16:25 
>[оверквотинг удален]
> root@gw:/usr/home/adsh>host vkontakte.ru
> vkontakte.ru has address 87.240.188.249
> vkontakte.ru has address 87.240.188.250
> vkontakte.ru has address 87.240.188.251
> vkontakte.ru has address 87.240.188.252
> vkontakte.ru has address 87.240.188.253
> vkontakte.ru has address 87.240.188.254
> vkontakte.ru mail is handled by 10 mail.vkontakte.ru.
> Поднимите в своём локальном DNS фиктивную зону для этих доменов. Пусть резолвятся
> в IP основного сайта Вашей компании...

либо как вариант завернуть всех на прокси, а в проксе уже резать

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Нужна помощь с фильтром пакетов во FreeBSD."  +/
Сообщение от jamalspb (ok) on 15-Фев-11, 17:02 
>[оверквотинг удален]
> root@gw:/usr/home/adsh>host vkontakte.ru
> vkontakte.ru has address 87.240.188.249
> vkontakte.ru has address 87.240.188.250
> vkontakte.ru has address 87.240.188.251
> vkontakte.ru has address 87.240.188.252
> vkontakte.ru has address 87.240.188.253
> vkontakte.ru has address 87.240.188.254
> vkontakte.ru mail is handled by 10 mail.vkontakte.ru.
> Поднимите в своём локальном DNS фиктивную зону для этих доменов. Пусть резолвятся
> в IP основного сайта Вашей компании...

Спасибо, вот что значит широко смотреть на проблему ))) действительно ведь иногда все можно сделать проще. Надеюсь никто не догодается пойти в контакт по ip )))

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Нужна помощь с фильтром пакетов во FreeBSD."  +/
Сообщение от Nimdar (ok) on 15-Фев-11, 19:13 
>[оверквотинг удален]
>> vkontakte.ru has address 87.240.188.251
>> vkontakte.ru has address 87.240.188.252
>> vkontakte.ru has address 87.240.188.253
>> vkontakte.ru has address 87.240.188.254
>> vkontakte.ru mail is handled by 10 mail.vkontakte.ru.
>> Поднимите в своём локальном DNS фиктивную зону для этих доменов. Пусть резолвятся
>> в IP основного сайта Вашей компании...
> Спасибо, вот что значит широко смотреть на проблему ))) действительно ведь иногда
> все можно сделать проще. Надеюсь никто не догодается пойти в контакт
> по ip )))

Но легко догадается прописать адрес в etc/hosts.

Честно говоря, не вникал в простыню приведённых правил.
Рабочее решение:
table <social_nets> persist file "/etc/pf.social"
block in quick from <social_nets> to any            
block out quick from any to <social_nets>

cat /etc/pf.social
vkontakte.ru
vk.com
и т.д.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Нужна помощь с фильтром пакетов во FreeBSD."  +/
Сообщение от Alexander Sheiko on 15-Фев-11, 22:40 

> Но легко догадается прописать адрес в etc/hosts.
> Честно говоря, не вникал в простыню приведённых правил.
> Рабочее решение:
> cat /etc/pf.social
> vkontakte.ru
> vk.com
> и т.д.

В таблицу попадают лишь адреса, в которые отрезолвится домен в момент загрузки правил.

Лучше закрыть весь блок 87.240.128.0/18:

% Information related to '87.240.128.0/18AS47541'

route:          87.240.128.0/18
descr:          VKONTAKTE SPb Net
origin:         AS47541
mnt-by:         VKONTAKTE-NET-MNT
source:         RIPE # Filtered

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Нужна помощь с фильтром пакетов во FreeBSD."  +/
Сообщение от михалыч (ok) on 16-Фев-11, 10:06 
> Лучше закрыть весь блок 87.240.128.0/18:

лучше вот эти ))

87.240.160.0/19
93.186.224.0/20
95.142.192.0/20

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Нужна помощь с фильтром пакетов во FreeBSD."  +/
Сообщение от Nimdar (ok) on 16-Фев-11, 10:52 
>[оверквотинг удален]
> В таблицу попадают лишь адреса, в которые отрезолвится домен в момент загрузки
> правил.
> Лучше закрыть весь блок 87.240.128.0/18:
> % Information related to '87.240.128.0/18AS47541'
> route:          87.240.128.0/18
> descr:          VKONTAKTE SPb
> Net
> origin:         AS47541
> mnt-by:         VKONTAKTE-NET-MNT
> source:         RIPE # Filtered

Тоже вариант, но опять же не лучший. Вон уже добавили блоки. Сеть(и) будет развиваться в любом случае => надо отслеживать это дело.
Гораздо проще прописать в кроне:
/sbin/pfctl -q -t social_nets -Tr -f /etc/pf.social
и забыть об этом навсегда.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

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

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




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

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