|
|
@ -89,25 +89,25 @@ VPN. |
|
|
|
|
|
|
|
В самом простейшем случае вы имеете дело с пассивным DPI. Пассивный DPI может читать трафик из потока, может инжектить |
|
|
|
свои пакеты, но не может блокировать проходящие пакеты. Если запрос "плохой", пассивный DPI инжектит пакет RST, |
|
|
|
опционально дополняя его пакетом http redirect. Если фейк пакет инжектится только для клиента, в этом случае можно |
|
|
|
обойтись командами iptables для дропа RST и/или редиректа на заглушку по определенным условиям, которые нужно подбирать |
|
|
|
опционально дополняя его пакетом HTTP redirect. Если фейк пакет инжектится только для клиента, в этом случае можно |
|
|
|
обойтись командами iptables для дропа RST и/или редиректа на заглушку по определённым условиям, которые нужно подбирать |
|
|
|
для каждого провайдера индивидуально. Так мы обходим последствия срабатывания триггера запрета. Если пассивный DPI |
|
|
|
направляет пакет RST в том числе и серверу, то вы ничего с этим не сможете сделать. Ваша задача - не допустить |
|
|
|
срабатывания триггера запрета. Одними iptables уже не обойдетесь. Этот проект нацелен именно на предотвращение |
|
|
|
направляет пакет RST в том числе и серверу, то вы ничего с этим не сможете сделать. Ваша задача — не допустить |
|
|
|
срабатывания триггера запрета. Одними iptables уже не обойтись. Этот проект нацелен именно на предотвращение |
|
|
|
срабатывания запрета, а не ликвидацию его последствий. |
|
|
|
|
|
|
|
Активный DPI ставится в разрез провода и может дропать пакеты по любым критериям, в том числе распознавать TCP потоки и |
|
|
|
Активный DPI ставится в разрез провода и может дропать пакеты по любым критериям, в том числе распознавать TCP-потоки и |
|
|
|
блокировать любые пакеты, принадлежащие потоку. |
|
|
|
|
|
|
|
Как не допустить срабатывания триггера запрета ? Послать то, на что DPI не рассчитывает и что ломает ему алгоритм |
|
|
|
Как не допустить срабатывания триггера запрета? Послать то, на что DPI не рассчитывает и что ломает ему алгоритм |
|
|
|
распознавания запросов и их блокировки. |
|
|
|
|
|
|
|
Некоторые DPI не могут распознать http запрос, если он разделен на TCP сегменты. Например, запрос |
|
|
|
Некоторые DPI не могут распознать HTTP-запрос, если он разделен на TCP-сегменты. Например, запрос |
|
|
|
вида `GET / HTTP/1.1\r\nHost: kinozal.tv......` |
|
|
|
мы посылаем 2 частями : сначала идет `GET`, затем `/ HTTP/1.1\r\nHost: kinozal.tv.....`. Другие DPI спотыкаются, когда |
|
|
|
заголовок `Host:` пишется в другом регистре : например,`host:`. Кое-где работает добавление дополнительного пробела |
|
|
|
после метода : `GET /` => `GET /` |
|
|
|
или добавление точки в конце имени хоста : `Host: kinozal.tv.` |
|
|
|
мы посылаем двумя частями: сначала идет `GET`, затем `/ HTTP/1.1\r\nHost: kinozal.tv.....`. Другие DPI спотыкаются, когда |
|
|
|
заголовок `Host:` пишется в другом регистре: например, `host:`. Кое-где работает добавление дополнительного пробела |
|
|
|
после метода: `GET /` → `GET /` |
|
|
|
или добавление точки в конце имени хоста: `Host: kinozal.tv.` |
|
|
|
|
|
|
|
Существует и более продвинутая магия, направленная на преодоление DPI на пакетном уровне. |
|
|
|
|
|
|
|