Обфускация только wireguard handshake: нужна помощь в настройке

не надо было, я же удалил пост. mangle postrouting работает и с исходящими и с проходящими пакетами. посмотрите через iptables -t mangle -vnL, проходят ли пакеты через нужное правило (1 столбец, пакеты должны увеличиваться после каждой попытки соединения).
и еще для вашей цели подойдёт amneziaWG, есть и на пк и на мобилу.

вот только что проверил на awg, фейки приходят на сервер и в логе есть запись, подключался с другого устройства в lan со сменой шлюза (кстати может надо ребутнуть девайс из-за кеша таблицы маршрутизации)

/opt/zapret/nfq/nfqws --qnum=250 --dpi-desync-any-protocol=1 --dpi-desync-repeats=20 --dpi-desync=fake --debug=1
iptables -t mangle -A POSTROUTING -p udp -m udp --dport 100 -m connbytes --connbytes 1:1 --connbytes-mode packets --connbytes-dir original -j NFQUEUE --queue-num 250 --queue-bypass

port 100 = awg server

Спасибо, попробую. Про амнезию я знаю, но у меня пока стоит цель претворить в жизнь решения партии и правительства, не прибегая к платным методам :rofl: Пока недостатка в бесплатных вариантах нет, осталось только разобраться. И для общего развития полезно. Как бесплатные варианты закончатся, уже буду копать в сторону Vision/Reality, все надежней, чем амнезия

дополнил

Между прочим AmneziaVPN поднимает Vision/Reality на вашем сервере за пару нажатий.

Доброе.
Тоже столкнулся с тем что нужно обрусифицировать трафик WG. но мне это нужно делать на роуторе mikrotik.
Есть возможность поставить контейнер или вдруг каким-то чудом сделать это непосредственно средствами самой железки.

Подскажите, zapret существует в виде контейнера?

Добрый день!

Я перехожу на OpenWRT с nftables, с которыми раньше не работал.
Для запуска zapret хочу использовать кастомный init.d (для инъекции правила firewall), но не знаю, как его написать. Подскажите, пожалуйста, как должно звучать правило для zapert “перехватывай и отправляй в zapret первые 4 пакета любого соединения udp на порт 51280” и его модификация “перехватывай и отправляй в zapret первые 4 пакета соединения udp на порт 51280, если оно идёт на адрес <такой-то>”.

Спасибо!

del

cutoff здесь не нужен, потому что nfqws и так распознает wireguard handshake, а к остальным дурение не будет применено, поскольку нет --dpi-desync-any-protocol

В openwrt трогать правила таблиц из init.d - крайне плохой тон, поскольку это чревато гонками с системой управления фаерволом и потерей правил при любых сохранениях или рестартах.
У fw3 с iptables и fw4 с nftables есть свои хуки и инклуды, но разные.
К ним и следует прикручиваться

Полагаю, возникло недопонимание. Под “кастомным init.d” я имел в виду скрипт /opt/zapret/init.d/<архитектура>/custom.
С правилами разобрался. Взял за основу пример из указанной папки и переделал его.

Добрый день. Тестирую в ручном режиме обфускацию только хэндшейка. Пакет уходит в нужную очередь, модифицируется, но после первого пакета пинга соединение зависает. Подскажите, пожалуйста, в какую сторону копать?

Запускаю так:
~ # /opt/zapret/nfq/nfqws --dpi-desync=fake --dpi-desync-repeats=20 --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin --qnum=200 --debug=1

IPTABLES:

~ # iptables-save | grep NFQUEUE
-A POSTROUTING -o eth3 -p udp -m multiport --dports 51820 -m mark ! --mark 0x40000000/0x40000000 -m connbytes --connbytes 1:1 --connbytes-mode packets --connbytes-dir original -j NFQUEUE --queue-num 200 --queue-bypass

Результат:
IP4: x.x.x.x => x.x.x.x proto=udp ttl=64 sport=41605 dport=51820
UDP: 01 00 00 00 58 CB FC 6C 1B 29 C7 6A B5 22 7C 28 B7 75 D5 4D F4 6E 0E 43 C3 D6 15 30 AF 8F 92 4A … : …X…l.).j."|(.u.M.n.C…0…J …
desync profile search for hostname=‘’ ipv6=0 tcp_port=0 udp_port=51820
desync profile 1 matches
packet contains wireguard handshake initiation
dpi desync src=x.x.x.x:41605 dst=x.x.x.x:51820
sending fake request : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … : … …
reinjecting original packet. len=176 len_payload=148
applying linux postnat conntrack workaround
packet: id=3 pass modified. len=28

nfqws --qnum=220 --user=daemon --dpi-desync-fwmark=0x40000000 --dpi-desync=fake --dpi-desync-repeats=6

У меня так работает.