LINUX.ORG.RU

Свой файрвол.


0

0

Я конечно понимаю что можно услышать, что имеющийся iptables хорошо решает свою задачу и что не надо страдать гимороем... вообщем цель просто получше разобраться с работой файрвола и сети в линуксе путём написания своей поделки. Но начинать с нуля трудно а изучать иптаблес долго и не очень понятно с какого конца к этому делу подходить. Может кто подскажет что можно почитать по этому поводу, желательно на русском.

P.S. к тому же надо чем то занять свободное время (от института), а то от скуки подохнуть можно :)))

P.P.S. про девок и пиво можно не говорить это само сабой ж)

Заранее спасибо!!!

★★★★★

после девок разве время остается? непорядок :)

anonymous
()

Изучи как в основном используется iptables, и какие правила для этого надо писать,

а потом проделай тоже самое с аналогом iptables в FreeBSD.

и перепиши синтаксис iptables.

anonymous
()

Эх молодежь-молодежь... Правильным путем идешь, студент!

Я вон тоже как-то раз сел и написал свой файрвол - под винду, с гуем, с собственным драйвером, и даже рулилку к нему из командной строки... Типа

winchain add chain Rule1

winchain add rule Rule1 source 195.0.0.0 mask 255.0.0.0 drop-log

winchain add rule Rule1 source 196.0.0.0 mask 255.0.0.0 drop

winchain bind input Rule1 interfaces 194.54.0.0 mask 255.255.0.0

winchain bind output Rule2 interfaces 194.54.0.0 mask 255.255.0.0

Вот же блин были времена :-)

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

давай GPL версию, чтобы все поверили :)

anonymous
()
Ответ на: комментарий от anonymous

Ну синтаксис хочу сделать похожий на ipfw, он мне как то больше понравился :)

Просто хотелось увидеть какие то доки по тому как работать файеру в ядре. Пока что я смутно представляю как файр рулит пакетами, т.е. как он умудряется ими управлять.

Но то что ковырять иптаблес придётся, это факт, без этого никак, оно понятно.

cyclon ★★★★★
() автор топика

iptables базируется на интерфейсе ядра под названием netfilter, вот по нему и почитай доки. Даже если не найдешь на русском, то там довольно просто разобраться можно. Общий интерфейс сводится к тому, что вызываем один или несколько раз функцию регистрации хука с параметрами "для такого-то протокола, для такого-то места в стеке, для того-то тогото", указывая ей еще адрес нашей функции - чекера. После чего, на все пакеты проходящие через "такое-то место в стеке" будет дергаться наша функция. Соотвествено, для INPUT-а/OUTPUT-а и проч. нужно будет по своему обработчику зарегать.

quarck
()
Ответ на: комментарий от quarck

TO quarck:

Т.е. что получается всё работает через netfilter? А без него никак, просто получается что сам netfilter будет накладывать ограничения, а хотелось бы работать непосредственно с сетевой подсистемой, ну или на крайняк написать свой интерфейс.

> Общий интерфейс сводится к тому, что вызываем один или несколько раз функцию регистрации хука с параметрами...

Ты имеешь в виду что netfilter работает через этот общий фейс, и в нём и обрабатываются прерывания?

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

я хотел сказать, т.е. спросить, что использование netfilter не является обязательной и всё обработчики можно повесить самому?

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

А в чем проблема с netfilter?
Он специально и создавался, для того, чтобы на нем базировались файрволы типа iptables, ipchains и тому подобные.

Dead ★★★★
()
Ответ на: комментарий от Dead

Да проблемм нет, просто может те отсутствующие фичи иптаблеса, по типу отсутствия ограничения трафика, есть следствие того что используется нетфильтер?

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

Собственно тут уже все сказали... берешь libipq и с помощью нее ловишь все пакеты, а дальше делай с ними все что захочешь. Кстати, в манах валяется законченный кусок кода по работе с этой либой. Очень неплохо для начала.

bobych
()
Ответ на: комментарий от cyclon

Принципиально, можно сделать ограничение трафика на netfilter. Сам делал, правда не очень навороченный алгоритм. 
Но вот стоит ли... В ядре для ограничения трафика уже есть нужные средства.

Dead ★★★★
()
Ответ на: комментарий от bobych

libipq???

это же вроде внешняя либа и в ядре её использовать нельзя, или же с помощью неё можно построить файер который не будет принадлежать ядру? Но разве не будет он рабоать медленнее?

cyclon ★★★★★
() автор топика
Ответ на: комментарий от Dead

> Принципиально, можно сделать ограничение трафика на netfilter.

это я просто как пример привёл, просто в иптаблесе этой шняги нет вот я и подумал что это нельзя реализовать

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

Может поможет.

Искал я билллинг для Linux. Спрашивал в admin. Там мне посоветовали netams. Посмотрел я на это чудо и, когда будет время, займусь этим плотнее. Так вот там один из методов перехвата IPQ. Исходники есть, можно посмотреть как пример.

http://netams.com

olegk ★★
()
Ответ на: комментарий от olegk

Т.е. я правильно понял, что можно создать файер который не будет частью адра, так??? Просто по логике оно должно медленне работать чем если он буде частью ядра.

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.