Разработка межсетевого экрана для компьютеров пользователей с использованием технологии WFP

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

?ающая действие, возникающее при выдачи всеми фильтрами значения true.

В нашей задаче будем использовать FWP_ACTION_BLOCK

rawContext Доступно, когда фильтр не имеет контекстной информации провайдера.

-.">Filter Context Identifiers - список доступных значений.

providerContextKey Доступно, когда фильтр имеет контекстной информации провайдера.

-..">Built-in Provider Context Identifiers - список доступных значений. Запасной параметр для системного пользования.

filterId уникальный идентификатор фильтра

effectiveWeight структура, содержащая вес фильтра.

Добавим созданный фильтр при помощи метода FwpmFilterAdd0

DWORD WINAPI FwpmFilterAdd0(

__in HANDLE engineHandle,

__in const FWPM_FILTER0 *filter,

__in_opt SECURITY_DESCRIPTOR sd,

__out_opt UINT64 *id

);

где: переменная для открытия работы с фильтром.

filter добавляемый фильтр

Sdинформация о безопасности для данного подуровня

id уникальный идентификатор фильтра

В случае успеха операции метод возвращает ERROR_SUCCESS.

И, наконец, необходимо закрыть сеанс. Для этого воспользуемся методом FwpmEngineClose0

DWORD WINAPI FwpmEngineClose0(

__in HANDLEengineHandle

);

где:

engineHandle переменная, использованная для открытия сессии.

В случае успеха операции метод возвращает ERROR_SUCCESS.

Для отключения фильтра используется функция FwpmFilterDeleteById0

DWORD WINAPI FwpmFilterDeleteById0(

__in HANDLE engineHandle,

__inUINT64id

);

где:

engineHandle переменная, использованная для открытия сессии,

id уникальный идентификатор фильтра, который нужно отключить.

В случае успеха операции метод возвращает ERROR_SUCCESS.

Для удаления созданного подуровня существует метод FwpmSubLayerDeleteByKey0

DWORD WINAPI FwpmSubLayerDeleteByKey0(

__in HANDLE engineHandle,

__in constGUID *key

);

где:

engineHandle переменная, использованная для открытия сессии,

key Уникальный идентификатор подуровня (GUID), который хотим удалить.

 

Инструкция

 

Запуск программы.

Для начала работы нужно запустить приложение PracticGUI. При запуске программы необходимо запускать ее с правами администратора. Так же необходимо, чтобы файлы ConsoleFilter.exe и PracticGUI.exe находились в папке "C:\Program Files\Filter", иначе графическая оболочка закончит работу автоматически. При запуске графической оболочки консольное приложение начнет работу. Работа графической оболочки и консольного приложения изображены на рисунках 1 и 2.

 

Рисунок 1. Начальный вид графической оболочки.

 

Рисунок 2. Вид работы консольного приложения.

 

Просмотр списка фильтров.

Для просмотра списка фильтров нужно нажать кнопку Show Information. При нажатии появится сообщение с информацией, как например на рисунке 3.

 

Рисунок 3. Сообщение с информацией.

 

Если у вас стоит фильтр, который блокирует весь трафик то появится сообщение, как на рисунке 4:

 

Рисунок 4. Сообщение о блокировании всего трафика.

 

Вся информация о фильтрах хранится в файле BlockList

Добавление и удаление фильтров.

Для того, чтобы добавить или удалить необходимый фильтр нужно нажать на соответствующую кнопку: Block/Unblock all traffic, Block/Unblock by IP-adress, Block/Unblock by port или Block/Unblock application.

Блокирование и разблокирование всего трафика.

Если вы хотите добавить или удалить фильтр, который будет блокировать(блокирует) весь ваш трафик, вам нужно нажать на кнопку Block/Unblock all traffic. На рисунках 5 и 6 изображены сообщения об успешном выполнении:

 

Рисунок 5. Выполнение операции разблокирования всего трафика.

 

Рисунок 6. Выполнение операции блокирования всего трафика.

 

Блокирование и разблокирование IP-адресов и портов.

Для добавления или удаления фильтра, который будет блокировать(блокирует) IP-адрес или порт, вам нужно нажать на соответствующую кнопку Block/Unblock by IP-adress или Block/Unblock by port(на рисунке 7 изображена панель добавления/удаления IP-адреса). При нажатии появится панель для ввода необходимого IP-адреса или порта, выбора действия Add или Delete и кнопки вернуться в начальную панель Back или применить действие для введенного IP-адреса или порта Apply. Для добавления или удалении фильтра необходимо ввести необходимый IP-адрес или порт(при вводе IP-адреса не забудьте расставить точки, например: 192.168.0.1) выбрать действие и нажать кнопку подтверждения Apply.

 

 

Рисунок 7. Окно добавления/удаления IP-адреса.

 

На рисунках 8 и 9 показана ошибки добавления уже существующего фильтра или удаления несуществующего фильтра.

 

Рисунок 8. Ошибка при добавлении уже существующего фильтра.

 

 

На рисунках 10 и 11 показаны ошибки о вводе неверных данных.

 

 

Рисунок 10. Ошибка при вводе неверного IP-адреса.

 

Рисунок 11. Ошибка при вводе неверного порта.

 

При успешном добавлении или удалении фильтра появится первая панель с выбором действий.

Блокирование и разблокирование приложений.

Для добавления или удаления фильтра, который будет блокировать(блокирует) приложение, вам нужно нажать на соответствующую кнопку Block/Unblock application. При нажатии появится панель, как на рисунке 12:

 

Рисунок 12. Панель добавления/удаления в список фильтров программ

&