Я принял решение @sebres, но хотел бы добавить несколько замечаний.
Для запрета iptables-allports тип блока reject может содержать пробелы внутри. Вам нужно это процитировать.
Пример:
[сшд]
banaction=iptables_allports[blocktype="REJECT --reject-with icmp-port-unreachable"]
Вторая интересная вещь: и в конфигурации бана, и в конфиге джейла есть параметр под названием «протокол». Сначала я был сбит с толку, когда приведенная ниже конфигурация не выдавала никаких ошибок, но не блокировала UDP-запросы:
[название-ddos]
banaction=iptables_allports[тип блока=DROP,протокол=все]
Это произошло из-за того, что мне не хватило настройки протокола=все из джейла. Вам нужно указать протокол = все на уровне тюрьмы:
[название-ddos]
banaction=iptables_allports[тип блока=DROP,протокол=все]
протокол=все
Причина этого в том, что секция named-ddos создает новую цепочку в iptables, а забаненные ips создают правила внутри этой цепочки. Если вы не укажете protocol=all на уровне тюрьмы, то цепочка будет определена так:
Цепочка INPUT (политика DROP 22 пакета, 952 байта)
pkts bytes target prot opt in out source target
1371 229K named-ddos TCP -- * * 0.0.0.0/0 0.0.0.0/0
Это правда, что запрет создаст правила с proto=all внутри цепи, но сама цепочка не будет использоваться для пакетов, отличных от TCP. Вывод такой, что нужно указывать protocol=all как на уровне джейла, так и в банэкшене (если он его поддерживает), иначе не сработает.