todo/Zapret2/основные флаги.md
loop-uh 0ad0bcc8dd
Some checks failed
Published content check / validate (push) Failing after 5s
seo+зеркало: [!mirror]-плашка со ссылкой на вики и description во frontmatter всех заметок
Каждая публикуемая заметка получила callout-шапку со ссылкой на свою страницу
wiki.zapret.moe (на самой вики она вырезается транформером RemoveMirrorCallout,
видна только на зеркале Obsidian Publish и в Forgejo) и SEO-поле description —
1–2 предложения для meta description обоих сайтов.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-26 22:05:57 +03:00

127 lines
No EOL
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
tags:
link:
aliases:
img:
height: 1000
description: "Полный список обманок (fooling) в Zapret2: ip_ttl и autottl, tcp_seq/tcp_ack (badseq, badack), tcp_md5, IPv6 extension headers — с примерами."
---
> [!mirror] Резервное зеркало
> Актуальная версия этой страницы — на основной вики: [wiki.zapret.moe/Zapret2/основные-флаги](https://wiki.zapret.moe/Zapret2/%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5-%D1%84%D0%BB%D0%B0%D0%B3%D0%B8)
## Полный список обманок (fooling) в zapret2
### 🔹 **IP/IPv4 модификации**
1. **`ip_ttl=N`** - установить TTL (Time To Live) в IPv4 заголовке
- Пример: `ip_ttl=5`
2. **`ip_autottl=delta,min-max`** - автоматическое определение TTL
- Формат: `delta,min-max` (например: `-1,3-20`)
- Автоматически вычисляет оптимальный TTL на основе входящих пакетов
### 🔹 **IPv6 модификации**
3. **`ip6_ttl=N`** - установить Hop Limit в IPv6 заголовке (аналог TTL)
- Пример: `ip6_ttl=3`
4. **`ip6_autottl=delta,min-max`** - автоматическое определение Hop Limit для IPv6
- Формат: `delta,min-max`
### 🔹 **IPv6 Extension Headers (расширенные заголовки)**
5. **`ip6_hopbyhop[=hex]`** - добавить Hop-by-Hop заголовок
- Размер данных: 6+N×8 байт
- По умолчанию: `\x00\x00\x00\x00\x00\x00`
6. **`ip6_hopbyhop2[=hex]`** - добавить второй Hop-by-Hop заголовок
- Размер данных: 6+N×8 байт
7. **`ip6_destopt[=hex]`** - добавить Destination Options заголовок (unfragmentable part)
- Размер данных: 6+N×8 байт
8. **`ip6_destopt2[=hex]`** - добавить второй Destination Options заголовок (fragmentable part)
- Размер данных: 6+N×8 байт
9. **`ip6_routing[=hex]`** - добавить Routing заголовок
- Размер данных: 6+N×8 байт
10. **`ip6_ah[=hex]`** - добавить Authentication Header (усеченный)
- Размер данных: 6+N×4 байт
- По умолчанию: `\x00\x00` + 4 случайных байта
### 🔹 **TCP модификации**
11. **`tcp_seq=N`** - добавить N к TCP sequence number
- Пример: `tcp_seq=10000`
- Используется для "badseq" обманки
12. **`tcp_ack=N`** - добавить N к TCP acknowledgment number
- Пример: `tcp_ack=-66000`
- Используется для "badack" обманки (обычно отрицательное значение)
13. **`tcp_ts=N`** - добавить N к TCP timestamp value
- Модифицирует TCP опцию timestamp
14. **`tcp_md5[=hex]`** - добавить TCP MD5 опцию (RFC 2385)
- Размер: 16 байт
- По умолчанию: случайные данные
- Пример: `tcp_md5` или `tcp_md5=0x00112233445566778899aabbccddeeff`
15. **`tcp_flags_set=<список>`** - установить TCP флаги
- Список через запятую: `FIN,SYN,RST,PSH,ACK,URG,ECE,CWR`
- Пример: `tcp_flags_set=PSH,URG`
16. **`tcp_flags_unset=<список>`** - снять TCP флаги
- Пример: `tcp_flags_unset=ACK` (для "datanoack" обманки)
17. **`tcp_ts_up`** - переместить TCP timestamp опцию в начало
- Без параметров
- Workaround для Linux: позволяет отбрасывать пакеты с badack без badseq
### 🔹 **Дополнительные опции**
18. **`badsum`** - сделать контрольную сумму L4 невалидной
- Без параметров
- Относится к reconstruct options
19. **`fool=функция`** - вызвать пользовательскую функцию обманки
- Формат: `fool_func(dis, fooling_options)`
- Для создания собственных обманок
### 📋 **Популярные комбинации (из nfqws1)**
В старой версии (nfqws1) были готовые комбинации:
- **`md5sig`** → `tcp_md5`
- **`badseq`** → `tcp_seq=-10000` (для SYN) или `tcp_ack=-66000` (для обычных пакетов)
- **`badack`** → `tcp_ack=-66000`
- **`datanoack`** → `tcp_flags_unset=ACK`
### 💡 **Примеры использования**
```bash
# Простой TTL
--lua-desync=fake:ip_ttl=5
# Автоматический TTL
--lua-desync=fake:ip_autottl=-1,3-20
# TCP MD5 signature (обманка для DPI)
--lua-desync=fake:tcp_md5
# Badseq + badack (классическая обманка)
--lua-desync=fakedsplit:tcp_seq=-10000:tcp_ack=-66000:tcp_ts_up
# IPv6 extension headers
--lua-desync=fake:ip6_hopbyhop:ip6_destopt
# Снять ACK флаг (datanoack)
--lua-desync=fake:tcp_flags_unset=ACK
# Комбинация нескольких обманок
--lua-desync=fake:ip_ttl=1:tcp_md5:tcp_ack=-66000
```
Все эти обманки применяются функцией `apply_fooling()` из библиотеки `zapret-lib.lua` и используются для обхода DPI систем путем создания пакетов, которые проходят через DPI, но отбрасываются целевым сервером или наоборот.