|
Тема |
Re: ipfw zapitvane [re: Freesbie] |
|
Автор |
Labrett (трън) |
|
Публикувано | 05.01.04 17:10 |
|
|
Документи за това API никъде не съм виждал, но не съм и търсил :)
Разгледах кода на ipfw2.c - подредено и разбрано е написан, само add функцията е по-сложна. Оказва се, че това API е доста интересно направено - програмата създава един socket(AF_INET, SOCK_RAW, IPPROTO_RAW) и управлява всичко по firewall-а, като използва setsockopt(s, IPPROTO_IP, ....) i getsockopt(s, IPPROTO_IP, ...) за писане и четене със специални команди.
например това flush-ва firewall-а:
setsockopt(s, IPPROTO_IP, IP_FW_FLUSH, NULL, 0)
Всичкият останал буламач в source-а е за да се генерират структурите, които се подават като параметри на setsockopt (декларирани в netinet/ip_fw.h)
Въпросните команди като IP_FW_FLUSH са обявени в netinet/in.h
Най-интересното на API-то, е че данните, които се подават чрез setsockopt(), представляват някакъв вид firewall assembler - имат си opt кодове, параметри .. Изобщо - не изглежда особено просто да се разучи това
Препоръчвам ти да си ползваш ipfw, освен ако нямаш много сериозна причина да не го правиш.
______________
истината е увивно растение
|
| |
|
|
|