( nagylzs | 2021. 08. 06., p – 21:38 )

Oké kiderült hogy miért használ DROP helyett REJECT-et. Rossz helyre írtam a paramétert.

Helyesen így néz ki:

banaction=iptables_allports[blocktype=DROP,protocol=all]

Illetve a REJECT változata:

banaction=iptables_allports[blocktype=REJECT --reject-with icmp-port-unreachable"]

Ami még nagyon érdekes, hogy az iptables_allports -nak van egy protocol paramétere, de ha csak azt használod, akkor az nem fog működni. Ha minden protokollt bannolni akarsz, akkor a jail szintjén is be kell állítani, valahogy így:

banaction=iptables_allports[blocktype=DROP,protocol=all]
protocol=all

Ennek az a magyarázata, hogy a jail config egy új iptables chain-t hoz létre, és a banaction ezen belül külön DROP vagy REJECT rule-okat. Ha a jail szinten nem adod meg hogy protocol=all, akkor a chain így jön létre:

# iptables -L INPUT -n -v
Chain INPUT (policy DROP 22 packets, 952 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1371  229K f2b-named-pizzaseo  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           

Bár az igaz, hogy a f2b-named-pizzaseo chain-en belüli szabályok minden protokollra illeszkedni fognak. De maga a chain nem - az csak TCP-re lesz használva. Ha jail szinten is megadod a protocol=all -t, akkor jó lesz:

# iptables -L INPUT -n -v
Chain INPUT (policy DROP 22 packets, 952 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1371  229K f2b-named-pizzaseo  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Nem tudtam róla, hogy kétféle protocol nevű paraméter is van, ezért amikor próbálkoztam, akkor sehogy nem akart összejönni a szűrés. De most már jó. :-)