mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-26 20:20:53 +03:00
readme: datanoack may pass cgNAT
This commit is contained in:
parent
663a2bb2a4
commit
d28074b357
@ -249,8 +249,8 @@ add tcp option **MD5 signature**. All of them have their own disadvantages :
|
|||||||
ISP drops them or because there are two same headers.
|
ISP drops them or because there are two same headers.
|
||||||
DPIs may still anaylize packets with one or two hop-by-hop headers.
|
DPIs may still anaylize packets with one or two hop-by-hop headers.
|
||||||
* `datanoack` sends tcp fakes without ACK flag. Servers do not accept this but DPI may accept.
|
* `datanoack` sends tcp fakes without ACK flag. Servers do not accept this but DPI may accept.
|
||||||
This mode breaks NAT and does not work with iptables if masquerade is used, even from the router itself.
|
This mode may break NAT and may not work with iptables if masquerade is used, even from the router itself.
|
||||||
Works with nftables properly. Requires external IP address.
|
Works with nftables properly. Likely requires external IP address (some ISPs pass these packets through their NAT).
|
||||||
* `autottl` tries to automatically guess TTL value that allows DPI to receive fakes and does not allow them to reach the server.
|
* `autottl` tries to automatically guess TTL value that allows DPI to receive fakes and does not allow them to reach the server.
|
||||||
This tech relies on well known TTL values used by OS : 64,128,255. nfqws takes first incoming packet (YES, you need to redirect it too),
|
This tech relies on well known TTL values used by OS : 64,128,255. nfqws takes first incoming packet (YES, you need to redirect it too),
|
||||||
guesses path length and decreases by `delta` value (default 1). If resulting value is outside the range (min,max - default 3,20)
|
guesses path length and decreases by `delta` value (default 1). If resulting value is outside the range (min,max - default 3,20)
|
||||||
@ -570,7 +570,7 @@ tpws is transparent proxy.
|
|||||||
--split-pos=<numeric_offset> ; split at specified pos. split-http-req takes precedence over split-pos for http reqs.
|
--split-pos=<numeric_offset> ; split at specified pos. split-http-req takes precedence over split-pos for http reqs.
|
||||||
--split-any-protocol ; split not only http and https
|
--split-any-protocol ; split not only http and https
|
||||||
--disorder ; when splitting simulate sending second fragment first
|
--disorder ; when splitting simulate sending second fragment first
|
||||||
--oob ; when splitting send out of band zero byte
|
--oob[=<char>|0xHEX] ; when splitting send out of band byte. default is HEX 0x00.
|
||||||
--hostcase ; change Host: => host:
|
--hostcase ; change Host: => host:
|
||||||
--hostspell ; exact spelling of "Host" header. must be 4 chars. default is "host"
|
--hostspell ; exact spelling of "Host" header. must be 4 chars. default is "host"
|
||||||
--hostdot ; add "." after Host: name
|
--hostdot ; add "." after Host: name
|
||||||
@ -583,6 +583,8 @@ tpws is transparent proxy.
|
|||||||
--unixeol ; replace 0D0A to 0A
|
--unixeol ; replace 0D0A to 0A
|
||||||
--tlsrec=sni ; make 2 TLS records. split at SNI. don't split if SNI is not present.
|
--tlsrec=sni ; make 2 TLS records. split at SNI. don't split if SNI is not present.
|
||||||
--tlsrec-pos=<pos> ; make 2 TLS records. split at specified pos
|
--tlsrec-pos=<pos> ; make 2 TLS records. split at specified pos
|
||||||
|
--tamper-start=<pos> ; start tampering only from specified outbound stream position. default is 0.
|
||||||
|
--tamper-cutoff=<pos> ; do not tamper anymore after specified outbound stream position. default is unlimited.
|
||||||
--daemon ; daemonize
|
--daemon ; daemonize
|
||||||
--pidfile=<filename> ; write pid to file
|
--pidfile=<filename> ; write pid to file
|
||||||
--user=<username> ; drop root privs
|
--user=<username> ; drop root privs
|
||||||
|
@ -325,8 +325,10 @@ fakeknown отличается от fake тем, что применяется
|
|||||||
такие пакеты могут фильтроваться и не доходить. Расчет идет на то, что DPI проанализирует пакет с hop-by-hop,
|
такие пакеты могут фильтроваться и не доходить. Расчет идет на то, что DPI проанализирует пакет с hop-by-hop,
|
||||||
но он либо не дойдет до адресата всилу фильтров провайдера, либо будет отброшен сервером, потому что хедера два.
|
но он либо не дойдет до адресата всилу фильтров провайдера, либо будет отброшен сервером, потому что хедера два.
|
||||||
* datanoack высылает фейки со снятым tcp флагом ACK. Сервера такое не принимают, а DPI может принять.
|
* datanoack высылает фейки со снятым tcp флагом ACK. Сервера такое не принимают, а DPI может принять.
|
||||||
Эта техника ломает NAT и не работает с iptables, если используется masquerade, даже с локальной системы
|
Эта техника может ломать NAT и не всегда работает с iptables, если используется masquerade, даже с локальной системы
|
||||||
(почти всегда для ipv4). С nftables работает без ограничений. Требуется внешний IP адрес.
|
(почти всегда для ipv4). С nftables работает без ограничений.
|
||||||
|
Экспериментально выяснено, что некоторые провайдерские NAT не отбрасывают эти пакеты, потому работает даже
|
||||||
|
с внутренним провайдерским IP. Но linux NAT оно не пройдет. В общем случае требуется внешний IP адрес.
|
||||||
* autottl. Суть режима в автоматическом определении TTL, чтобы он почти наверняка прошел DPI и немного не дошел до сервера.
|
* autottl. Суть режима в автоматическом определении TTL, чтобы он почти наверняка прошел DPI и немного не дошел до сервера.
|
||||||
Берутся базовые значения TTL 64,128,255, смотрится входящий пакет (да, требуется направить первый входящий пакет на nfqws !).
|
Берутся базовые значения TTL 64,128,255, смотрится входящий пакет (да, требуется направить первый входящий пакет на nfqws !).
|
||||||
Вычисляется длина пути, отнимается delta (1 по умолчанию). Если TTL вне диапазона (min,max - 3,20 по умолчанию),
|
Вычисляется длина пути, отнимается delta (1 по умолчанию). Если TTL вне диапазона (min,max - 3,20 по умолчанию),
|
||||||
@ -646,7 +648,7 @@ tpws - это transparent proxy.
|
|||||||
--split-pos=<offset> ; делить все посылы на сегменты в указанной позиции. единственная опция, работающая на не-http. при указании split-http-req он имеет преимущество на http.
|
--split-pos=<offset> ; делить все посылы на сегменты в указанной позиции. единственная опция, работающая на не-http. при указании split-http-req он имеет преимущество на http.
|
||||||
--split-any-protocol ; применять split-pos к любым пакетам. по умолчанию - только к http и TLS ClientHello
|
--split-any-protocol ; применять split-pos к любым пакетам. по умолчанию - только к http и TLS ClientHello
|
||||||
--disorder ; путем манипуляций с сокетом вынуждает отправлять первым второй сегмент разделенного запроса
|
--disorder ; путем манипуляций с сокетом вынуждает отправлять первым второй сегмент разделенного запроса
|
||||||
--oob ; отправить 1 нулевой байт out-of-band data (OOB) в конце первой части сплита
|
--oob[=<char>|0xHEX] ; отправить байт out-of-band data (OOB) в конце первой части сплита
|
||||||
--hostcase ; менять регистр заголовка "Host:". по умолчанию на "host:".
|
--hostcase ; менять регистр заголовка "Host:". по умолчанию на "host:".
|
||||||
--hostspell=HoST ; точное написание заголовка Host (можно "HOST" или "HoSt"). автоматом включает --hostcase
|
--hostspell=HoST ; точное написание заголовка Host (можно "HOST" или "HoSt"). автоматом включает --hostcase
|
||||||
--hostdot ; добавление точки после имени хоста : "Host: kinozal.tv."
|
--hostdot ; добавление точки после имени хоста : "Host: kinozal.tv."
|
||||||
@ -659,6 +661,8 @@ tpws - это transparent proxy.
|
|||||||
--unixeol ; конвертировать 0D0A в 0A и использовать везде 0A
|
--unixeol ; конвертировать 0D0A в 0A и использовать везде 0A
|
||||||
--tlsrec=sni ; разбивка TLS ClientHello на 2 TLS records. режем между 1 и 2 символами hostname в SNI. Если SNI нет - отмена.
|
--tlsrec=sni ; разбивка TLS ClientHello на 2 TLS records. режем между 1 и 2 символами hostname в SNI. Если SNI нет - отмена.
|
||||||
--tlsrec-pos=<pos> ; разбивка TLS ClientHello на 2 TLS records. режем на указанной позиции, если длина слишком мелкая - на позиции 1.
|
--tlsrec-pos=<pos> ; разбивка TLS ClientHello на 2 TLS records. режем на указанной позиции, если длина слишком мелкая - на позиции 1.
|
||||||
|
--tamper-start=<pos> ; начинать дурение только с указанной байтовой позиции исходяшего потока (считается позиция начала принятого блока)
|
||||||
|
--tamper-cutoff=<pos> ; закончить дурение на указанной байтовой позиции исходящего потока (считается позиция начала принятого блока)
|
||||||
--hostlist=<filename> ; действовать только над доменами, входящими в список из filename. поддомены автоматически учитываются.
|
--hostlist=<filename> ; действовать только над доменами, входящими в список из filename. поддомены автоматически учитываются.
|
||||||
; в файле должен быть хост на каждой строке.
|
; в файле должен быть хост на каждой строке.
|
||||||
; список читается 1 раз при старте и хранится в памяти в виде иерархической структуры для быстрого поиска.
|
; список читается 1 раз при старте и хранится в памяти в виде иерархической структуры для быстрого поиска.
|
||||||
|
Loading…
Reference in New Issue
Block a user