информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяSpanning Tree Protocol: недокументированное применениеСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / sysadmin
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
не побоюсь повториться 15.08.02 22:36  Число просмотров: 1217
Автор: beLIEve Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Покажи ipfw show. Так проще понять будет твою проблему.

fw# ipfw show
00010 0 0 check-state
00020 891 233 allow ip from .163 to any keep-state via rl1
00030 0 0 allow ip from .166 to any keep-state via rl1
00090 8144 27094 deny log logamount 100 ip from any to any via rl0
00100 304 4744 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
65535 0 0 allow ip from any to any

166 - firewall, 163 - защищаем. rl1 - ловит траффик от 163.
Данный вариант полностью работоспособен. НО! Меня беспокоит то, что я добился этого, НЕ ПОНИМАЯ как он работает - а это согласитесь не очень хорошо. А именно: почему в данном случае мне приходится работать с rl1, если закрывал я rl0? Я вообще не вкупаюсь ПРИЧЕМ ЗДЕСЬ rl1??? Роботоспособности я добился экспирементальным путем и знаю, что если вот так не открывать rl1, при том что закрывал я rl0, работать он не будет.
И второе, все, что нужно от этого файрвола - это максимум защиты для 163, но чтобы этот 163 мог использовать любые инет-сервисы.
<sysadmin>
FreeBSD+ipfw+bridge 12.08.02 20:22  
Автор: beLIEve Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Имеется локалка. Я взял один хост из этой локалки, поставил на нем BSD'ю, настроил бриджинг и файрвол. "за него" поставил другой хост из это же локалки. Айпишник на этом файрволе я прицепил на его внутренний(rl0) сетевой интерфейс (тот, что ловит траффик от защищаемого).
Пока я не начал воять свои правила - все работает. Но вот я начал их писать, причем работаю исключительно с "внешним"(rl1) интерфейсом, и все идет кувырком. Сначала я пишу
add 100 deny ip from any to any via rl1 - все закрывается как нужно, а затем пишу
add 90 allow ip from <ip нужых мне хостов> to any via rl1 keep-state и
add 1 chek-state ставлю.
По моей логике хосты, которые я указал должны свободно ходить за файрвол, а они не ходят до тех пор, пока я не начинаю махинации с rl0(а именно приходится и для rl0 писать 90-е правило).
Объясните мне механизм этого бриджинга, если знаете ;)
FreeBSD+ipfw+bridge 12.08.02 20:59  
Автор: Sandy <Alexander Stepanov> Статус: Elderman
<"чистая" ссылка>
> add 100 deny ip from any to any via rl1 - все закрывается
> как нужно, а затем пишу
> add 90 allow ip from <ip нужых мне хостов> to any via
> rl1 keep-state и
> add 1 chek-state ставлю.
> По моей логике хосты, которые я указал должны свободно
> ходить за файрвол, а они не ходят до тех пор, пока я не
> начинаю махинации с rl0(а именно приходится и для rl0
> писать 90-е правило).
> Объясните мне механизм этого бриджинга, если знаете ;)

