Review fixes README

This commit is contained in:
Farit Shamardanov 2024-11-03 13:04:29 +03:00
parent 4bdce508af
commit b2f94b083c

View File

@ -297,7 +297,7 @@ dvtws, собираемый из тех же исходников (см. bsd.txt
невозможна. Если вы потом удалите файл, и у процесса не будет прав на создание файла в его директории, лог больше не невозможна. Если вы потом удалите файл, и у процесса не будет прав на создание файла в его директории, лог больше не
будет вестись. Вместо удаления лучше использовать truncate. В шелле это можно сделать через команду ": >filename" будет вестись. Вместо удаления лучше использовать truncate. В шелле это можно сделать через команду ": >filename"
## АТАКА ДЕСИНХРОНИЗАЦИИ DPI ### АТАКА ДЕСИНХРОНИЗАЦИИ DPI
___ ___
Суть ее в следующем. После выполнения tcp 3-way handshake идет первый пакет с данными от клиента. Там обычно `GET / ...` Суть ее в следующем. После выполнения tcp 3-way handshake идет первый пакет с данными от клиента. Там обычно `GET / ...`
@ -467,7 +467,7 @@ mark нужен, чтобы сгенерированный поддельный
3 - стандартная ситуация приема одного пакета запроса 3 - стандартная ситуация приема одного пакета запроса
4-6 - на случай ретрансмиссии или запроса длиной в несколько пакетов (TLSClientHello с kyber, например) 4-6 - на случай ретрансмиссии или запроса длиной в несколько пакетов (TLSClientHello с kyber, например)
## КОМБИНИРОВАНИЕ МЕТОДОВ ДЕСИНХРОНИЗАЦИИ ### КОМБИНИРОВАНИЕ МЕТОДОВ ДЕСИНХРОНИЗАЦИИ
___ ___
В параметре dpi-desync можно указать до 3 режимов через запятую. В параметре dpi-desync можно указать до 3 режимов через запятую.
@ -477,7 +477,7 @@ ___
Режим 1-й фазы может быть `fake`, `rst`, `rstack`. Режим 2-й фазы может быть `disorder`, `disorder2`, `split`, `split2`, `ipfrag2`. Режим 1-й фазы может быть `fake`, `rst`, `rstack`. Режим 2-й фазы может быть `disorder`, `disorder2`, `split`, `split2`, `ipfrag2`.
Может быть полезно, когда у провайдера стоит не один DPI. Может быть полезно, когда у провайдера стоит не один DPI.
## РЕЖИМ SYNACK ### РЕЖИМ SYNACK
___ ___
В документации по geneva это называется "TCB turnaround". Попытка ввести DPI в заблуждение относительно В документации по geneva это называется "TCB turnaround". Попытка ввести DPI в заблуждение относительно
ролей клиента и сервера. ролей клиента и сервера.
@ -505,19 +505,19 @@ ip6tables -D zone_wan_output -m comment --comment '!fw3' -j zone_wan_dest_ACCEPT
Если не принять эти меры, отсылка SYN,ACK сегмента вызовет ошибку и операция будет прервана. Если не принять эти меры, отсылка SYN,ACK сегмента вызовет ошибку и операция будет прервана.
Остальные режимы тоже не сработают. Если поймете, что вам synack не нужен, обязательно верните правило дропа INVALID. Остальные режимы тоже не сработают. Если поймете, что вам synack не нужен, обязательно верните правило дропа INVALID.
## РЕЖИМ SYNDATA ### РЕЖИМ SYNDATA
___ ___
Тут все просто. Добавляются данные в пакет SYN. Все ОС их игнорируют, если не используется TCP fast open (TFO), Тут все просто. Добавляются данные в пакет SYN. Все ОС их игнорируют, если не используется TCP fast open (TFO),
а DPI может воспринять, не разобравшись есть там TFO или нет. а DPI может воспринять, не разобравшись есть там TFO или нет.
Оригинальные соединения с TFO не трогаются, поскольку это их точно сломает. Оригинальные соединения с TFO не трогаются, поскольку это их точно сломает.
Без уточняющего параметра добавляются 16 нулевых байтов. Без уточняющего параметра добавляются 16 нулевых байтов.
## ВИРТУАЛЬНЫЕ МАШИНЫ ### ВИРТУАЛЬНЫЕ МАШИНЫ
___ ___
Изнутри VM от virtualbox и vmware в режиме NAT не работают многие техники пакетной магии nfqws. Изнутри VM от virtualbox и vmware в режиме NAT не работают многие техники пакетной магии nfqws.
Принудительно заменяется ttl, не проходят фейк пакеты. Необходимо настроить сеть в режиме bridge. Принудительно заменяется ttl, не проходят фейк пакеты. Необходимо настроить сеть в режиме bridge.
## CONNTRACK ### CONNTRACK
___ ___
nfqws оснащен ограниченной реализацией слежения за состоянием tcp соединений (conntrack). nfqws оснащен ограниченной реализацией слежения за состоянием tcp соединений (conntrack).
Он включается для реализации некоторых методов противодействия DPI. Он включается для реализации некоторых методов противодействия DPI.
@ -572,7 +572,7 @@ window size итоговый размер окна стал максимальн
На склонных к бездействию соединениях следует изменить таймауты conntrack. На склонных к бездействию соединениях следует изменить таймауты conntrack.
Если соединение выпало из conntrack и задана опция `--dpi-desync-cutoff`, `dpi desync` применяться не будет. Если соединение выпало из conntrack и задана опция `--dpi-desync-cutoff`, `dpi desync` применяться не будет.
## РЕАССЕМБЛИНГ ### РЕАССЕМБЛИНГ
___ ___
nfqws поддерживает реассемблинг некоторых видов запросов. nfqws поддерживает реассемблинг некоторых видов запросов.
На текущий момент это TLS и QUIC ClientHello. Они бывает длинными, если в chrome включить пост-квантовую На текущий момент это TLS и QUIC ClientHello. Они бывает длинными, если в chrome включить пост-квантовую
@ -592,7 +592,7 @@ chrome рандомизирует фингерпринт TLS. SNI может о
и заданы опции fake,split2, то перед первым пакетом идет fake, затем первый пакет в оригинале, и заданы опции fake,split2, то перед первым пакетом идет fake, затем первый пакет в оригинале,
а последний пакет разбивается на 2 сегмента. В итоге имеем фейк в начале и 3 реальных сегмента. а последний пакет разбивается на 2 сегмента. В итоге имеем фейк в начале и 3 реальных сегмента.
## ПОДДЕРЖКА UDP ### ПОДДЕРЖКА UDP
___ ___
Атаки на udp более ограничены в возможностях. udp нельзя фрагментировать иначе, чем на уровне ip. Атаки на udp более ограничены в возможностях. udp нельзя фрагментировать иначе, чем на уровне ip.
Для UDP действуют только режимы десинхронизации `fake`, `hopbyhop`, `destopt`, `ipfrag1`, `ipfrag2`, `udplen`, `tamper`. Для UDP действуют только режимы десинхронизации `fake`, `hopbyhop`, `destopt`, `ipfrag1`, `ipfrag2`, `udplen`, `tamper`.
@ -612,7 +612,7 @@ ___
Атака fake полезна только для stateful DPI, она бесполезна для анализа на уровне отдельных пакетов. Атака fake полезна только для stateful DPI, она бесполезна для анализа на уровне отдельных пакетов.
По умолчанию fake наполнение - 64 нуля. Можно указать файл в `--dpi-desync-fake-unknown-udp`. По умолчанию fake наполнение - 64 нуля. Можно указать файл в `--dpi-desync-fake-unknown-udp`.
## IP ФРАГМЕНТАЦИЯ ### IP ФРАГМЕНТАЦИЯ
___ ___
Современная сеть практически не пропускает фрагментированные tcp на уровне ip. Современная сеть практически не пропускает фрагментированные tcp на уровне ip.
На udp с этим дело получше, поскольку некоторые udp протоколы могут опираться на этот механизм (IKE старых версий). На udp с этим дело получше, поскольку некоторые udp протоколы могут опираться на этот механизм (IKE старых версий).
@ -669,7 +669,7 @@ options ip6table_raw raw_before_defrag=1
Видимо единственный рабочий метод - отказаться от iptables и использовать nftables. Видимо единственный рабочий метод - отказаться от iptables и использовать nftables.
Хук должен быть с приоритетом 101 или выше. Хук должен быть с приоритетом 101 или выше.
## МНОЖЕСТВЕННЫЕ СТРАТЕГИИ ### МНОЖЕСТВЕННЫЕ СТРАТЕГИИ
___ ___
`nfqws` способен по-разному реагировать на различные запросы и применять разные стратегии дурения. `nfqws` способен по-разному реагировать на различные запросы и применять разные стратегии дурения.
Это реализовано посредством поддержки множества профилей дурения. Это реализовано посредством поддержки множества профилей дурения.
@ -951,7 +951,7 @@ TCP_USER_TIMEOUT. Под таймаутом подразумевается вр
что данных для передачи нет. Полезно для сокращения время закрытия подвисших соединений. что данных для передачи нет. Полезно для сокращения время закрытия подвисших соединений.
Поддерживается только на Linux и MacOS. Поддерживается только на Linux и MacOS.
## МНОЖЕСТВЕННЫЕ СТРАТЕГИИ ### МНОЖЕСТВЕННЫЕ СТРАТЕГИИ
___ ___
Работают аналогично `nfqws`, кроме некоторых моментов. Работают аналогично `nfqws`, кроме некоторых моментов.
Нет параметра `--filter-udp`, поскольку `tpws` udp не поддерживает. Нет параметра `--filter-udp`, поскольку `tpws` udp не поддерживает.