The OpenNET Project / Index page

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

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

"Чего не хватает в rc.firewall"  
Сообщение от nda (ok) on 20-Янв-08, 12:30 
Доброго времени суток. Организовал дома небольшой интернет сервер на базе FreeBSD 6.2.
Карта сети:
ADSL <-> FreeBSD Internet Server <-> Local Network
Связь с провайдером через pppoe, использую модем D-Link 2300U в режиме bridge.
Для доступа хостов в интернет поднят natd. IP адреса внутри локалки раздаются по DHCP.
Проблем в приципе нет, но хотелось бы услышать мнение специалиста по составленному rc.firewall, может чего-то не хватает, может есть что-то лишнее.
Вот несколько вопросов которые у меня возникли:
1. Если использовать правило "add deny ip from any to 192.168.0.0/16 in via ${out_if}" то  локальные хосты в инет попасть не могут.
2. Через divert правило пакетов вообще не проходит, почему? И вообще непонятно как тогда хосты лазают в инет, если через natd они не проходят? А они лазают :)
3. Есть ли ошибки в последовательности правил?
Буду рад любым советам и исправлениям. Спасибо.

/**< rc.firewall listing */

#!/bin/sh -q

ipfw_cmd="/sbin/ipfw -q"

lan_if="rl1"
out_if="tun0"
lan_net="192.168.13.0/24"


${ipfw_cmd} -f flush
${ipfw_cmd} add check-state
${ipfw_cmd} add deny ip from any to 10.0.0.0/8 in via ${out_if}
${ipfw_cmd} add deny ip from any to 172.16.0.0/12 in via ${out_if}
# ${ipfw_cmd} add deny ip from any to 192.168.0.0/16 in via ${out_if}
${ipfw_cmd} add deny ip from any to 0.0.0.0/8 in via ${out_if}
${ipfw_cmd} add deny ip from any to 169.254.0.0/16 in via ${out_if}
${ipfw_cmd} add deny ip from any to 240.0.0.0/4 in via ${out_if}
${ipfw_cmd} add deny icmp from any to any frag
${ipfw_cmd} add deny log icmp from any to 255.255.255.255 in via ${out_if}
${ipfw_cmd} add deny log icmp from any to 255.255.255.255 out via ${out_if}
${ipfw_cmd} add allow tcp from any to any established
${ipfw_cmd} add allow ip from any to any via lo0
${ipfw_cmd} add allow ip from any to any via ${lan_if}
${ipfw_cmd} add allow udp from any to any domain via ${out_if}
${ipfw_cmd} add allow udp from any domain to any via ${out_if}
${ipfw_cmd} add allow tcp from any to any http,https,ftp,5190 out via ${out_if}
${ipfw_cmd} add allow ip from me to any out via ${out_if}
${ipfw_cmd} add allow icmp from any to any icmptypes 0,8,11
${ipfw_cmd} add allow tcp from any to me 80 via ${out_if}
${ipfw_cmd} add divert natd ip from ${lan_net} to any out via ${out_if}
${ipfw_cmd} add 65535 deny ip from any to any

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

 Оглавление

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


1. "Чего не хватает в rc.firewall"  
Сообщение от CrAzOiD (ok) on 20-Янв-08, 12:55 
я бы еще добавил
${ipfw_cmd} add deny ip from 192.168.0.0/16 to any out via ${out_if}

что бы исключить случайный проброс

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

2. "Чего не хватает в rc.firewall"  
Сообщение от nda (ok) on 20-Янв-08, 14:54 
>я бы еще добавил
>${ipfw_cmd} add deny ip from 192.168.0.0/16 to any out via ${out_if}
>
>что бы исключить случайный проброс

Спасибо, но, как видишь, в листинге это правило у меня закоментировано, по причине того что с этим правилом ни один хост из локалки не может выйти в инет.

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

3. "Чего не хватает в rc.firewall"  
Сообщение от CrAzOiD (ok) on 20-Янв-08, 15:15 
>>я бы еще добавил
>>${ipfw_cmd} add deny ip from 192.168.0.0/16 to any out via ${out_if}
>>
>>что бы исключить случайный проброс
>
>Спасибо, но, как видишь, в листинге это правило у меня закоментировано, по
>причине того что с этим правилом ни один хост из локалки
>не может выйти в инет.

