Чего не хватает в rc.firewall, nda, 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
|
- Чего не хватает в rc.firewall, CrAzOiD, 12:55 , 20-Янв-08 (1)
я бы еще добавил ${ipfw_cmd} add deny ip from 192.168.0.0/16 to any out via ${out_if}что бы исключить случайный проброс
- Чего не хватает в rc.firewall, nda, 14:54 , 20-Янв-08 (2)
>я бы еще добавил >${ipfw_cmd} add deny ip from 192.168.0.0/16 to any out via ${out_if} > >что бы исключить случайный проброс Спасибо, но, как видишь, в листинге это правило у меня закоментировано, по причине того что с этим правилом ни один хост из локалки не может выйти в инет.
- Чего не хватает в rc.firewall, CrAzOiD, 15:15 , 20-Янв-08 (3)
>>я бы еще добавил >>${ipfw_cmd} add deny ip from 192.168.0.0/16 to any out via ${out_if} >> >>что бы исключить случайный проброс > >Спасибо, но, как видишь, в листинге это правило у меня закоментировано, по >причине того что с этим правилом ни один хост из локалки >не может выйти в инет. не, у меня другое правило, исключающее случайный проброс наружу адресов локальной сети через внешний интерфейс
- Чего не хватает в rc.firewall, nda, 15:21 , 20-Янв-08 (4)
>не, у меня другое правило, исключающее случайный проброс наружу адресов локальной сети >через внешний интерфейс Извини, не обратил внимание. Попробовал, у всех хостов отключился инет. Пакеты режутся как раз на этом правиле. 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
- Чего не хватает в rc.firewall, CrAzOiD, 15:29 , 20-Янв-08 (5)
мне кажется что дело в том что правило где происходит трансляция в самом конце. т.е. сначала режешь, а потом уже и транслировать нечего размести правила по-другому. то что я предложил где-то в самом конце должно быть - редкая ситуация, ну и тоже после ната
- Чего не хватает в rc.firewall, nda, 15:40 , 20-Янв-08 (6)
>мне кажется что дело в том что правило где происходит трансляция в >самом конце. >т.е. сначала режешь, а потом уже и транслировать нечего >размести правила по-другому. >то что я предложил где-то в самом конце должно быть - редкая >ситуация, ну и тоже после ната Сделал, действительно работает. Но вот чего странно, если я размещаю за 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`а.
- Чего не хватает в rc.firewall, idle, 17:10 , 21-Янв-08 (7)
>[оверквотинг удален] >>ситуация, ну и тоже после ната > >Сделал, действительно работает. Но вот чего странно, если я размещаю за 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
- Чего не хватает в rc.firewall, Pahanivo, 11:21 , 13-Мрт-08 (8)
>${ipfw_cmd} add divert natd ip from ${lan_net} to any out via ${out_if} Как оно с таким правилом вообще может работать? Это получается что исходящие пакеты мы прогоняем через divert (NAT), а входящие нет?
|