Am acceptat soluția @sebres, dar aș dori să adaug câteva probleme.
Pentru iptables-allports banaction, tipul de bloc reject poate avea spații în interior. Trebuie să citați asta.
Exemplu:
[sshd]
banaction=iptables_allports[blocktype="REJECT --reject-with icmp-port-unreachable"]
Al doilea lucru interesant: atât banaction cât și jail config au un parametru numit "protocol". Am fost mai întâi confuz când configurația de mai jos nu a aruncat nicio eroare, dar nu a blocat cererile UDP:
[numit-ddos]
banaction=iptables_allports[blocktype=DROP,protocol=all]
S-a întâmplat pentru că îmi lipsea protocolul=toate setarea din închisoare. Trebuie să specificați protocol=all la nivel de închisoare:
[numit-ddos]
banaction=iptables_allports[blocktype=DROP,protocol=all]
protocol=toate
Motivul pentru aceasta este că secțiunea named-ddos creează un nou lanț în iptables, iar ip-urile interzise creează reguli în interiorul acelui lanț. Dacă nu specificați protocol=all la nivel de închisoare, atunci lanțul va fi definit astfel:
INTRARE în lanț (politica DROP 22 pachete, 952 octeți)
pkts bytes target prot opt in out source destination
1371 229K named-ddos tcp -- * * 0.0.0.0/0 0.0.0.0/0
Este adevărat, că banația va crea reguli cu proto=all în interiorul lanțului, dar lanțul în sine nu va fi folosit pentru pachete non-tcp. Concluzia este că trebuie să specificați protocol=all atât la nivelul închisorii, cât și la banație (dacă îl acceptă), altfel nu va funcționa.