Iptables QUIC filter

нужно заблокировать QUIC на роутере, но при этом оставить udp port 443 рабочим для других протоколов, пока ничего лучше
iptables -A FORWARD -p udp --dport 443 -m string --hex-string "|0000000108|" --algo kmp -j REJECT
не придумал

решено: Iptables QUIC filter - #9 by ValdikSS

1 Like

по любому придется использовать ту или иную форму payload expressions
в iptables лучше u32, тк string ищет по всему пакету
надо сечь quic initial
там в лонг хедере характерный маркер с версией 1
и можно ограничить по ctstate new
тк инитиалы идут в начале
и если их дропать, коннтрак запись не создастся
тут надо это тщательней проверить
может рубить на раннем хуке, чтобы это было так

так можно сделать фильтр не жрущим проц

если не секрет, для чего хотите заблокировать? не для того, чтобы приложения ютуба не использовали QUIC через ру хостинги?

может он на ркн работат :sweat_smile:

QUIC через TCP vpn/proxy работает медленно

А не проверял, если QUIC заблокировать, оф приложение ютуба будет пробовать подключаться без его использования или нет?

если заблокировать QUIC то будет подключаться по TCP

спасибо, если поймешь как заблокировать то напиши

Нужно использовать u32.

В GoodbyeDPI это делается так:

#define FILTER_PASSIVE_BLOCK_QUIC "outbound and !impostor and !loopback and udp " \
        "and udp.DstPort == 443 and udp.PayloadLength >= 1200 " \
        "and udp.Payload[0] >= 0xC0 and udp.Payload32[1b] == 0x01"

Соответственно u32 будет примерно такой:

iptables -A FORWARD -p udp --dport 443 -m connbytes --connbytes 0:20 --connbytes-dir original --connbytes-mode packets -m u32 --u32 '25 & 0xF0 = 0xC0 && 29 = 0x00000001' -j DROP
ip6tables -A FORWARD -p udp --dport 443 -m connbytes --connbytes 0:20 --connbytes-dir original --connbytes-mode packets -m u32 --u32 '45 & 0xF0 = 0xC0 && 49 = 0x00000001' -j DROP