Разработка межсетевого экрана для компьютеров пользователей с использованием технологии 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. Панель добавления/удаления в список фильтров программ
&