Я пытаюсь запустить следующую команду iptables из https : //github.com/farukuzun/notsodeep в ubuntu 20.04.1.
iptables -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK --sport 443 -j NFQUEUE --queue-num 200 --queue-bypass
Но результат выполнения следующий:
# iptables -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK --sport 443 -j NFQUEUE --queue-num 200 --queue-bypass
iptables v1.8.4 (legacy): unknown option "--queue-num"
Try `iptables -h' or 'iptables --help' for more information.
И следующий результат выполнения делает вид, будто цель NFQUEUE не существует на моей машине вообще:
# iptables -A INPUT -j NFQUEUE
iptables v1.8.4 (legacy): Couldn't load target `NFQUEUE':No such file or directory
Try `iptables -h' or 'iptables --help' for more information.
Я смущен, потому что такой ситуации я никогда раньше не видел. Как я и ожидал, все команды должны работать нормально.
Это все потому, что система Ubuntu, которую я использую, основана на WSL ( https://docs.microsoft.com/windows/wsl/install-win10 )?
Проверьте вывод этих команд:
modinfo xt_NFQUEUE
lsmod | grep NFQUEUE
iptables -j NFQUEUE --help
Каждая цель xtables состоит из двух частей:
Первые две команды проверяют наличие модуля ядра и его загрузку. Третье правило проверяет наличие пользовательской библиотеки и список поддерживаемых опций.
Первая версия WSL имеет очень ограниченную поддержку собственных инструментов Linux, поскольку не использует само ядро Linux, а использует трансляцию системных вызовов в ядро Windows NT.
Чтобы получить полную поддержку iptables, вы должны использовать WSL2. Он использует настоящее ядро Linux, а не эмуляцию ядра Windows NT.
об установке модуля ядра xt_NFQUEUE в WSL2 вам необходимо настроить свой собственный WSL kenel. Вы можете обратиться к следующему веб-сайту: https://gist.github.com/cerebrate/d40c89d3fa89594e1b1538b2ce9d2720
Я должен добавить кое-что о включении «NFQUEUE» в ядро, см. рисунок ниже. https://i.stack.imgur.com/FhGfy.png