Вообщем, ситуация следующая ->
В локалке стоит внутренний сервак (ВС) с работающем DHCP, с помощью которого сеть офисса делится на 3 отдела: 192.168.188.xxx / 192.168.184.xxx / 192.168.187.xxx. Соответственно происходит динамическое распределение ip. В интет ходим через выделенку, локальная сеть скрывается внешним роутером на freebsd (ВР). ВР - имеет две сетевухи: rl0 - смотрит наружу, rl1 - в локалку напрямую во ВС. rl0 -> 222.222.222.222, rl1 - 192.168.185.100 (соответственно адрес интерфейса ВС - 192.168.185.200).
В ядро вкомпилили: options IPFIREWALL, IPDIVERT...
в rc.conf прописали:
firewall_enable="YES"
firewall_type="/etc/firewall.rc"
gateway_enable="YES"
natd_enable="YES"
natd_interface="rl0"
ifconfig_rl0="inet 222.222.222.222 netmask 255.255.255.252"
ifconfig_rl1="inet 192.168.185.100 netmask 255.255.255.0"
defaultrouter="222.222.222.221"
route add 192.168.188.0 192.168.185.200
route add 192.168.187.0 192.168.185.200
route add 192.168.184.0 192.168.185.200
----------------------------
Если заводим ipfw открытого типа - пакеты ходят - все замечательно:
ipfw add divert natd all from any to any
ipfw add allow all from any to any
------
Ставлю свои правила (которые на старом роутере работали) -> капут:
/sbin/ipfw flush
/sbin/ipfw pipe 1 config bw 44Kbit/s delay 150ms
/sbin/ipfw pipe 2 config bw 64Kbit/s delay 50ms
/sbin/ipfw pipe 3 config bw 44Kbit/s delay 150ms
/sbin/ipfw pipe 4 config bw 24Kbit/s delay 50ms
/sbin/ipfw pipe 5 config bw 128Kbit/s delay 75ms
/sbin/ipfw pipe 6 config bw 64Kbit/s delay 25ms
/sbin/ipfw pipe 7 config bw 512Kbit/s delay 50ms
/sbin/ipfw pipe 8 config bw 512Kbit/s delay 50ms
/sbin/ipfw add 50 allow ip from any to any via lo0
/sbin/ipfw add 55 pipe 7 ip from any to 192.168.184.0/24
/sbin/ipfw add 55 pipe 7 ip from 192.168.184.0/24 to any
/sbin/ipfw add 200 allow ip from any to any via rl1
/sbin/ipfw add 500 divert 8668 ip from 192.168.0.0/16 to any
/sbin/ipfw add 600 allow ip from any to any out via rl0
/sbin/ipfw add 800 divert 8668 ip from any to any via rl0
/sbin/ipfw add 900 allow ip from any to any
При этом машины с локалки не могут даже пингануть интерфейс rl1=(((((((
netstat -nr показывает:
Destination Gateway Flags Refs Use Netif Expire
default 82.179.111.125 UGSc 49 9970408 rl0
222.222.222.220/30 link#1 UC 0 0 rl0
222.222.222.221 0:a0:c5:cb:62:72 UHLW 33 0 rl0
127.0.0.1 127.0.0.1 UH 0 210 lo0
192.168.184 192.168.185.200 UGSc 15 807127 rl1
192.168.185 link#2 UC 0 0 rl1
192.168.185.200 0:d0:b7:bf:b1:13 UHLW 6 705 rl1
192.168.187 192.168.185.200 UGSc 0 115060 rl1
192.168.188 192.168.185.200 UGSc 3 6305843 rl1
Что не так?? 3-ий день понять не могу=(
А почему?:26.09.05 16:17 Автор: Den <Денис Т.> Статус: The Elderman
> > /sbin/ipfw add 55 pipe 7 ip from > any to > > 192.168.184.0/24 > > /sbin/ipfw add 55 pipe 7 ip from > > 192.168.184.0/24 to any > > ??? > > A potomu - chtoby lyudi s etogo otdela ves' 2 m/b traffik > ineta ne sazhali
Кажется, ты меня не понял.
Обрати внимание на нумерацию этих двух правил - оба 55.
Ко всему прочему, на всякий случай, я бы сделал так:
add allow pipe 7 ip from 192.168.184.0/24 to any out xmit rl0
add allow pipe 7 tcp from any to 192.168.184.0/24 in recv rl0 established
add deny tcp from any to 192.168.184.0/24 in recv rl0
add allow pipe 7 ip from any to 192.168.184.0/24 in recv rl0
А почему ты все правила прописываешь в отдельной команде?
Не проще ли создать файл с правилами и грузить его в ipfw?
Po povodu numeratsii - eto ne strashno, prosto pod odnim...27.09.05 12:22 Автор: AleX-shl Статус: Незарегистрированный пользователь
> > > /sbin/ipfw add 55 pipe 7 ip > from > > any to > > > 192.168.184.0/24 > > > /sbin/ipfw add 55 pipe 7 ip > from > > > 192.168.184.0/24 to any > > > ??? > > > > A potomu - chtoby lyudi s etogo otdela ves' 2 m/b > traffik > > ineta ne sazhali > > Кажется, ты меня не понял. > Обрати внимание на нумерацию этих двух правил - оба 55. > > Ко всему прочему, на всякий случай, я бы сделал так: > > add allow pipe 7 ip from 192.168.184.0/24 to any out xmit > rl0 > add allow pipe 7 tcp from any to 192.168.184.0/24 in recv > rl0 established > add deny tcp from any to 192.168.184.0/24 in recv rl0 > add allow pipe 7 ip from any to 192.168.184.0/24 in recv > rl0 > > А почему ты все правила прописываешь в отдельной команде? > Не проще ли создать файл с правилами и грузить его в ipfw?
Po povodu numeratsii - eto ne strashno, prosto pod odnim nomerom 2-a pravila. A pravila umenya hranyatsya /etc/rc.firewall. Ponimaesh, problema v tom, chto pakety idut tol'ko po pravilam s DIVERT, a po trubam dazhe hodit' ne pytayutsya=(((( I s lokalki rl1 ne pinganut'
А что в логах ipfw?27.09.05 13:28 Автор: Den <Денис Т.> Статус: The Elderman
> Вообщем, ситуация следующая -> > В локалке стоит внутренний сервак (ВС) с работающем DHCP, с > помощью которого сеть офисса делится на 3 отдела: > 192.168.188.xxx / 192.168.184.xxx / 192.168.187.xxx. > Соответственно происходит динамическое распределение ip. В > интет ходим через выделенку, локальная сеть скрывается > внешним роутером на freebsd (ВР). ВР - имеет две сетевухи: > rl0 - смотрит наружу, rl1 - в локалку напрямую во ВС. rl0 > -> 222.222.222.222, rl1 - 192.168.185.100 > (соответственно адрес интерфейса ВС - 192.168.185.200). > В ядро вкомпилили: options IPFIREWALL, IPDIVERT...
А DUMMYNET?
> Ставлю свои правила (которые на старом роутере работали) > -> капут: > /sbin/ipfw flush > /sbin/ipfw pipe 1 config bw 44Kbit/s delay 150ms > /sbin/ipfw pipe 2 config bw 64Kbit/s delay 50ms > /sbin/ipfw pipe 3 config bw 44Kbit/s delay 150ms > /sbin/ipfw pipe 4 config bw 24Kbit/s delay 50ms > /sbin/ipfw pipe 5 config bw 128Kbit/s delay 75ms > /sbin/ipfw pipe 6 config bw 64Kbit/s delay 25ms > /sbin/ipfw pipe 7 config bw 512Kbit/s delay 50ms > /sbin/ipfw pipe 8 config bw 512Kbit/s delay 50ms > > /sbin/ipfw add 50 allow ip from any to any via lo0 > /sbin/ipfw add 55 pipe 7 ip from any to 192.168.184.0/24 > /sbin/ipfw add 55 pipe 7 ip from 192.168.184.0/24 to any > /sbin/ipfw add 200 allow ip from any to any via rl1 > /sbin/ipfw add 500 divert 8668 ip from 192.168.0.0/16 to > any > /sbin/ipfw add 600 allow ip from any to any out via rl0 > /sbin/ipfw add 800 divert 8668 ip from any to any via rl0 > /sbin/ipfw add 900 allow ip from any to any > При этом машины с локалки не могут даже пингануть интерфейс > rl1=(((((((
Дык. А что говорит /var/log/security ?
А ругается ли ipfw когда ты эти правила в него впихаваешь?
А какие каунтеры растут на рулесах (ipfw sh после 50-ти пингов на внутренний интерфейс)
В ядре все прописано26.09.05 15:46 Автор: AleX-shl Статус: Незарегистрированный пользователь
В ядре все прописано
По поводу логов в субботу скажу, когда на сервак винт с этим фрюком поставлю (на недели не смогу, т.к. контора работает, а инет всем нужен).
По поводу пингов - нет ответа.... Т.е. такое ощущение как буд-то файрвол отбрасывает, наверняка так оно и есть. Ведь с открытым типом пинги идут и инет ходит! Правила вроде верные прописаны, а получается так, что пакеты отбрасывает, хотя по правилам с divert пакеты бегают.