Wed, May 05, 2004 at 13:27:15, greg wrote about "[uanog] ipfw q, part 2":
по мотивам ваших ответов я поправил свой скрипт:
Григорий, пожалуйста, в каждом таком письме сообщайте топологию сети: IP адреса на самом этом хосте, какой интерфейс какую роль исполняет, какие сети под что отдаются. А также особенности настройки хоста (тот же net.inet.ip.fw.one_pass), параметры natd. Догадываться про это или выкапывать из архивов по чайной ложке - слишком геморройно. Некоторый общий принцип: если непонятно, почему не работает, ко всем запретительным правилам добавить слово log и смотреть в логах, на каком правиле затыкается полезная деятельность.
#!/bin/sh ipfw -f flush
ipfw add check-state
ipfw add allow all from any to any via lo0
ipfw add deny all from 10.0.0.0/8 to any in via tun0 ipfw add deny all from 172.16.0.0/12 to any in via tun0 ipfw add deny all from 192.168.0.0/16 to any in via tun0
Предполагаю, что tun0 - интерфейс наружу, ppp* - внутренние пришедшие.
ipfw add allow icmp from me to any keep-state ipfw add allow icmp from 192.168.5.0/24 to me ipfw add deny all from any to any frag Не уверен, что это полезное правило в данном случае. Вообще, надо бы прибить правилам фиксированные номера, чтобы можно было легко убирать/добавлять на ходу и при этом не путаться в числах. Или опять же как минимум log сказать.
ipfw add divert natd all from 192.168.5.220 to any out xmit tun0 ipfw add divert natd all from 192.168.7.70 to any out recv ppp\* xmit tun0 Ему разрешён прямой выход? Я не видел обратного разрешения на вход. ipfw add divert natd all from any to 195.5.17.86 in recv tun0 Этот адрес совпадает с внешним на tun0? deny_incoming включали у natd? Если включали - выключить. ipfw add unreach filter-prohib ip from not me to any out recv any xmit tun0 ipfw1 или ipfw2? Если ipfw1 - у него "not me" временами глючил. Лучше это сделать через skipto.
ipfw add allow gre from 192.168.5.0/24 to me ipfw add allow gre from me to any
ipfw add allow udp from me to any keep-state ipfw add allow tcp from me to any keep-state ipfw add allow tcp from any to any established Здесь смешение стилей (само по себе ничего плохого не даёт, но конструкция выглядит криво). keep-state для того и придумали, чтобы не надо было разрешать _весь_ established. Более прямо было бы добавить keep-state ко всем разрешениям ниже по одному порту. ipfw add allow tcp from any to me 25 setup ipfw add allow tcp from any to me ssh setup ipfw add allow tcp from 192.168.7.0/24 to me 3128 setup ipfw add allow tcp from 192.168.7.0/24 to me 2080 setup via ppp\* ipfw add allow tcp from 192.168.7.0/24 to me pop3 setup via ppp\* Порты можно перечислять через запятую - это умеет даже ipfw1. ipfw add allow tcp from any to me http setup via tun0 ipfw add allow tcp from 192.168.7.0/24 to me setup via ppp\* Это более общее разрешение, чем разрешения чуть выше (2080, pop3). Они отдельные тут просто не нужны. ipfw add allow tcp from 192.168.5.0/24 to me pptp setup ipfw add allow tcp from 192.168.5.0/24 to me ftp\\-data-ftp setup via sk0 Что это? ipfw add allow udp from 192.168.7.0/24 to me 53 ipfw add allow udp from 192.168.5.0/24 to me 53 Тут точно надо было добавить keep-state к обоим правилам - а то ответы запретятся.
ipfw add allow tcp from any to me 53 setup То же самое.
ipfw add deny log all from any to any
НЕ работает. начинает работать только если после правил divert стоит allow all from any to any, но это же не дело! что еще нужно?
Где стоит общий allow - тут не настолько важно - могло и перед последним deny стоять. -netch- =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message