LINUX.ORG.RU
решено ФорумAdmin

NFTables работает через раз

 ,


0

1

Доброго дня господа!
Имеется Debian GNU/Linux 12. В котором я пытаюсь настроить своего рода port knoking.
Суть идеи мы ловим icmp пакеты, когда пакет равен заданному размеру мы перемещаем его в нужный сет, когда адрес пройдёт по всем сетам, мы разрешаем ему работать с заданным сервисом.
Суть проблемы - правила срабатывают периодически(те они чаще не работают чем работают).
Что пробовал - выделять в отдельную цепочку, использовать в инпуте, логировал пакеты, выставлял счётчики,для теста во втрором шаге вообще убирал размер не помогло, делал захват пакетов.
Размер пакетов проверял при помощи - tcpdump -n -i enp2s0 -vv icmp
Вот текущая реализация для ssh:

table inet filter {
        set ssh_step1 {
                type ipv4_addr
                timeout 5m
        }
        set ssh_allow {
                type ipv4_addr
                timeout 8h
                gc-interval 30s
        }

        chain input {
                type filter hook input priority filter; policy drop; # Drop packets
                # Allow established and related packets
                ct state invalid counter drop comment "early drop of invalid packets"
                ct state established,related accept
                # Loopback
                iif != lo ip daddr 127.0.0.1/8 counter drop comment "drop connections to loopback not coming from loopback"
                iifname lo accept
                #SSH knoking
                iifname "enp2s0" icmp type echo-request jump input_knock
                # ICMP
                iifname "enp2s0" icmp type echo-request limit rate 15/second accept     # Ping policy
                # Allow ssh
                iifname "enp2s0" ip saddr @ssh_allow tcp dport 22 ct state new accept
        }
        chain output {
                type filter hook output priority filter;
        }
        chain input_knock {
                ip saddr @ssh_step1 meta length 328 add @ssh_allow { ip saddr } counter
                meta length 428 add @ssh_step1 { ip saddr } counter
        }
}

Может кто-то подсказать, в чем может крыться проблема?



Последнее исправление: SterhTG (всего исправлений: 2)

Я конечно не специалист в nftables, но думаю, что обработку icmp-пакетов нужно перенести до правил «ct state».
А nftables есть nftrace который должен помогать в таких ситуациях.

vel ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.