информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаАтака на InternetПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / sysadmin
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
А тогда, что делает вот это... 14.08.02 19:55  Число просмотров: 1159
Автор: 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. Типа сорри если я что-то очевидное не догоняю ;)
<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-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach