Ru-Board.club
← Вернуться в раздел «Программы»

» WIPFW / IPFW

Автор: admBeat
Дата сообщения: 25.10.2010 13:57
вопросы по ipfw (от Luigi Rizzo).

1. как зовутся сетевые интерфейсы? eth0, название сетевого подключения , etc - не подходит? что писать после "via"?
2. зачем "allow all from any to any via lo0" если пинги на 127.0.0.1 и без этого ходят.
3. где у него лог файл?

поделитесь рабочим конфигом (пример хотябы)?
Автор: Engaged Clown
Дата сообщения: 25.10.2010 21:43
admBeat
QTFW поможет немного разобраться.
Автор: METAJIJI
Дата сообщения: 26.10.2010 12:10
Тем, что он от Microsoft А если честно он неуправляем. Некоторые приложения могут самостоятельно добавить правила. Меня это слегка пугает... Да и ipfw как-то привычней.

И все же интересно как узнать список интерфейсов. Раньше можно было командой:
Код:
C:\>ipfw enum
lo0 - MS TCP Loopback (127.0.0.1)
eth1 - Подключение по локальной сети 2
eth3 - Подключение по локальной сети (111.111.111.111)
Автор: METAJIJI
Дата сообщения: 27.10.2010 09:57

Цитата:
QTFW поможет немного разобраться.

При выборе via, поле пустое...

Главный вопрос как получить список интерфейсов?
Автор: mihmig
Дата сообщения: 30.10.2010 13:25
Да полно Вам мучиться - dummynet портирован на винду - он даже шейпить умеет
а wipfw - проект заброшенный
Автор: admBeat
Дата сообщения: 01.11.2010 12:18
mihmig
мы и обсуждаем сей продукт (dummynet)

если у вас все в порядке с ним, то подскажите по паре вопросов выше
Автор: TILK
Дата сообщения: 17.03.2011 15:27
Да уж, на Win 7 x64 эти варианты ставить слишком геморно.
Уже задумываюсь о фре + виртуальная машина на ней ))) Ибо винда, действительно, слишком самостоятельна. Думает за нас.
Автор: mookhin
Дата сообщения: 19.07.2011 22:51

Цитата:
[/q]
[q]При выборе via, поле пустое...
 
Главный вопрос как получить список интерфейсов?

На этапе инсталляции (readme оригинала) служба прописывается на конкретном интерфейсе. Поэтому дальнейшие телодвижения будут касаться только там где с ои драйвер. это - ПЛЮС, но вот есть одна непонятка - где "ловить" конструкцию типа deny log any to any? syslogD в помощь? хочу текстовик для разборов...
Автор: mookhin
Дата сообщения: 20.07.2011 08:00
Народ, помогите разобраться с парочкой вопросов по связке ipfw+dummynet.

Что к чему я очень хорошо знаю по успешно юзаному ранее под XP - WIPFW.

1. коим образом заставить NDIS-драйвер загружать при запуске настройки правил... ранее это был config.cmd. Если это он, то где он должен располагаться(откуда запускаться)?

2. Протоколирование: как запустить эту фичу для обычного текстовика? Или без "фенек" syslog-демона не обойдется?

Заранее спасибо за советы...
Автор: c00ker
Дата сообщения: 29.07.2011 13:54
всем привет, я автор wipfw, решил отписать ответы на некоторые вопросы. Решил продолжить разработку(нашлись спонсоры), взяв за базу текущий порт от Риццо, который сейчас тоже несколько подзаброшен. Собираю все наработки вместе.

Ответы по порту ipfw (от Luigi Rizzo).
как зовутся сетевые интерфейсы? eth0, название сетевого подключения , etc - не подходит? что писать после "via"?

Не реализовано, наименования интерфейсов попросту нет.

зачем "allow all from any to any via lo0" если пинги на 127.0.0.1 и без этого ходят.
Loopback интерфейс не поддерживается NDIS-IM драйвером.

где у него лог файл?

Не реализовано. Доработал в своем проекте (wipfw).

коим образом заставить NDIS-драйвер загружать при запуске настройки правил... ранее это был config.cmd. Если это он, то где он должен располагаться(откуда запускаться)?

Не реализовано. Переделываю как в wipfw ранее.

Протоколирование: как запустить эту фичу для обычного текстовика? Или без "фенек" syslog-демона не обойдется?

Переделал и скинул на http://sf.net/projects/wipfw, лог работает как раньше. Для включения лога ipfw sysctl net.inet.ip.fw.verbose=1

В-общем работы по устранению недоработок выше активно ведутся сейчас, в рамках проекта wipfw, в последних числах месяца- начале августа всё обновлю. Кому интересно -пишите, спрашивайте


Автор: mookhin
Дата сообщения: 29.07.2011 15:12

Цитата:
Переделал и скинул на http://sf.net/projects/wipfw лог работает как раньше. Для включения лога ipfw sysctl net.inet.ip.fw.verbose=1
 
В-общем работы по устранению недоработок выше активно ведутся сейчас, в рамках проекта wipfw, в последних числах месяца- начале августа всё обновлю. Кому интересно   -пишите, спрашивайте

Чел! Огромное тебе спасибы за то, что проект снова в деле!!!
И сразу же вопросы:
- в ридмишке упоминается "select 'netipfw-pass.inf'". ? подходят штатные?
- волнует в первую очередь загрузка правил (config.cmd/wipfw.conf)?

я уже списывался с Луиджи - он действительно забросил проект... и на предметные вопросы - виртуально пожимал плечами...

а за deny - отдельная благодарность...
Автор: c00ker
Дата сообщения: 29.07.2011 16:14

Цитата:
в ридмишке упоминается "select 'netipfw-pass.inf'". ? подходят штатные?


это я второпях опечатался, читать как "select 'netipfw.inf'"


Цитата:
волнует в первую очередь загрузка правил (config.cmd/wipfw.conf)


это сегодня вечерком поправлю.

Луиджи про windows-порт вроде как мало ведает, он ведет основную ветку. Какие-либо изменения, я так понимаю, в ipfw3 сейчас ведет Marta Carbone, и то в линукс-направлении. Под windows последние наработки ipfw3 'без топора' не компилируются
Рад что мой проект пригодится кому-либо.
Автор: mookhin
Дата сообщения: 29.07.2011 16:30

Цитата:
волнует в первую очередь загрузка правил (config.cmd/wipfw.conf)
 
это сегодня вечерком поправлю.


OK! а теперь фрагмент переписки:

> In list of system startup drivers/services (Windows7 SP1) found two records:
> 1. ipfw service (image path system32\drivers\ipfw.sys)
> Manual start (Stopped)
> 2. IpfwMP (image path system32\drivers\ipfw.sys)
> Manual start (Running)
>
> I try to manually start ipfw service and got error from Service Control
> Manager (Event ID: 7000 - file not found) Is this correct?

i have no idea on why this does not work.

а вот как выглядит протокол... [deny log ip from any to any]:
0000000010 2011.07.29 15:32:00.530    ipfw: 65534 Deny UDP :1194 :1194 [no if info]
0000000011 2011.07.29 15:32:00.557    ipfw: 65534 Deny UDP :138 :138 [no if info]
0000000012 2011.07.29 15:32:00.589    ipfw: 65534 Deny UDP :6078 :6078 [no if info]
0000000013 2011.07.29 15:32:00.593    ipfw: 65534 Deny UDP :61809 :53 [no if info]

и че-то криво с заданием адресов/таблиц. похоже там в исходниках косяк на косяке...
Автор: c00ker
Дата сообщения: 29.07.2011 16:36

Цитата:

> I try to manually start ipfw service and got error from Service Control
> Manager (Event ID: 7000 - file not found) Is this correct?


Драйвер уже в стеке, его стартовать не нужно. Нужна только лишь какая-нибудь программа(сервис), загружающая правила в фаервол при запуске системы. Раньше в моем порте эту же ф-ию выполнял ipfw.exe, она же была и стартующим сервисом.


Цитата:

а вот как выглядит протокол... [deny log ip from any to any]:
0000000010 2011.07.29 15:32:00.530 ipfw: 65534 Deny UDP :1194 :1194 [no if info]


да, про это тоже в курсе, поправлю. В целом драйвер работает стабильно, нужны "косметические" доработки )

а что с с заданием адресов/таблиц?
Автор: mookhin
Дата сообщения: 29.07.2011 18:16

Цитата:
Драйвер уже в стеке, его стартовать не нужно. Нужна только лишь какая-нибудь программа(сервис), загружающая правила в фаервол при запуске системы. Раньше в моем порте эту же ф-ию выполнял ipfw.exe, она же была и стартующим сервисом.

тогда может есть смысл оставить драйвер (и в службах) как MiniPort, а службой/хелпером назначить исполняемый модуль, который знает где искать (/etc/wipfw.conf) и стартует сам драйвер?
ps. Сссылки на очередные бэты будут?
Автор: c00ker
Дата сообщения: 01.08.2011 11:02
драйвер стартует сам, его запускать не нужно ни вручную, ни программно, нужно лишь закидывать в него правила фильтрации.
бета сейчас обновляется по адресу http://sourceforge.net/projects/wipfw/files/experimental/ примерно раз в два дня, довожу постепенно до продукционного состояния.
Автор: mookhin
Дата сообщения: 01.08.2011 14:26

Цитата:
довожу постепенно до продукционного состояния

вижу... автозагрузка правил (wifw.conf) - работает...

Но... !
1.0000019357 2011.08.01 14:19:07.816    ipfw: 100 Accept UDP :1194 :1194 [no if info]
0000019358 2011.08.01 14:19:07.816    ipfw: 100 Accept UDP :1194 :1194 [no if info]

2.полный косяк с заданием адресов/таблиц:
table 1 add 192.168.0.0/20
table 2 add 192.168.6.0/24{133,130}
table 3 add 192.168.6.28

\Администратор>ipfw table all list
---table(1)---
(null)/20 0
---table(2)---
(null)/24 0
---table(3)---
(null)/32 0

не подгоняю и понимаю... и лелею надежду, что когда-нибудь это будет "кузяво"

Добавлено:

Цитата:
автозагрузка правил (wifw.conf) - работает

погорячился я.... дык не работает...
Автор: c00ker
Дата сообщения: 01.08.2011 16:50

Цитата:
2.полный косяк с заданием адресов/таблиц


про это не знал, спасибо! действительно пока всё один большой косяк.
Автор: mookhin
Дата сообщения: 02.08.2011 11:03

Цитата:
про это не знал, спасибо! действительно пока всё один большой косяк.

не убивайся... помогу чем смогу... хотя бы потестирую. Но в идеале, было бы не плохо для начала взять за основу ipfw2 v0.3.2b и пересобрать под 7/Vista. Но там нет dummynet. Эт - первое, а второе - еще одна непонятка с конструкцией:

table 1 add 192.168.0.0/20
table 2 add 192.168.6.0/24{133,130}
table 3 add 192.168.6.28

c:\Windows\System32\drivers\etc>ipfw table all list
---table(1)---
192.168.0.0/20 0
---table(2)---
192.168.6.0/24 0
---table(3)---
192.168.6.28/32 0

add pass log all from table(2) to any
add pass all from table(3) to any

1. ANY - работает, ME - нет...
2. обрабатывается только 1-е правило. 2-е не работает

без правильно работающего протокола - очень трудно ориентироваться что к чему...
Автор: c00ker
Дата сообщения: 02.08.2011 15:31
Тестировать действительно тут нужно тщательно. С помпой анонсированный итальянцами порт ipfw3 на винду оказался очень еще сырым.


Цитата:
было бы не плохо для начала взять за основу ipfw2 v0.3.2b и пересобрать под 7/Vista. Но там нет dummynet.


Пересобрать мало, все равно работать будет только с ndis-драйвером. Механизмы фильтрации трафика в этих системах другие. Так что лучше копать этот порт.


Цитата:
1. ANY - работает, ME - нет...


да, а также recv, via, xmit, in, out, вобщем всё, касающееся описания сетевого интерфейса.
Автор: mookhin
Дата сообщения: 02.08.2011 18:30

Цитата:
да, а также recv, via, xmit, in, out, вобщем всё, касающееся описания сетевого интерфейса.

От онО как..., Мыхалычъ!... мда... одним словом - пахать и пахать.
Автор: c00ker
Дата сообщения: 05.08.2011 13:59

Цитата:
table 2 add 192.168.6.0/24{133,130}


Цитата:

2. обрабатывается только 1-е правило. 2-е не работает


и не должно, синтаксис задан неверный.

Обновил, логи корректно пишутся, всё вроде б работает корректно.
Осталось только автозагрузку правил доделать при старте системы, и обработку имен интерфейсов.
Автор: mookhin
Дата сообщения: 08.08.2011 10:10

Цитата:
table 2 add 192.168.6.0/24{133,130}



Цитата:
и не должно, синтаксис задан неверный.


и что я здесь не так сделал? вроде в мануалах все так... может че просмотрел?

 
Цитата:
Обновил, логи корректно пишутся, всё вроде б работает корректно.


вижу. проделан ненапрасно титанический труд! и работающее ANY/ME - радует.


Цитата:
Осталось только автозагрузку правил доделать при старте системы, и обработку имен интерфейсов.


есть предложение реализовать все это близко к оригиналу: пущай стартующий драйвер ищет настройки в etc/wipfw.conf. а?

а еще есть предложение (если я правильно догадываюсь): параметр
net.inet.ip.fw.default_to_accept: 1 (read only) сделать конфигурабельным. то бишь регулировать последнее правило (pass/deny) через sysctl?


Добавлено:
В догонку... а насколько реально вынести ссылку на последние реализации в шапку темы?
Автор: c00ker
Дата сообщения: 08.08.2011 10:30
'me' пока не стоит пользоваться, не протестировано, и адреса адаптеров закидываются в драйвер только на момент команды ipfw enum

у таблиц синтаксис такой:

Код:
ipfw table number add addr[/masklen] [value]
ipfw table number delete addr[/masklen]
ipfw table {number | all} flush
Автор: mookhin
Дата сообщения: 08.08.2011 18:46

Цитата:
'me' пока не стоит пользоваться, не протестировано, и адреса адаптеров закидываются в драйвер только на момент команды ipfw enum

да. есть такое дело. проверил - творится полная фигня.

Цитата:
у таблиц синтаксис такой:
 ipfw table number add addr[/masklen] [value]
 ipfw table number delete addr[/masklen]
 ipfw table {number | all} flush

а как тогда с:

Цитата:
As an example, an address specified as 1.2.3.4/24{128,35-55,89}
or 1.2.3.0/24{128,35-55,89} will match the following IP
addresses: 1.2.3.128, 1.2.3.35 to 1.2.3.55, 1.2.3.89 .


table 1 add 192.168.0.0/20
table 2 add 192.168.6.0/24{130,133}
table 3 add 192.168.6.12
table 3 add 192.168.6.113
table 4 add 172.16.0.0/23
table 5 add 192.168.15.255
table 5 add 224.0.0.0/4
table 5 add 255.255.255.255
table 6 add 172.16.10.255
table 6 add 192.168.0.255
table 6 add 192.168.7.255
table 6 add 192.168.16.255
table 6 add 192.168.31.255

и вот что получил:
c:\Windows\System32\drivers\etc>ipfw table 1 list
192.168.0.0/20 0
192.168.6.0/24 0

c:\Windows\System32\drivers\etc>ipfw table 2 list
192.168.0.0/20 0
192.168.6.0/24 0

c:\Windows\System32\drivers\etc>ipfw table 3 list
192.168.6.12/32 0
192.168.6.28/32 0

c:\Windows\System32\drivers\etc>ipfw table 4 list
172.16.0.0/23 0
192.168.6.28/32 0

c:\Windows\System32\drivers\etc>ipfw table 5 list
192.168.6.0/24 0
192.168.7.255/32 0

c:\Windows\System32\drivers\etc>ipfw table 6 list
172.16.10.255/32 0
192.168.0.255/32 0

c:\Windows\System32\drivers\etc>ipfw table all list
---table(1)---
192.168.0.0/20 0
192.168.6.0/24 0

чую, там че-то не так с "сишной" организацией списков... в каком исходнике это глянуть? у меня кой чего есть.

А второе - меня озадачила проблема: при запуске когда-то "боевой" конфигурации под XP/W2K-server оригинальная конструкция:

add check-state
add deny tcp from any to any established
add pass tcp from me to table(1) out setup keep-state
add pass udp from me to table(1) out keep-state

после внесения изменений в 3-ю и 4-ю строчки:

add pass tcp from any to 192.168.0.0/20 out setup keep-state
add pass udp from any to 192.168.0.0/20 out keep-state

периодически рвала соединения. а помогала мне в этом "тетя ася" - типа соединение потеряно. пришлось плотно поиграться с параметром: net.inet.ip.fw.dyn_short_lifetime.
то решения найдено не было, хотя ipfw -de show показывал вроде бы правильные таблицы, но вот тайм-ауты че-то не были похожи на правду. может здесь уже проблема в правильности настроек TTL протокольного стека?

И последнее, может есть смысл убрать ненужную нумерацию в начале каждой строки протокола? эт еще и кусочек кода уберется, добавив чуток шустрости протоколирования
Автор: mookhin
Дата сообщения: 12.08.2011 12:41
5-й день работает в штатном режиме.
замечания(table):
- действует ограничение на количество записей: 2
- не заноситься в broadcast 255.255.255.255
пожелания(по сложности):
- 2-а варианта драйвера (allow/deny)
- работа с интерфейсами (via)
- fwd
- nat
Автор: c00ker
Дата сообщения: 17.08.2011 02:06
глюк с таблицами - вина компилятора tcc, правила на самом деле вносятся, но отобразиться корректно не могут пока отложил
Провозился с автоматической установкой im-драйвера, пока не очень успешно.
Залил релиз с доп. сервисом, подгружающим правила при запуске системы. Остальное в процессе.
Автор: mookhin
Дата сообщения: 17.08.2011 21:02

Цитата:
глюк с таблицами - вина компилятора tcc, правила на самом деле вносятся, но отобразиться корректно не могут пока отложил

замечено... теперь и просмотр/очистка таблиц завершается ошибкой

Цитата:

Провозился с автоматической установкой im-драйвера, пока не очень успешно.

я тоже убил день на "причесывание" inf-файлов. успехов мало. но идея добавить установку сервиса через inf, закладочки в свойствах ipfw и вывод доступной пока информации в системный лог, гложет.

Цитата:

Залил релиз с доп. сервисом, подгружающим правила при запуске системы. Остальное в процессе.

уже проверил. работает. ждем-с... VIA, ME, FWD, NAT. кстати, оставь в -h только то, что реализовано, а и при сборке - дату/версию файлов для обновления версий и для возможного с моей стороны: cat-файла.
Автор: mookhin
Дата сообщения: 18.08.2011 07:49
По поводу FWD.
Правило парсится, но в список не добавляется. Ему не присваивается rule-номер. Возможно "рихтовка" будет мимнимальной...
Пожелания:
1. Было бы разумно добавить умалчиваемые, как 65535, правила парсинга через lo0. То бишь allow all via lo0, deny to 127.* и deny from 127.*
2. *.fw.verbose - по-умолчанию = 1
Автор: mookhin
Дата сообщения: 19.08.2011 07:46
обнаружена еще одна бяка(?).

обработка токена unreach: вместо его заноситься reject, что есть не совсем хорошо и даже вредно. глянув в "сырцы" от Луиджи - обратил внмание, что упор сделан на unreach6.


Добавлено:
Глюк не глюк (только что заметил)? нумерация правил идет от номера последнего. если последнее правило предположим 112, то последующие 212, 312, 412 etc...

Страницы: 123456

Предыдущая тема: ArtCam7


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.