Все правильно! Без дополнительного правила для внутреннего интерфейса никакие коннекты на внешний интерфейс не пройдут, ведь твои внутренние клиенты посылают запросы во внешний мир именно через внутренний интерфейс, и пока ты ему (внутреннему интерфейсу) не скажешь "Можешь на внутренний интерфейс принимать входящие коннекты от хостов из локалки и отправлять их на внешний интерфейс" он этого делать не будет.
FreeBSD+ipfw+bridge 13.08.02 14:42  
Автор: beLIEve Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > add 100 deny ip from any to any via rl1 - все
> закрывается
> > как нужно, а затем пишу
> > add 90 allow ip from <ip нужых мне хостов> to
> any via
> > rl1 keep-state и
> > add 1 chek-state ставлю.
> > По моей логике хосты, которые я указал должны свободно
> > ходить за файрвол, а они не ходят до тех пор, пока я
> не
> > начинаю махинации с rl0(а именно приходится и для rl0
> > писать 90-е правило).
> > Объясните мне механизм этого бриджинга, если знаете ;)
>
> Все правильно! Без дополнительного правила для внутреннего
> интерфейса никакие коннекты на внешний интерфейс не
> пройдут, ведь твои внутренние клиенты посылают запросы во
> внешний мир именно через внутренний интерфейс, и пока ты
> ему (внутреннему интерфейсу) не скажешь "Можешь на
> внутренний интерфейс принимать входящие коннекты от хостов
> из локалки и отправлять их на внешний интерфейс" он этого
> делать не будет.
Так он же это делал до того, как я написал 100-е правило. Причем я как раз не понимаю почему я должен открывать еще и внутренний, если я его вообще не трогал? Бриджует-то он без помощи правил...
Кстати, закрыв внешний интерфейс, те хосты, что за файрволом свободно видят этот файрвол(ip'шник, как я говорил, висит на внутреннем интерфейсе), т.е. внутренний вроде и не закрывается, но блин не пропускает на внешний, хотя правило разрешающее есть...
FreeBSD+ipfw+bridge 14.08.02 11:51  
Автор: Sandy <Alexander Stepanov> Статус: Elderman
<"чистая" ссылка>
> > > add 100 deny ip from any to any via rl1 - все
> > закрывается

В этом месте ты внешнему интерфейсу ЗАПРЕТИЛ принимать коннекты ОТ ВСЕХ ко ВСЕМ, в т.ч. и от внутреннего интерфейса.

[поскипано]

> Так он же это делал до того, как я написал 100-е правило.
> Причем я как раз не понимаю почему я должен открывать еще и
> внутренний, если я его вообще не трогал? Бриджует-то он без
> помощи правил...
> Кстати, закрыв внешний интерфейс, те хосты, что за
> файрволом свободно видят этот файрвол(ip'шник, как я
> говорил, висит на внутреннем интерфейсе), т.е. внутренний
> вроде и не закрывается, но блин не пропускает на внешний,
> хотя правило разрешающее есть...

см. выше
А тогда, что делает вот это... 14.08.02 19:55  
Автор: beLIEve Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > > > add 100 deny ip from any to any via rl1 -
> все
> > > закрывается
>
> В этом месте ты внешнему интерфейсу ЗАПРЕТИЛ принимать
> коннекты ОТ ВСЕХ ко ВСЕМ, в т.ч. и от внутреннего
> интерфейса.
Этого я и хотел! А еще хотел, чтобы файрвол и защищаемый хост могли инициировать любые соединения в мир. Для этого я написал:
add 90 allow ip from "внут. инт. и защищаемый хост" to any via rl1 keep-state
По моему, это правило как раз и разрешит внешнему интерфейсу принимать пакеты от внутреннего интерфейса и защищаемого хоста. Если это не так, то скажите как нужно написать, чтобы он принимал пакеты от кого нужно.
Что не так в 90-м правиле?

Для справки: правило 65535 стоит на allow, так как этого требовал бриджинг. Есть также все правила, которые устанавливаются по дефаулту, я их не убирал.

P.S. Типа сорри если я что-то очевидное не догоняю ;)
FreeBSD+ipfw+bridge 14.08.02 12:57  
Автор: Night Knight [HZTeam.msk] <George Fedosejev> Статус: Member
<"чистая" ссылка>
> > > > add 100 deny ip from any to any via rl1 -
> все
> > > закрывается
>
> В этом месте ты внешнему интерфейсу ЗАПРЕТИЛ принимать
> коннекты ОТ ВСЕХ ко ВСЕМ, в т.ч. и от внутреннего
> интерфейса.

IMHO не в этом дело, он же и перед этим правилом что-то вставлял.

По умолчанию политика для IPFW - deny all from any to any, так что надо явно указать для каких интерфейсов что разрешено. Минимум может быть таким:

add 10000 allow ip from any to any via lo0
add 10100 check-state
add 10200 allow ip from ${INNERIP} to any in via rl0 keep-state
add 10300 allow ip from ${INNERIP} to any out via rl1

строка "add 65535 deny all from any to any" добавится автоматически, если только в ядре не выставлено "options IPFIREWALL_DEFAULT_TO_ACCEPT"
FreeBSD+ipfw+bridge 14.08.02 10:46  
Автор: BonPari Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > > add 100 deny ip from any to any via rl1 - все
> > закрывается
> > > как нужно, а затем пишу
> > > add 90 allow ip from <ip нужых мне хостов>
> to
> > any via
> > > rl1 keep-state и
> > > add 1 chek-state ставлю.
> > > По моей логике хосты, которые я указал должны
> свободно
> > > ходить за файрвол, а они не ходят до тех пор,
> пока я
> > не
> > > начинаю махинации с rl0(а именно приходится и для
> rl0
> > > писать 90-е правило).
> > > Объясните мне механизм этого бриджинга, если
> знаете ;)
> >
> > Все правильно! Без дополнительного правила для
> внутреннего
> > интерфейса никакие коннекты на внешний интерфейс не
> > пройдут, ведь твои внутренние клиенты посылают запросы
> во
> > внешний мир именно через внутренний интерфейс, и пока
> ты
> > ему (внутреннему интерфейсу) не скажешь "Можешь на
> > внутренний интерфейс принимать входящие коннекты от
> хостов
> > из локалки и отправлять их на внешний интерфейс" он
> этого
> > делать не будет.
> Так он же это делал до того, как я написал 100-е правило.
> Причем я как раз не понимаю почему я должен открывать еще и
> внутренний, если я его вообще не трогал? Бриджует-то он без
> помощи правил...
> Кстати, закрыв внешний интерфейс, те хосты, что за
> файрволом свободно видят этот файрвол(ip'шник, как я
> говорил, висит на внутреннем интерфейсе), т.е. внутренний
> вроде и не закрывается, но блин не пропускает на внешний,
> хотя правило разрешающее есть...


