информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Spanning Tree Protocol: недокументированное применениеСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
 20 лет Ubuntu 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / sysadmin
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Проблемы с IPFW FreeBSD + nat + squid 13.11.05 23:49  
Автор: AleX-shl Статус: Незарегистрированный пользователь
Отредактировано 13.11.05 23:51  Количество правок: 1
<"чистая" ссылка>
Привет всемогущий all.
Передо мной встал новый вопрос - по скольку в "данный момент" я не могу находиться на рабочем месте приходится админить сервер удаленно. Собственно сапер ошибается единажды - как и сис. админ при удаленном конфиге файрвола)) Суть проблемы: имеется сеть офиса -> В локалке стоит внутренний сервак (ВС) с работающем DHCP, с помощью которого сеть офисса делится на 2 отдела: 192.168.188.xxx / 192.168.187.xxx. Соответственно происходит динамическое распределение ip. В интет ходим через выделенку, локальная сеть скрывается внешним роутером на freebsd (ВР). ВР - имеет три сетевухи: rl0 - смотрит наружу, rl1 - в локалку напрямую во ВС, и rl2 - клиентов зацепили, чтоб инет юзали. Также на ВР вертится transp-proxy. При конфиге IPFW в следующем "не грамотном" виде, все пакетики бегают "все" users счастливы:
ipfw pipe 1 config bw 512Kbit/s
ipfw pipe 2 config bw 256Kbit/s
ipfw pipe 3 config bw 1024Kbit/s
ipfw add 10 allow ip from any to any via lo0
ipfw add 20 deny all from 192.168.0.0/24 to 192.168.188.0/24
ipfw add 20 deny all from 192.168.0.0/24 to 192.168.187.0/24
ipfw add 20 deny all from 192.168.0.0/24 to 192.168.184.0/24
ipfw add 27 allow all from 82.179.111.126 to 204.152.184.73
ipfw add 27 allow all from 204.152.184.73 to 82.179.111.126
ipfw add 28 allow tcp from 82.179.111.126 20 to 192.168.187.0/24 out
ipfw add 28 allow tcp from 82.179.111.126 21 to 192.168.187.0/24 out
ipfw add 28 allow tcp from 192.168.187.0/24 to 82.179.111.126 20 in
ipfw add 28 allow tcp from 192.168.187.0/24 to 82.179.111.126 21 in
ipfw add 29 allow tcp from 82.179.111.126 20 to 192.168.188.101 out
ipfw add 29 allow tcp from 82.179.111.126 21 to 192.168.188.101 out
ipfw add 29 allow tcp from 192.168.188.101 to 82.179.111.126 20 in
ipfw add 29 allow tcp from 192.168.188.101 to 82.179.111.126 21 in
ipfw add 30 pipe 2 tcp from 82.179.111.126 20 to any out
ipfw add 30 pipe 2 tcp from 82.179.111.126 21 to any out
ipfw add 30 pipe 2 tcp from any to 82.179.111.126 20 in
ipfw add 30 pipe 2 tcp from any to 82.179.111.126 21 in
ipfw add 31 pipe 2 all from 192.168.0.0/24 to any via rl2
ipfw add 31 pipe 2 all from any to 192.168.0.0/24
ipfw add 32 pipe 1 all from 192.168.188.76 to any via rl1
ipfw add 32 pipe 1 all from any to 192.168.188.76
ipfw add 33 pipe 1 all from 192.168.188.68 to any via rl1
ipfw add 33 pipe 1 all from any to 192.168.188.68
ipfw add 34 pipe 1 all from 192.168.188.86 to any via rl1
ipfw add 34 pipe 1 all from any to 192.168.188.86
ipfw add 90 fwd 127.0.0.1,3128 tcp from 192.168.0.0/16 to any 80
ipfw add 100 allow ip from any to any via rl1
ipfw add 500 divert 8668 ip from 192.168.0.0/16 to any
ipfw add 600 allow ip from any to any out via rl0
ipfw add 800 divert 8668 ip from any to any via rl0
ipfw add 900 allow ip from any to any

Написал новый конфиг ->

