From 58a928b177a358f3d7877be09e50c03ff8664b2a Mon Sep 17 00:00:00 2001 From: ValdikSS Date: Mon, 11 Mar 2019 21:52:06 +0300 Subject: [PATCH] =?UTF-8?q?Updated=20=D0=98=D0=BD=D1=82=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D1=81=D0=BD=D0=BD=D0=B0=D1=8F=20=D0=BE=D1=81=D0=BE=D0=B1=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20DPI=20=D0=A0=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D0=B5=D0=BA=D0=BE=D0=BC=D0=B0=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Интереснная-особенность-DPI-Ростелекома.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Интереснная-особенность-DPI-Ростелекома.md b/Интереснная-особенность-DPI-Ростелекома.md index 64b26f2..387f108 100644 --- a/Интереснная-особенность-DPI-Ростелекома.md +++ b/Интереснная-особенность-DPI-Ростелекома.md @@ -1,7 +1,7 @@ У **Ростелекома** обнаружилась интересная деталь: соединения на заблокированные **IP-адреса** успешно устанавливаются, если размер пакета TCP SYN меньше 62 байт. При этом соединение идет через DPI (видно по дополнительному хопу в TTL), разрывается через 10 секунд неактивности, и TCP RST всё равно нужно блокировать. SYN-пакеты размером более 62 байта отбрасываются, ACK на них не приходит. Предполагаю, это какая-то дополнительная система обнаружения трафика, которая перенаправляет соединение через другой маршрут, т.к. до этого у Ростелекома был только «пассивный» (out-of-band) DPI, а это похоже на «активный» (in-band). Как бы то ни было, одновременной блокировкой TCP RST от DPI и уменьшением размера TCP SYN можно обойти сетевые блокировки TCP на Ростелекоме, независимо от порта и протокола. -Чтобы уменьшить TCP SYN до 62 байт, достаточно отключить две TCP-опции: TCP Timestamps и TCP SACK: +Чтобы уменьшить TCP SYN до 62 байт **в Linux**, достаточно отключить две TCP-опции: TCP Timestamps и TCP SACK: Создать /etc/sysctl.d/anticensorship.conf с текстом: ``` @@ -26,4 +26,6 @@ iptables -t mangle -I FORWARD -p tcp -m connbytes --connbytes 2: --connbytes-mod iptables -t mangle -I OUTPUT -p tcp -m tcp --sport 80 -m u32 --u32 "0x1e&0xffff=0x5010&&0x73=0x7761726e&&0x77=0x696e672e&&0x7B=0x72742e72" -m comment --comment "Rostelecom HTTP OUTPUT" -j DROP iptables -t mangle -I OUTPUT -p tcp -m connbytes --connbytes 2: --connbytes-mode packets --connbytes-dir reply -m u32 --u32 "0x4=0x10000 && 0x1E&0xffff=0x5004" -m comment --comment "Rostelecom non-HTTP OUTPUT" -j DROP -``` \ No newline at end of file +``` + +**Windows 7**, после неудачных попыток установки соединения с большим SYN-пакетом, отправляет пакет без TCP SACK, из-за чего он получается равен 62 байтам, и соединение со включенным GoodbyeDPI устанавливается. **Windows 10** не обладает такой особенностью, и соединение не будет установлено. \ No newline at end of file