| .gitignore | ||
| blockcheck.py | ||
| build.py | ||
| latest_version.txt | ||
| LICENSE | ||
| README.md | ||
| requirements.txt | ||
BlockCheck
Утилита для определения типа блокировок сайтов из единого реестра запрещенной информации на стороне провайдера.
Данная утилита позволяет определить:
- Подмену DNS-ответов
- Перенаправление DNS-серверов
- Блокировку DNS-серверов
- Блокировку всей зоны (поддоменов) заблокированного домена
- "Обычный" DPI (фильтрация URL на определенных IP-адресах и портах)
- "Полный" DPI (фильтрация URL на всех IP-адресах и/или портах)
- Подмену SSL (HTTPS)-сертификата (прослушивание HTTPS-трафика)
- Блокировку по IP-адресу
Также приложение выполняет тесты для обхода DPI, если он обнаружен на стороне провайдера. На данный момент реализованы следующие техники:
- Дополнительный пробел после GET
- Перенос строки перед GET
- Фрагментирование заголовка
- Точка в конце домена
- Табуляция в конце домена
- Заголовок host вместо Host
- Перенос строки в заголовках в UNIX-стиле
Более подробно о видах DPI и типах подключения читайте в Wiki проекта: Типы DPI
Приложение автоматически отправляет статистику об используемом типе блокировки на сервер.
http://habrahabr.ru/post/229377/ — статистика по провайдерам
Установка
Для работы скрипта требуется Python >= 3.4 с модулем dnspython. Установить его можно из репозитория вашего дистрибутива, или используя pip:
python3 -m pip install -r requirements.txt
Использование
Приложение запускается в графическом режиме по умолчанию, если в систему установлен Tkinter.
Вы можете запустить его в консольном режиме вручную, используя флаг --console.
Параметр --no-report отключает отправку результатов тестирования на сервер.
--force-dpi-check выполнит проверку DPI, даже если сайты не заблокированы.