не, у меня другое правило, исключающее случайный проброс наружу адресов локальной сети через внешний интерфейс


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

4. "Чего не хватает в rc.firewall"  
Сообщение от nda (ok) on 20-Янв-08, 15:21 
>не, у меня другое правило, исключающее случайный проброс наружу адресов локальной сети
>через внешний интерфейс

Извини, не обратил внимание. Попробовал, у всех хостов отключился инет. Пакеты режутся как раз на этом правиле.

00100   0     0 check-state
00200   0     0 deny ip from any to 10.0.0.0/8 in via tun0
00300   0     0 deny ip from any to 172.16.0.0/12 in via tun0
00400   0     0 deny ip from any to 0.0.0.0/8 in via tun0
00500   0     0 deny ip from any to 169.254.0.0/16 in via tun0
00600   0     0 deny ip from any to 240.0.0.0/4 in via tun0
00700  17   980 deny ip from 192.168.0.0/16 to any out via tun0
00800   0     0 deny icmp from any to any frag
00900   0     0 deny log icmp from any to 255.255.255.255 in via tun0
01000   0     0 deny log icmp from any to 255.255.255.255 out via tun0
01100  39  2918 allow tcp from any to any established
01200   0     0 allow ip from any to any via lo0
01300   6   360 allow ip from any to any via rl1
01400   0     0 allow udp from any to any dst-port 53 via tun0
01500   0     0 allow udp from any 53 to any via tun0
01600   0     0 allow tcp from any to any dst-port 80,443,21,5190 out via tun0
01700   0     0 allow ip from me to any out via tun0
01800   0     0 allow icmp from any to any icmptypes 0,8,11
01900   0     0 allow tcp from any to me dst-port 80 via tun0
02000   0     0 divert 8668 ip from 192.168.13.0/24 to any out via tun0
65535 170 26450 deny ip from any to any

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

5. "Чего не хватает в rc.firewall"  
Сообщение от CrAzOiD (ok) on 20-Янв-08, 15:29 
мне кажется что дело в том что правило где происходит трансляция в самом конце.
т.е. сначала режешь, а потом уже и транслировать нечего
размести правила по-другому.
то что я предложил где-то в самом конце должно быть - редкая ситуация, ну и тоже после ната
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Чего не хватает в rc.firewall"  
Сообщение от nda (ok) on 20-Янв-08, 15:40 
>мне кажется что дело в том что правило где происходит трансляция в
>самом конце.
>т.е. сначала режешь, а потом уже и транслировать нечего
>размести правила по-другому.
>то что я предложил где-то в самом конце должно быть - редкая
>ситуация, ну и тоже после ната

Сделал, действительно работает. Но вот чего странно, если я размещаю за divert`ом, правила
${ipfw_cmd} add allow udp from any to any domain via ${out_if}
${ipfw_cmd} add allow udp from any domain to any via ${out_if}
${ipfw_cmd} add allow tcp from any to any http,https,ftp,5190 out via ${out_if}
они перестают работать, инета нет, зато само правило divert срабатывает, иначе все наборот инет есть, правила работают, но в обход divert`а.

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

7. "Чего не хватает в rc.firewall"  
Сообщение от idle (ok) on 21-Янв-08, 17:10 
>[оверквотинг удален]
>>ситуация, ну и тоже после ната
>
>Сделал, действительно работает. Но вот чего странно, если я размещаю за divert`ом,
>правила
>${ipfw_cmd} add allow udp from any to any domain via ${out_if}
>${ipfw_cmd} add allow udp from any domain to any via ${out_if}
>${ipfw_cmd} add allow tcp from any to any http,https,ftp,5190 out via ${out_if}
>
>они перестают работать, инета нет, зато само правило divert срабатывает, иначе все
>наборот инет есть, правила работают, но в обход divert`а.

Ничего странного, эти правила(allow,divert) терминирующие, когда пакет в них попадает дальнейший поиск по правилам не производится.
man ipfw

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

8. "Чего не хватает в rc.firewall"  
Сообщение от Pahanivo email(??) on 13-Мрт-08, 11:21 
>${ipfw_cmd} add divert natd ip from ${lan_net} to any out via ${out_if}

Как оно с таким правилом вообще может работать?
Это получается что исходящие пакеты мы прогоняем через divert (NAT), а входящие нет?

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

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

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




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

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