[MEGOLDVA] Fail2ban vs. nftables

Fórumok

Sziasztok,

Debian 11 alatt van mód arra, hogy az nftables alatt meg lehessen nézni, hogy milyen ip van blokkolva a fail2ban által? Mert iptables esetén volt erre lehetőség: iptables -L INPUT -v -n

Most csak azt látom a fail2ban alatt a defaut config actionban iptables, de az update-alternatives --get-selections iptables az nftables-re mutat, így valójában az nftablesbe teszi, a config alapján a filter tábla input chainbe. Működni működik is, csak furcsállom, hogy nem tudom kilistázni az nft paranccsal, hogy milyen active blokkolt ip-je van, vagy úgy listázni az összes rule-t, hogy ott lássam. Fail2ban-client-el látható csak egyedül.

Hozzászólások

Szerkesztve: 2022. 09. 30., p – 19:43

Igen, tökéletesen működik együtt a kettő, nálam éppen Ubuntun. Példa nálam az egyik jail-re (nft list ruleset részlet):
 

table inet f2b-table {
      set addr-set-404-not-found
              type ipv4_addr
                elements = { 5.189.183.89, 20.36.137.35,
                             20.57.160.124, 20.214.8.177,
                             38.242.241.64, 137.184.121.41,
                             173.212.224.141, 173.212.231.5,
                             173.249.58.188 }

Legyen beállítva a fail2ban konfigban az nftables, mint backend, talán sokkal több nem kellett hozzá, de ha nagyon nem megy, kitúrom nálam hogy van.

nft -ann list table inet f2b-table

vfero

Szerkesztve: 2022. 10. 03., h – 09:22

Köszönöm mindenkinek a segítséget. Kiderült, hogy a fail2ban esetén nincs beállítva nftables-be rögzítés, hanem iptables. Mondjuk az egész fura nekem ebben a Debian 11 (és 10-esben is), hogy már nem az iptables a default, hanem az nftables, egész pontosan iptables-nft, viszont ennek ellenére mégsem az nftables alatt jelent meg a default f2b-table, meg iptables alatt sem. Viszont ha fail2ban alatt beállítottam, hogy kifejezetten nftables-t használja, akkor véfre megjelent nftables alatt.

Remélem ez az anomális végre meg fog szűnni a Debian 12 alatt, és egyáltalán semmilyen módon nem lesz már benne iptables (sem legacy, sem nft, semmi idióta linkelés), csak nftables, mert ez elég hülye megoldás a Debian részéről.

Nah most módosítottam a jail.local -ban, restartoltam a fail2ban szolgáltatást, és már eltünt a default f2b-table az nftables listájából, és bár a fail2ban azt jelzi hogy blokkolva lett a cím, mégse blokkolódik...

Ez így nagyon gáz.

Egyáltalán nem műkök a fail2ban. bejegyzi a listájába, hogy blokkolva van az ip, de valójában mégis be tudok ssh-zni. Megnéztem a többi szervert, ahova feltették, és ugyanúgy látszólag blokkolja az ip-t, de mégis be lehet lépni.

Hát nemtom, én feltettem egy zsír új gépre, és hibátlanul működik:

root@s2:/var/log# nft list chain filter  f2b-sshd
table ip filter {
	chain f2b-sshd {
		ip saddr 61.177.172.104 counter packets 6 bytes 616 reject
		ip saddr 61.177.173.50 counter packets 12 bytes 1216 reject
		ip saddr 203.151.83.7 counter packets 22 bytes 1680 reject
		ip saddr 134.195.121.105 counter packets 23 bytes 1700 reject
		ip saddr 61.177.173.36 counter packets 17 bytes 1536 reject
		ip saddr 61.177.172.114 counter packets 17 bytes 1456 reject
		counter packets 814 bytes 77570 return
	}
}
root@s2:/var/log# tail -f fail2ban.log 
2022-10-03 12:00:40,401 fail2ban.actions        [61162]: NOTICE  [sshd] Ban 61.177.173.50
2022-10-03 12:00:41,689 fail2ban.filter         [61162]: INFO    [sshd] Found 61.177.172.104 - 2022-10-03 12:00:41
2022-10-03 12:00:42,414 fail2ban.actions        [61162]: NOTICE  [sshd] Ban 61.177.172.104
2022-10-03 12:00:43,026 fail2ban.actions        [61162]: NOTICE  [sshd] Unban 61.177.173.46
2022-10-03 12:02:43,221 fail2ban.actions        [61162]: NOTICE  [sshd] Unban 218.92.0.208
2022-10-03 12:02:52,129 fail2ban.filter         [61162]: INFO    [sshd] Found 218.92.0.208 - 2022-10-03 12:02:51
2022-10-03 12:02:53,738 fail2ban.filter         [61162]: INFO    [sshd] Found 218.92.0.208 - 2022-10-03 12:02:53
2022-10-03 12:02:57,676 fail2ban.filter         [61162]: INFO    [sshd] Found 218.92.0.208 - 2022-10-03 12:02:57
2022-10-03 12:04:17,614 fail2ban.filter         [61162]: INFO    [sshd] Found 128.199.16.4 - 2022-10-03 12:04:17
2022-10-03 12:04:20,321 fail2ban.filter         [61162]: INFO    [sshd] Found 128.199.16.4 - 2022-10-03 12:04:19
2022-10-03 12:05:05,807 fail2ban.filter         [61162]: INFO    [sshd] Found xx.yy.251.132 - 2022-10-03 12:05:05
2022-10-03 12:05:10,616 fail2ban.filter         [61162]: INFO    [sshd] Found xx.yy.251.132 - 2022-10-03 12:05:10
2022-10-03 12:05:15,610 fail2ban.filter         [61162]: INFO    [sshd] Found xx.yy.251.132 - 2022-10-03 12:05:15
2022-10-03 12:05:23,070 fail2ban.filter         [61162]: INFO    [sshd] Found xx.yy.251.132 - 2022-10-03 12:05:22
2022-10-03 12:05:26,233 fail2ban.filter         [61162]: INFO    [sshd] Found xx.yy.251.132 - 2022-10-03 12:05:26
2022-10-03 12:05:26,683 fail2ban.actions        [61162]: NOTICE  [sshd] Ban xx.yy.251.132

A ban után:

ssh: connect to host s2.zzzzzzzz.hu port 22: Connection timed out

Szóval... amit én próbálnék, hogy apt purge fail2ban és utána install megint, hátha az kifésüli a konfigot.

root@s2:~# grep PRETT /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"

Nah a szerverekből már csak 2-nek nem működik. Alapvetőleg az volt a gond, hogy a jail.local -ban tárolódik az egyéni beállítás, mint ahogy a nagy könyvben meg van írva. Pl ez:
 

[DEFAULT]
banaction = nftables
banaction_allports = nftables[type=allports]

[sshd]
enabled = true
port     = 2299
maxretry = 3
bantime  = 10080m
findtime  = 10m

 

Viszont a findtime után be volt állítva, hogy küldjön emailt ezzel: action = sendmail-whois[name=SSH, dest=valami@valami.hu]

És bár ez nem banacion, hanem sima action, mégis amíg ezt a sort nem kommenteztem ki, addig nem blokkolta az ipket. Ezt kiszedtem, és már rendben blokkolódnak. VISZONT...

Még mindig van 2db szerver szintén legfrisebb Debian-al, amik ennek ellenére sem akarnak menni Ugyanez a jail.conf mint fent írtam, és hiába nézem meg az nft list tables paranccsal, nem látszik, hogy létrehozta a default beállítás szerinti table inet f2b-table és a chains-et listázva sem látszik, tehát eleve létre sem hozza, ahova kellene raknia. Apt autoremove --purge fail2ban megvolt, a fenmaradt /var/lib/fail2ban és /etc/failban könyvtárat töröltem, kapott azért egy restartot is, majd visszatettem, jail.conf létrehoztam a fenti bejegyzésekkel, és semmi. nftables-t is restartoltam, de nem jön létre a gyári f2b-table.

Az f2b-sshd milyen környezetbe van beágyazva?
nft -ann list ruleset
alapján hol jön be?

 

vfero

Nftables-t legyalulva, majd az alapot felrakva működött. Visszaraktam a lementett nftables configokat újra nem működött. Mivel ez a config más szerveren működik, így a "hibás" filera gyanakodtam, így újra építettem a filet, és így már a kívánt configgal is működik az utolsó két szerveren is.