Зміст
Введення
Теоретична частина
Інструкція
Практична частина
Висновок
Список використаних джерел
Додаток
Введення
Починаючи з версій Server 2008 і Vista в Windows був вбудований механізм WFP (Windows Filtering Platform - платформа фільтрації Windows), що представляє собою набір API і системних сервісів. Даний набір дозволяє забороняти і дозволяти з'єднання, керувати окремими пакетами. Ці нововведення були призначені для спрощення життя розробників різних захистів. Внесені в мережеву архітектуру зміни торкнулися як kernel-mode, так і user-mode частини системи. У першому випадку необхідні функції експортуються fwpkclnt.sys, у другому - fwpuclnt.dll (букви "k" і "u" в назвах бібліотек означають kernel і user відповідно). p align="justify"> У ході даного звіту будуть розглянуті основні методи, що дозволяють реалізувати пакетний фільтр для блокування трафіку окремих з'єднань за IP-адресою або по порту.
Теоретична частина
Бібліотеки, що містять засоби для роботи з WFP, знаходяться у наборі для розробників WDK (Windows Driver Kit).
Насамперед необхідно створити екземпляр типу Handle - дескриптор, що описує різні об'єкти. У нашому випадку змінна цього типу буде призначена для роботи з фільтром. Ініціалізації цієї змінної відбувається при виклику функції FwpmEngineOpen0, яка відкриває сесію для роботи з фільтром. p align="justify"> Прототип цієї функції виглядає наступним чином:
DWORD WINAPI FwpmEngineOpen0 (
__in_optconstwchar_t * serverName,
__in UINT32authnService,
__in_optSEC_WINNT_AUTH_IDENTITY_W * authIdentity,
__in_optconst FWPM_SESSION0 * session,
__out HANDLE * engineHandle
);
де: Дане значення має бути NULL
authnService Особливості аутентифікації. Допустимі значення: RPC_C_AUTHN_WINNTі RPC_C_AUTHN_DEFAULT. Аутентифікація і авторизація для доступу до фільтру. Для нашої задачі можна використовувати NULL
session Специфічні параметри відкриття сесії. Для нашої задачі можна використовувати NULL
engineHandle Вже описана вище змінна для відкриття роботи з фільтром.
У разі успіху операції метод повертає ERROR_SUCCESS.
Мережевий рівень можна розділити на три групи підрівнів:
) подуровне мережевого доступу - протоколи, що займаються інтерфейсом мереж, такі як X.25
) подуровне залежного мережевого зближення - необхідно для приведення рівня транзитної мережі до рівня мережі на іншій стороні
) подуровн...