Sua cadeia está na tabela de filtros (desde que você não especificou uma tabela quando foi criada, ela acaba lá por padrão), mas você está tentando referenciá-la a partir da tabela mangle, onde ela não existe. / p>
Você precisaria especificar a tabela correta, assim:
iptables -t mangle -N MYCHAIN
Além disso, para usar o destino NFQUEUE, você precisa ter o módulo do kernel nfnetlink_queue carregado. A meta MARK precisa ser definida na cadeia PREROUTING da tabela mangle. No seu exemplo acima, ele é definido na cadeia INPUT.
Então, para resumir, para que isso funcione, você provavelmente precisará fazer algo assim:
iptables -t mangle -N MYCHAIN
iptables -t mangle -I MYCHAIN -j NFQUEUE -p udp --dport 4444
iptables -t mangle -I MYCHAIN -j MARK --set-mark 100 -p udp --dport 4444
iptables -t mangle -I MYCHAIN -j NFQUEUE -p udp --sport 4444
iptables -t mangle -I MYCHAIN -j MARK --set-mark 200 -p udp --sport 4444
E, em seguida, faça referência a isso nas tabelas relevantes, da seguinte forma:
iptables -t mangle -I PREROUTING -j MYCHAIN
A limpeza e a exclusão da cadeia não devem ocorrer no mesmo arquivo de script, pois elimina efetivamente qualquer possibilidade de as regras serem executadas.