Может я чего не понял уж извините, но по моему ты сначала все запретил, а патом пытаешся разрешить доступ
FreeBSD+ipfw+bridge 14.08.02 20:03  
Автор: beLIEve Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Может я чего не понял уж извините, но по моему ты сначала
> все запретил, а патом пытаешся разрешить доступ
Ну да, у меня политика такая - запретить все, а потом разрешать только то, что нужно. Просто в данном случае "нужно" - это любые соединения, но только в одну сторону - в мир, но так, чтобы из мир не доставал ;)
FreeBSD+ipfw+bridge 15.08.02 11:04  
Автор: Night Knight [HZTeam.msk] <George Fedosejev> Статус: Member
<"чистая" ссылка>
> Просто в данном случае
> "нужно" - это любые соединения, но только в одну сторону -
> в мир, но так, чтобы из мир не доставал ;)

Чтобы мир не доставал надо сделать

add xxx allow tcp from any to ${INNERIP} established in via rl1

т.е. снаружи будут пропускаться соединения, установленные из внутренней сети и не будут пропускаться запросы на установление соединения. Кстати, политика по умолчанию на разрешение совершенно не обязательна. Покажи ipfw show. Так проще понять будет твою проблему.
не побоюсь повториться 15.08.02 22:36  
Автор: beLIEve Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Покажи ipfw show. Так проще понять будет твою проблему.

fw# ipfw show
00010 0 0 check-state
00020 891 233 allow ip from .163 to any keep-state via rl1
00030 0 0 allow ip from .166 to any keep-state via rl1
00090 8144 27094 deny log logamount 100 ip from any to any via rl0
00100 304 4744 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
65535 0 0 allow ip from any to any

166 - firewall, 163 - защищаем. rl1 - ловит траффик от 163.
Данный вариант полностью работоспособен. НО! Меня беспокоит то, что я добился этого, НЕ ПОНИМАЯ как он работает - а это согласитесь не очень хорошо. А именно: почему в данном случае мне приходится работать с rl1, если закрывал я rl0? Я вообще не вкупаюсь ПРИЧЕМ ЗДЕСЬ rl1??? Роботоспособности я добился экспирементальным путем и знаю, что если вот так не открывать rl1, при том что закрывал я rl0, работать он не будет.
И второе, все, что нужно от этого файрвола - это максимум защиты для 163, но чтобы этот 163 мог использовать любые инет-сервисы.
не побоюсь повториться 16.08.02 17:07  
Автор: Night Knight [HZTeam.msk] <George Fedosejev> Статус: Member
<"чистая" ссылка>
Вот черт, такой ответ написал и все куда-то в трубу улетело :( Ну тогда еще раз.

Значит так, какой именно интерфейс ты будешь файерволить - монопенисуально. Более того, IP'шник на бридже ты можешь повесить на любой интерфейс, это нужно только для того, что бы ты мог приконнектится к бриджу, скажем, по ssh для удаленного администрирования. Если я правильно понял твою кофигурацию, то она выглядит так:

(comp .163) --- rl0 .166 (bridge) rl1 --- outer

Тебе нужно запретить все коннекты к 163-му извне. Это проще сделать на внешнем интерфейсе бриджа. Попробуй так:

add 10 allow ip from any to any via lo0
add 20 check-state
add 30 allow all from .163 to any keep-state via rl1
add 40 allow all from me to any keep-state via rl1
add 50 allow tcp from ${YOURHOST} to me 22 in via rl1
add 60 deny log logamount 100 all from any to any in via rl1
остальное по вкусу

Итого:
10 - разрешаем любые коннекты через интерфейс обратной петли;
20 - проверяем динамические правила;
30 - разрешаем любые коннекты с 163-го хоста наружу (я специально пишу "allow all", а не "allow ip", чтобы проходили (R)ARP);
40 - разрешаем любые коннекты с бриджа через внешний интерфейс;
50 - входящее ssh на бридж с твоего хоста;
60 - запрещаем любые входящие коннекты извне через внешний интерфейс бриджа.
По идее, этого достаточно.

А по твоим правилам получается, что разрешены все коннекты, входящие через rl1, что к бриджу, что к 163-му хосту.
Спасибо большое! Пойду пробывать. 16.08.02 20:27  
Автор: beLIEve Статус: Незарегистрированный пользователь
<"чистая" ссылка>
1




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


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