ПЗ (1195114), страница 5
Текст из файла (страница 5)
Таблица 4.2 – Результат работы драйвера для проверки запрещения пакетов.
| IP Отправителя | IP Получателя | Направление | Протокол | Действие | Правило ID |
| 192.168.1.2 | 192.168.1.4 | In | ICMP | Del | 00000000 |
| 192.168.1.2 | 192.168.1.4 | In | ICMP | Del | 00000000 |
| 192.168.1.2 | 192.168.1.4 | In | ICMP | Del | 00000000 |
| 192.168.1.2 | 192.168.1.4 | In | ICMP | Del | 00000000 |
Дальше стоит проверить, действительно ли драйвер правильно различает направления передачи пакетов. Для этой проверки надо будет создать два правила. Первое разрешение всех исходящих пакетов, второе правило разрешение всех входящих пакетов. Запуск программы Ping происходит на удалённом компьютере следовательно запрос будет входящим а ответ исходящим. Как видно из работы драйвера(Таблица 4.4) все входящие пакеты обрабатываются правилом 00000001, а исходящие правилом 00000000, что соответствует заданным правилам.
Рисунок 4.4 – Результат работы программы Ping при проверке запрещения пакетов.
Таблица 4.4 – Результат работы драйвера для проверки направления передачи пакетов.
| IP Отправителя | IP Получателя | Направление | Протокол | Действие | Правило ID |
| 192.168.1.2 | 192.168.1.4 | In | ICMP | Skip | 00000001 |
| 192.168.1.4 | 192.168.1.2 | Out | ICMP | Skip | 00000000 |
| 192.168.1.2 | 192.168.1.4 | In | ICMP | Skip | 00000001 |
| 192.168.1.4 | 192.168.1.2 | Out | ICMP | Skip | 00000000 |
| 192.168.1.2 | 192.168.1.4 | In | ICMP | Skip | 00000001 |
| 192.168.1.4 | 192.168.1.2 | Out | ICMP | Skip | 00000000 |
| 192.168.1.2 | 192.168.1.4 | In | ICMP | Skip | 00000001 |
| 192.168.1.4 | 192.168.1.2 | Out | ICMP | Skip | 00000000 |
При проверке фильтрации по IP адресам отправителя и получателя разрешим получение пакетов из сети 192.168.1.0/255.255.255.0 и запрет на передачу пакетов на адрес 192.168.1.2/255.255.255.255. Для отправки пакетов с удалённых компьютеров с адресами 192.168.1.1 и 192.168.1.2 воспользуемся программой Ping, в результате чего компьютер с адресом 192.168.1.2 не должен получить ответа. Из полученного лога видно(Таблица 4.5), что пакеты с ответом на адрес 192.168.1.2 удаляются и все пакеты пришедшие из сети 192.168.1.0/255.255.255.0 пропускаются на основании правила 00000000 что соответствует заданным правилам, а пакет, передаваемый на адрес 192.168.1.1 не подпадает не под одно правило.
Таблица 4.5 – Результат работы драйвера для проверки фильтрации адресов пакетов.
| IP Отправителя | IP Получателя | Направление | Протокол | Действие | Правило ID |
| 192.168.1.2 | 192.168.1.4 | In | ICMP | Skip | 00000000 |
| 192.168.1.4 | 192.168.1.2 | Out | ICMP | Del | 00000001 |
| 192.168.1.1 | 192.168.1.4 | In | ICMP | Skip | 00000000 |
| 192.168.1.4 | 192.168.1.1 | Out | ICMP | Skip | Default |
Для проверки фильтрации по портам и протоколам, разрешим доступ только к 3306 порту и запретим доступ по TCP протоколу. Для тестирования воспользуемся программой HiperTerminal для подключения к 80 и 8080 и 3306 портам. На подключение к 80 и 8080 программе должно быть отказано. Также будет использована программа Ping которая использует ICMP протокол следовательно её пакета будут пропущены. Как видно из работы драйвера(Таблица 4.6).
Таблица 4.6 - Результат работы драйвера для проверки фильтрации пакетов по портам и протоколу.
| Локальный порт | Удалённый порт | Направление | Протокол | Действие | Правило ID |
| 80 | 2696 | In | TCP | Del | 00000001 |
| 8080 | 2697 | In | TCP | Del | 00000001 |
| 3306 | 2709 | In | TCP | Skip | 00000000 |
| 3306 | 2709 | Out | TCP | Skip | 00000000 |
| - | - | In | ICMP | Skip | Default |
| - | - | Out | ICMP | Skip | Default |
В результате тестирования драйвер реагировал адекватно заданным правилам, что позволяет нам, убедится, что правильности работы фильтра пакетов.
4.5 Отладочный режим передачи пакетов на уровень пользователя
В драйвере предусмотрен режим передачи пакетов на уровень пользователя. Для включения этого режима необходимо создать правила установить галочку Query. Все пакеты подпадающие под это правило будут передаваться на уровень пользователя. Этот режим используется для написания дополнительных фильтров для драйвера. Также этот режим можно использовать для переключения драйвера в режим перехвата всех пакетов, для анализа трафика.
Для получения пакетов используется таймер (Листинг 4.2), для написания фильтра можно использовать подпрограмму Filter можно использовать только стандартные функции СИ кроме тех которые взаимодействуют с системой, так как их невозможно вызвать на уровне ядра. Функция Filter должна возвращать одно из трёх значений:
-
FWA_Allow – разрешение пакета;
-
FWA_Block – запрещение пакета;
-
FWA_Skip – пакет неподподает под правило.
Листинг 4.2 - Листинг подпрограммы перехвата пакетов и подпрограммы фильтра.
void __fastcall TMainForm::Timer1Timer(TObject *Sender)
{
TQueryPacket Packet;
if (FW->GetQueryPacket(&Packet))
{
FW->Print("Query packet...");
FW->Print(IntToStr(Packet.ID).c_str());
int Size = FW->GetQP_PacketDataSize(Packet.ID);
char* Data= new char[Size];
ZeroMemory(Data,Size);
FW->GetQP_PacketDataSize(Packet.ID);
FW->GetQP_PacketData(Packet.ID,Data,Size);
TPacketInfo PI;
FW_Actions A = FWA_Allow;
if (GetPacketTCPIPInfo((char*)Data,Size,&PI))
A = Filter(&PI);
SavePacket(SavePacketDir,Packet,Data,Size,A);
FW->QP_PacketDel(Packet.ID);
FW->Print("ok");
}
}
FW_Actions Filter(TPacketInfo* PI)
{ return FWA_Allow;}
Этот механизм использовался при написании фильтра HTTP пакетов, что позволило его отладить перед включением его в драйвер.
4.6 Настройка HTTP фильтра
Для настройки этого фильтра необходимо использовать специальное окно «HTTP Фильтр»(Рисунок 4.5), которое содержит два списка. Первый список для запрещения хостов, второй для запрещения URL. Эти списки содержат фрагменты хостов и URL, из-за этого желательно указывать наиболее полное имя хоста.
Рисунок 4.5 – Окно «HTTP фильтр»
Для того чтобы включить этот фильтр надо настроить фильтрацию пакетов таким образом, чтобы нужные пакеты проходили через этот фильтр. Для этого нужно создать следующие плавило фильтрующие все TCP пакеты и вместо запрещения или разрешения указать HTTP фильтр. Для этого нужно воспользоваться окном «Менеджер TCP/IP пакетов» и создать правило такое, которое показано на рисунке 4.6.
Рисунок 4.6 – Правило для включения HTTP фильтра.
Для проверки этого фильтра воспользуемся любым Интернет браузером. Для проверки фильтрации хостов запретим хост «google.ru» и (Рисунок 4.7).
Рисунок 4.7 – Запрет хоста «google.ru»
Для проверки работы попробуем соединится с запрещённым хостом «google.ru» и с хостом «r0.ru». При загрузке данных страниц первая из них недолжно быть загружена, а вторая должна, загрузится без проблем. Как видно из работы браузера(Рисунок 4.8), страница «google.ru» не была открыта, в тоже время страница «r0.ru» открылась без проблем.
Рисунок 4.8 – Загрузка хостов и включённой фильтрацией страницы «google.ru»(а) и страницы «r0.ru».
Для проверки фильтрации по URL запретим открытие «logo.gif»(Рисунок 4.7). На странице «ya.ru» это картинка логотип компании. Как видно из работы браузера при включенной фильтрации(Рисунок 4.9а) загрузка логотипа не осуществилась, а при отключенной фильтрации вся страница загрузилась полностью(Рисунок 4.9б).
Рисунок 4.9 – проверка фильтрации по URL с включенной фильтрацией по URL(а) и с выключенной фильтрацией по URL(б).















