Duas coisas para mencionar.
Primeiramente você faz uma política (-P) ACEITAR para cada um dos INPUT, OUTPUT e FORWARD. Melhor você fechar (DROP) tudo, especialmente em INPUT, e abrir apenas o que for necessário.
Segundo, eu não conheço Python muito bem, mas geralmente esse tipo de conexão não envia apenas um pacote, mas muitos mais. Mesmo se você fizer um tempo limite de 1 segundo, haverá (eu acho) 2 pacotes idênticos enviados, porque não houve resposta para o primeiro. Então o primeiro pacote traz a fonte na próxima lista AUTH + 1, e o segundo pacote o remove e traz a fonte de volta para a lista AUTH1.Eu aconselho a reescrever seu portknocking levando em conta vários pacotes idênticos enviados na mesma porta.