IP black list használata. Tűzfalba töltése

Fórumok

Sziasztok,

hobbi szinten telepítgetek egy Ubuntu 20.04-es szervert. Régeben használtam a black list scriptet Amit tapasztaltam, hogy bootolásnál, ennek a scriptnek hamarabb kellene lefutni, mint az iptable betöltésének és ezt nem igazán sikerül megoldanom....

Az első kérdésem, hogy érdemes-e ezt scriptet még használni, vagy van-e ennél jobb megoldás is?

Illetve ha ez még jó, akkor hogyan lehetne a bootolási folyamatot lekezelni, úgy hogy betöltődjön a script és a tűzfal is visszatöltődjön. Továbbá ennél a scriptnél még az IPV6-os címek nincsnek blokkolva, azaz hogyan lehetne azt is lekezelni?

Köszönöm!

Kalmi

Hozzászólások

Ubuntu (meg a többiek is) már firewalld-t használnak, amivel az ilyen scriptek aligha lesznek barátságban...

ja lehet... de e lényeg hogy ezek a régi iptables-save/restore alapuló scriptek egyikkel sem túl jó barátok...

 

Szóval, vagy újra kell implementálni a disztribúció által favorizált firewall service megoldásra,

vagy a default tűzfalat kiiktatni, és saját scriptekkel összerakni magadnak.

 

Én pl az otthini 1 db OpenWRT esetén az utóbbit csinálom,

de ha sok szerver üzemeltetéséről lenne szó akkor inkább a disztró megoldásaihoz igazodnék...

Vagy fail2ban - mert az már egy viszonylag standard megoldás, nem kell újre feltalálni a kereket ;)

Idéznék az Ubuntu Wiki ufw részéből ( https://wiki.ubuntu.com/UncomplicatedFirewall , https://wiki.ubuntu.com/UncomplicatedFirewall )

 

Advanced Functionality

As mentioned, the ufw application is capable of doing anything that iptables can do. This is achieved by using several sets of rules files, which are nothing more than iptables-restore compatible text files. Fine-tuning ufw and/or adding additional iptables commands not offered via the ufw command is a matter of editing various text files.

 

Szóval azért a doksi szerint nem annyira reménytelen. De mivel én speciel az ufw-hez nem értek, én ennél többet nem mondanék.

> ja lehet... de e lényeg hogy ezek a régi iptables-save/restore alapuló scriptek egyikkel sem túl jó barátok...

Hát, ahogy nézem ez a gyakorlatban csak egy ipsetet tölt fel, és betesz egy szabályt, hogy az ellenőrizve legyen. Ezt azért nem hiszem, hogy annyira nagy kaland lenne beletenni helyette akármi iptables frontendbe, hogy márpedig legyen ott az a rule

nftablessal kicsit macerásabb, mert ott már mást is kell betölteni, de ahogy nézem az sem tragédia.

Mostanában nem foglalkoztam ilyennel komolyabban, de én inkább ország alapján blokkolnék, valamint Fail2Ban szerű rendszert használnék, gyanús viselkedés alapján kerüljön listába egy cím átmenetileg. 

A script futásakor van rendesen működő hálózat? Mivel letölti az összes listát, nem DNS és/vagy net hozzáférési probléma?

A főgondom amit még nem sikerült megoldanom, hogy ha indulásnál betőltődik a tűzfal és az alábbi szabályba fut:

-A INPUT -m set --match-set blacklist src -j DROP

Akkor nem tölti be a tűzfalat, ha nem futtatom le "ipset-blacklist" scriptet - blacklist szabály, azaz nem tudom, hogy hova kellene tennem ezt a scriptet, hogy a tűzfal betöltése előtt lefusson.

A "b" megoldás, ami könnyebb, írok egy betöltő scritet és független a rendszertől lefutatja a scriptet és utánna betölti a tűzfalszabályokat induláskor, azaz fűggetlen lesz a tűzfal megoldástól.

Bocs, most éppen nincs kéznél ubi, de megnezed, ott melyik systemd service inditja a tuzfalat, es csinálsz egy saját unitot, ami betölti az ipsetet, es beleirod, requiredby tuzfalunit meg before tuzfalunit.

Vagy megnezed, hogy nincs e abban az ufwben valami support erre

Ilyesmi, bár igazából most, hogy nem telefon előtt vagyok egy override file is bőven elég. Kb nyomsz egy systemctl edit ufw.service -t, és beleírod, hogy:

[Service]
ExecStartPre=/path/to/en/kicsi/ipset/scriptem.sh

Sztennyi.

Illetve, ha nem szertenéd kézzel túrni a rule fileokat, akkor egy ExecStartPost segítségével hívhatsz egy ufw rule add-ot vagy ilyesmit.

Ha nem akarsz systemdzni, akkor az /etc/ufw alatt vannak érdekes fileok, nevezetesen a before[6].rules vagy after[6].rules, ahol megadhatod a szükséges extra szabályt, illetve a before.init, ahol meg feltöltheted az ipsetet indulás előtt.

A set-nek létezni kell a szabály betöltésekor. Hozd létre üresen a tűzfal betöltése előtt és kész. Nyilván ugyanolyan típusút, mint amilyet az ipset-blacklist script használni akar. Azaz a lépések

  • blacklist set létrehozása
  • tűzfal szabályok betöltése
  • ipset-blacklist script futtatása

Gondolkodok az nftables-en is, de azzal kapcsolatban. Nem igazán találtam olyam megoldást, amivel a fail2ban működne, lehet én nem kerestem jól :).

A kérdésem, hogy az új tűzfalba, hogyan lehetne blokkolni a feketelistás ip címeket? Erre melyik scriptet, megoldást javasoljátok? Sőt ami működne az Ipv6-on is?

Köszi!