Поверх не устанавливается. Они полностью независимы, но друг с другом дружить не будут. Что-то одно должно быть запущено, а другое опущено. Кроме особых случаев, когда z1 в tpws режиме
А есть какая то разница, как запускается z2 под виндой, просто батником или службой? Столкнулся с проблемой, что стратегия работает при простом запуске батником, но не работает если её переделать в службу. Стратегия условно такая с ipset
--filter-tcp=443 --filter-l7=tls --ipset="%~dp0lists\ipset-cloudflare.txt" ^
--out-range=-d10 ^
--payload=tls_client_hello ^
--lua-desync=fake:blob=fake_default_tls:tcp_ts=-1000 ^
--lua-desync=multidisorder:pos=midsld
И тоже самое в службе, только с экранированными кавычками в пути к файлу
--ipset=\"%~dp0lists\ipset-cloudflare.txt\"
Не понимаю, что может быть не так, куда копать?
Upd: При этом если в этом же батнике для создания службы меняю стратегию на, например, стандартную для ютуба, то она уже работает как служба. А если прописываю обе стратегии с ipset и ютубовскую, то перестает работать как служба, но при этом работает через запуск батником.
А кто-нибудь дурил через запрет2 ssh-протокол?
–debug=@C:\log.txt
Как unknown можно попробовать
менять надо standard payload аргумент у функций типа fake, multisplit и тд
debug_from_cmd.txt (448,5 КБ)
debug_from_srv.txt (359,3 КБ)
В debug_from_cmd.txt лог с запуском через батник, в debug_from_srv.txt через службу. открывал в браузере 16-20 dpi checker и проверял пробивается ли cloudflare. В логе от батника присутствуют проверяемые в чекере адреса, например:
desync profile search for tcp ip=2a06:98c1:3123:8000:: port=443 l7proto=tls ssid='' hostname='img.wzstats.gg'
* ipset check for profile 1 (noname)
[G:\Programs\Zapret\lists\ipset-cloudflare.txt] include ipset check for 2a06:98c1:3123:8000:: : positive
В логе от службы вообще ни одного из 4 доменов cloudflare из чекера нет, как будто он их и не уловил.
При переносе стратегии в z1 проблем со службой нет.
Это регрессия в ipv6 диссекторе, уже удалил релиз 0.8.5. Собираю 0.8.6
Спасибо, обновился, проблема ушла.
А еще вопрос, в пределах одной стратегии нельзя использовать и –ipset и –hostlist одновременно?
Теперь ругается на отсутствие Host, инстанс fake не применяется. Хедер Host в запросе HTTP 1.0 отсутствует, но фактически хост есть в URL.
TCP: len=177 : 47 45 54 20 48 74 74 70 3A 2F 2F 77 6F 72 6D 6E 65 74 31 2E 74 65 61 6D 31 37 2E 63 6F 6D 3A 38 ... : GET Http://wormnet1.team17.com:8 ...
client mode desync profile/ipcache search target ip=54.220.28.168 port=80
using cached desync profile 0 (no_action)
packet contains http_req payload
not applying tampering to HTTP without Host:
fixing tcp checksum
packet: id=2 reinject unmodified
Извлечение хоста из полного URL прокси запроса никогда и не поддерживалось
Хорошо, не нужно извлекать хост из URL. Инстансу fake не нужно значение хоста для его работы. Как тогда запустить инстанс fake с блобом для всех пакетов, пейлоад которых распознан как http_req?
Специально проверил на curl.
curl всегда дублирует в Host:
CONNECT 2ip.ru:443 HTTP/1.1
Host: 2ip.ru:443
User-Agent: curl/8.8.0
Proxy-Connection: Keep-Alive
GET http://2ip.ru/ HTTP/1.1
Host: 2ip.ru
User-Agent: curl/8.8.0
Accept: */*
Proxy-Connection: Keep-Alive
Жесткая проверка на наличие хост это рудимент из nfqws1
Надо убирать
Игра Worms Armageddon шлёт запрос в HTTP 1.0 c полным URL и не указывает хедер Host.
Убрана проверка
А еще вопрос, в пределах одной стратегии нельзя использовать и –ipset и –hostlist одновременно?
В этом случае будет использоваться пересечение, т.е. для применения правила должны одновременно удовлетворять и IP, и хост.
Фичареквест из разряда не важных, но “nice to have”: добавить в Zapret какую-то опцию, чтобы при её наличии одновременное указание ipset и hostlist работало, как объединение двух множеств, что-то типа --ip-or-hostname или вроде того. Может быть полезным, если нужно применить одно и то же правило и для списков IP, и для списка доменов, не задавая при этом два отдельных правила.
Нафига ? 2 профиля написать
использовать template для сокращения писанины
Выцеплять ssh вроде получилось, а вот стратегию найти пока нет. Соединяется, пару букв напечатаешь и зависает.
Могут сервак сечь.
Пробовал пробивать запрет на входящие через ipv6 мегафон
они там режут все известные протоколы
только дурением с обоих сторон пробил
Думал в стратегии -payload unknown и все будет хорошо. Ошибался. Получаю в лоб:
LUA: payload_check: payload ‘unknown’ does not pass ‘known’ filter
Аналогично и с all и с его отсутствием.
Как можно преодолеть это ограничение?
P/S Детект протокола произошел на уровне правил iptables. Я точно знаю что это за протокол, как его обработать в nfqws2?
Не могу пройти квест с lua-init.
NFQWS_ARGS="
--lua-init=\"function set_payload_wgcf(ctx, desync) desync.l7payload = wgcf; end\"
--blob=wgcf:@/opt/share/zapret/fake/wgcf.bin
--lua-desync=set_payload_wgcf"
LUA INIT
LUA v5.1 LuaJIT 2.1.1756211046 OpenResty
JIT: ON fold cse dce fwd dse narrow loop abc sink fuse
LUA REMOVE: os.execute io.popen package.loadlib debug package.loaded.debug
LUA BLOB: fake_default_tls (size=680)
LUA BLOB: fake_default_http (size=263)
LUA BLOB: fake_default_quic (size=620)
LUA BLOB: sip2awg (size=367)
LUA STR: NFQWS2_VER
LUA NUMERIC: qnum desync_fwmark NFQWS2_COMPAT_VER VERDICT_PASS VERDICT_MODIFY VERDICT_DROP DEFAULT_MSS IP_BASE_LEN IP6_BASE_LEN TCP_BASE_LEN UDP_BASE_LEN TCP_KIND_END TCP_KIND_NOOP TCP_KIND_MSS TCP_KIND_SCALE TCP_KIND_SACK_PERM TCP_KIND_SACK TCP_KIND_TS TCP_KIND_MD5 TCP_KIND_AO TCP_KIND_FASTOPEN TH_FIN TH_SYN TH_RST TH_PUSH TH_ACK TH_FIN TH_URG TH_ECE TH_CWR IP_RF IP_DF IP_MF IP_OFFMASK IP_FLAGMASK IPTOS_ECN_MASK IPTOS_ECN_NOT_ECT IPTOS_ECN_ECT1 IPTOS_ECN_ECT0 IPTOS_ECN_CE IPTOS_DSCP_MASK IP6F_MORE_FRAG IPV6_FLOWLABEL_MASK IPV6_FLOWINFO_MASK IPPROTO_IP IPPROTO_IPV6 IPPROTO_ICMP IPPROTO_TCP IPPROTO_UDP IPPROTO_ICMPV6 IPPROTO_HOPOPTS IPPROTO_ROUTING IPPROTO_FRAGMENT IPPROTO_AH IPPROTO_ESP IPPROTO_DSTOPTS IPPROTO_MH IPPROTO_HIP IPPROTO_SHIM6 IPPROTO_NONE
LUA BOOL: b_debug b_daemon b_server b_ipcache_hostname b_ctrack_disable
LUA RUN FILE: /opt/share/zapret/lua/zapret-lib.lua
LUA RUN FILE: /opt/share/zapret/lua/zapret-antidpi.lua
LUA RUN STR: "function
LUA ERROR: [string ""function"]:1: unfinished string near '<eof>'
LUA SHUTDOWN