netkomp='192.168.188.0/24'
nettp='192.168.187.0/24'
netclient='192.168.0.0/24'
netall='192.168.0.0/16'
ifout='rl0'
ifsez='rl1'
ifclient='rl2'
ipfw -f flush
ipfw pipe 1 config bw 256Kbit/s
ipfw pipe 2 config bw 512Kbit/s
ipfw pipe 3 config bw 1024Kbit/s
ipfw add 10 check-state
ipfw add 20 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17
ipfw add 30 reject ip from ${netall} to any via ${ifout}
ipfw add 40 allow ip from any to any via l0
ipfw add 50 allow tcp from me to any keep-state via ${ifout}
ipfw add 60 allow icmp from any to any
ipfw add 70 allow udp from me to any domain keep-state
ipfw add 80 allow udp from any to me domain
ipfw add 90 allow ip from me to any
ipfw add 200 fwd 127.0.0.1,3128 tcp from ${netall} to any 80 out via ${ifout}
ipfw add 300 divert natd ip from ${netall} to any out via ${ifout}
ipfw add 400 allow ip from ${netkomp} to any via ${ifsez}
ipfw add 500 allow ip from ${nettp} to any via ${ifsez}
ipfw add 600 allow ip from ${netclient} to any via ${ifclient}
ipfw add 700 allow all from any to any
И тут загвоздка: при коннекте к роутеру через модем ppp0 все прекрасно работаем, но во внутренний сети проблемы - клиенты с локалки (ВС - сети 187.0/24 188.0/24) в инет не ходят=(! Причем, как видно это настройка открытого файрвола (правило 700) - вообще в целях построить закрытый фв-л для доступа только по http, pop, smtp и т.п. дабы отсечь P2P клиентов и другую ерунду хламящую траффик.
Спасибо за понимание...
имхо это правило 30. Пакеты срезаются на нем и не доходят до... 14.11.05 12:26  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
имхо это правило 30. Пакеты срезаются на нем и не доходят до сквида.
Нужно наверное сделать так:
ipfw add 30 reject ip from ${netall} to any in via ${ifout}

> Привет всемогущий all.
> Передо мной встал новый вопрос - по скольку в "данный
> момент" я не могу находиться на рабочем месте приходится
> админить сервер удаленно. Собственно сапер ошибается
> единажды - как и сис. админ при удаленном конфиге
> файрвола)) Суть проблемы: имеется сеть офиса -> В
> локалке стоит внутренний сервак (ВС) с работающем DHCP, с
> помощью которого сеть офисса делится на 2 отдела:
> 192.168.188.xxx / 192.168.187.xxx. Соответственно
> происходит динамическое распределение ip. В интет ходим
> через выделенку, локальная сеть скрывается внешним роутером
> на freebsd (ВР). ВР - имеет три сетевухи: rl0 - смотрит
> наружу, rl1 - в локалку напрямую во ВС, и rl2 - клиентов
> зацепили, чтоб инет юзали. Также на ВР вертится
> transp-proxy. При конфиге IPFW в следующем "не грамотном"
> виде, все пакетики бегают "все" users счастливы:
> ipfw pipe 1 config bw 512Kbit/s
> ipfw pipe 2 config bw 256Kbit/s
> ipfw pipe 3 config bw 1024Kbit/s
> ipfw add 10 allow ip from any to any via lo0
> ipfw add 20 deny all from 192.168.0.0/24 to
> 192.168.188.0/24
> ipfw add 20 deny all from 192.168.0.0/24 to
> 192.168.187.0/24
> ipfw add 20 deny all from 192.168.0.0/24 to
> 192.168.184.0/24
> ipfw add 27 allow all from 82.179.111.126 to 204.152.184.73
> ipfw add 27 allow all from 204.152.184.73 to 82.179.111.126
> ipfw add 28 allow tcp from 82.179.111.126 20 to
> 192.168.187.0/24 out
> ipfw add 28 allow tcp from 82.179.111.126 21 to
> 192.168.187.0/24 out
> ipfw add 28 allow tcp from 192.168.187.0/24 to
> 82.179.111.126 20 in
> ipfw add 28 allow tcp from 192.168.187.0/24 to
> 82.179.111.126 21 in
> ipfw add 29 allow tcp from 82.179.111.126 20 to
> 192.168.188.101 out
> ipfw add 29 allow tcp from 82.179.111.126 21 to
> 192.168.188.101 out
> ipfw add 29 allow tcp from 192.168.188.101 to
> 82.179.111.126 20 in
> ipfw add 29 allow tcp from 192.168.188.101 to
> 82.179.111.126 21 in
> ipfw add 30 pipe 2 tcp from 82.179.111.126 20 to any out
> ipfw add 30 pipe 2 tcp from 82.179.111.126 21 to any out
> ipfw add 30 pipe 2 tcp from any to 82.179.111.126 20 in
> ipfw add 30 pipe 2 tcp from any to 82.179.111.126 21 in
> ipfw add 31 pipe 2 all from 192.168.0.0/24 to any via rl2
> ipfw add 31 pipe 2 all from any to 192.168.0.0/24
> ipfw add 32 pipe 1 all from 192.168.188.76 to any via rl1
> ipfw add 32 pipe 1 all from any to 192.168.188.76
> ipfw add 33 pipe 1 all from 192.168.188.68 to any via rl1
> ipfw add 33 pipe 1 all from any to 192.168.188.68
> ipfw add 34 pipe 1 all from 192.168.188.86 to any via rl1
> ipfw add 34 pipe 1 all from any to 192.168.188.86
> ipfw add 90 fwd 127.0.0.1,3128 tcp from 192.168.0.0/16 to
> any 80
> ipfw add 100 allow ip from any to any via rl1
> ipfw add 500 divert 8668 ip from 192.168.0.0/16 to any
> ipfw add 600 allow ip from any to any out via rl0
> ipfw add 800 divert 8668 ip from any to any via rl0
> ipfw add 900 allow ip from any to any
>
> Написал новый конфиг ->
>
> netkomp='192.168.188.0/24'
> nettp='192.168.187.0/24'
> netclient='192.168.0.0/24'
> netall='192.168.0.0/16'
> ifout='rl0'
> ifsez='rl1'
> ifclient='rl2'
> ipfw -f flush
> ipfw pipe 1 config bw 256Kbit/s
> ipfw pipe 2 config bw 512Kbit/s
> ipfw pipe 3 config bw 1024Kbit/s
> ipfw add 10 check-state
> ipfw add 20 deny icmp from any to any in icmptypes
> 5,9,13,14,15,16,17
> ipfw add 30 reject ip from ${netall} to any via ${ifout}
> ipfw add 40 allow ip from any to any via l0
> ipfw add 50 allow tcp from me to any keep-state via
> ${ifout}
> ipfw add 60 allow icmp from any to any
> ipfw add 70 allow udp from me to any domain keep-state
> ipfw add 80 allow udp from any to me domain
> ipfw add 90 allow ip from me to any
> ipfw add 200 fwd 127.0.0.1,3128 tcp from ${netall} to any
> 80 out via ${ifout}
> ipfw add 300 divert natd ip from ${netall} to any out via
> ${ifout}
> ipfw add 400 allow ip from ${netkomp} to any via ${ifsez}
> ipfw add 500 allow ip from ${nettp} to any via ${ifsez}
> ipfw add 600 allow ip from ${netclient} to any via
> ${ifclient}
> ipfw add 700 allow all from any to any
> И тут загвоздка: при коннекте к роутеру через модем ppp0
> все прекрасно работаем, но во внутренний сети проблемы -
> клиенты с локалки (ВС - сети 187.0/24 188.0/24) в инет не
> ходят=(! Причем, как видно это настройка открытого файрвола
> (правило 700) - вообще в целях построить закрытый фв-л для
> доступа только по http, pop, smtp и т.п. дабы отсечь P2P
> клиентов и другую ерунду хламящую траффик.
> Спасибо за понимание...
Все равно трабл - 30 правило просто забыл правильно... 14.11.05 13:40  
Автор: AleX-shl Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> имхо это правило 30. Пакеты срезаются на нем и не доходят
> до сквида.
> Нужно наверное сделать так:
> ipfw add 30 reject ip from ${netall} to any in via ${ifout}
>


Все равно трабл - 30 правило просто забыл правильно написать!!! На самом деле я его убрал вообще - все равно users локалки не имеют доступа к сети, имхо это не есть хорошо.... Отсюда вывод - или огромный трабл+( в чем загвоздка понять не могу....
Блин, детский сад! [upd] 14.11.05 16:03  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
Отредактировано 14.11.05 16:29  Количество правок: 1
<"чистая" ссылка>
> > имхо это правило 30. Пакеты срезаются на нем и не
> доходят
> > до сквида.
> > Нужно наверное сделать так:
> > ipfw add 30 reject ip from ${netall} to any in via
> ${ifout}
> >
>
>
> Все равно трабл - 30 правило просто забыл правильно
> написать!!! На самом деле я его убрал вообще - все равно
> users локалки не имеют доступа к сети, имхо это не есть
> хорошо.... Отсюда вывод - или огромный трабл+( в чем
> загвоздка понять не могу....

Как я тебе помогу с рулесетом, если ты его неправильно выкладываешь? :))))
Давай сюда `ipfw sh` нового рулесета

;------------------------------
Update (из старого):
Общие рекомендации: берём бумажку, и на ней рисуем временную диаграмму прохождения пакета через рулесет. для каждого интерфейса. для трёх пакетов tcp-хендшейка. Итого 6 диаграмм.
для каждого правила пишем:
1. Был ли матч?
2. Если 1 то был ли акцепт/денай/диверт ?
3. Если диверт, был ли реврайт (натд далеко не всегда делает реврайт - толи только входящие, толи только исходящие - see man)

Находим ошибку.
Если не находим ошибку - значит неправильно построили диаграмму. Вставляем рулесы с кейвордом count и максимально специфическими адресам для матча (мы ведь знаем откуда идет тестовый коннкешен). Проверяем. ОбязательнО оставим вокруг правил с check-state и дивертами.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach