Firewall s whitelistem při často měnící se ip adrese

Na serverech používám whitelist ip adress pro přihlášení na ssh a třeba k mailu, ale co O2 koupilo nej.cz, častěji mění ip adresy. Běžně to poskytovatelé internetu často nemění, ale vypadá to, že v O2 jsou prasáci.
Tedy ručně upravovat firewall na všech strojích se není moc praktické. Výrazné zlepšení by bylo, kdyby šlo nftables použít doména, ale vývojáři nftables nějak opět nedomysleli a přímo to nejde (jako by to nikdo nikdy nepotřeboval).

Nyní to řeším includem části nft konfiguračního souboru  do hlavního nftables.conf, kde jsou definované všechny ip adresy v podobě proměnných.   Tedy změny jsou na jednom místě, jednodušší a celé je to přehlednější, protože podle názvu proměnné je jasné co to je, ale pořád to není moc dobré.

Potřebuji to hlavně jako zadní vrátka, když by chcípl i server s wireguardem, abych se mohl někam přihlásit.

Jaké jsou možnosti jak to řešit?  Něco jako metoda knock, knock, která mi na chvíli otevře port a útočník o tom mechanizmu neví?


Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #1 kdy: 09. 10. 2024, 15:05:22 »
myslíš to takto? na serveru, který řešíš, máš vpn a ten firewall. Ale mění se adresy klientů, odkud se připojují? 

Na okraj: k čemu by byla aby měli doménu, když se stejně mění adresa?

A nebo se ti mění IP adresa na tom serveru? Tam ale vůbec zmiňovat vlastní IP serveru není potřeba. Nebo to máš nějak složitějc, s forwardováním?

nebo se nějak servery připojují mezi sebou? Ashodou okolností všem, nebo části jich se mění ta ip adresa, co o2 koupil nej.? a mezi sebou mají vzájemnáý whitelist?  potom by stačilo mít je sesíťované přes ten WG a používat interní IP mezi sebou? (ale tomu rozumím, že wg stejně používáš a chceš pojistku )
« Poslední změna: 09. 10. 2024, 15:08:06 od mikesznovu »

jjrsk

  • *****
  • 512
    • Zobrazit profil
Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #2 kdy: 09. 10. 2024, 15:41:30 »
... ale vývojáři nftables nějak opět nedomysleli ...
Tusi ty vubec co ten firewall dela? Jak bys tam asi tak chtel davat dns nazvy? A jak casto by ten firewal mell overovat, jakou to zrovna ma adresu? Kazdou sekundu? Jednou za rok?

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #3 kdy: 09. 10. 2024, 16:02:56 »
myslíš to takto? na serveru, který řešíš, máš vpn a ten firewall. Ale mění se adresy klientů, odkud se připojují? 

Na okraj: k čemu by byla aby měli doménu, když se stejně mění adresa?

A nebo se ti mění IP adresa na tom serveru? Tam ale vůbec zmiňovat vlastní IP serveru není potřeba. Nebo to máš nějak složitějc, s forwardováním?

nebo se nějak servery připojují mezi sebou? Ashodou okolností všem, nebo části jich se mění ta ip adresa, co o2 koupil nej.? a mezi sebou mají vzájemnáý whitelist?  potom by stačilo mít je sesíťované přes ten WG a používat interní IP mezi sebou? (ale tomu rozumím, že wg stejně používáš a chceš pojistku )

Fyzických serverů 8 virtuálních třeba 30.  Každý má firewall a otevřený přístup jen s whitelistovaných ip adres. Pokud su jinde, použiji wireguard.  Wireguard je jeden virtuální server. Kterej ale může mít výpadek, pak by se tam nemohl připojit, abych to opravil.  Vzájemný whitelisting mám, tam se mi ip adresy nemění.

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #4 kdy: 09. 10. 2024, 16:07:07 »
... ale vývojáři nftables nějak opět nedomysleli ...
Tusi ty vubec co ten firewall dela? Jak bys tam asi tak chtel davat dns nazvy? A jak casto by ten firewal mell overovat, jakou to zrovna ma adresu? Kazdou sekundu? Jednou za rok?

Mě by stačilo, aby se DNS použil jen při startu nebo reloadu firewallu. Bohužel ale ani tohle nftables neumožňují bez nějakých ne zrovna vhodných přídavků. Všude se musí cpát ip adresy, které ale špatně pamatují a mohou se měnit.
Reloadovat to na důležitých serverech jednou vždy brzy ráno by nebyl žádný problém. Aktualizace DNS by šla také automatizovat to už jsem řešil kdysi dávno.  O2 mění adresu vždy v noci a ráno už by to zase fungovalo.


robac

  • ***
  • 203
    • Zobrazit profil
    • E-mail
Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #5 kdy: 09. 10. 2024, 17:03:19 »
Tusi ty vubec co ten firewall dela? Jak bys tam asi tak chtel davat dns nazvy?
Prekvapive existuji firewally, kde lze do pravidel davat DNS nazvy. Namatkou jen ty, se kterymi mam zkusenost: Fortigate, Cisco ASA, Juniper SRX.

A jak casto by ten firewal mell overovat, jakou to zrovna ma adresu? Kazdou sekundu? Jednou za rok?
Prekvapive k tomu existuje u kazdeho vendora dokumentace, ktera vam na tyto otazky odpovi...

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #6 kdy: 09. 10. 2024, 17:21:16 »
Tusi ty vubec co ten firewall dela? Jak bys tam asi tak chtel davat dns nazvy?
Prekvapive existuji firewally, kde lze do pravidel davat DNS nazvy. Namatkou jen ty, se kterymi mam zkusenost: Fortigate, Cisco ASA, Juniper SRX.

A jak casto by ten firewal mell overovat, jakou to zrovna ma adresu? Kazdou sekundu? Jednou za rok?
Prekvapive k tomu existuje u kazdeho vendora dokumentace, ktera vam na tyto otazky odpovi...
Že to existuje vím, proto se divím, že nftables to neumí. Jako by to dělali lidé, co firewally moc nepoužívají. I když už co pamotuji, tak firewall na linuxu se už třikrát měnil, nejmodernější jen nftables.  I freebsd je na tom lépe a to to třikřát nepředělávali.

Domény může být lepší používat už jen proto, že pak v těch pravidlech dá lépe vyznat. A když se změní, stačí reload.

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #7 kdy: 09. 10. 2024, 17:26:47 »
Jako nouzovka jak se dostat na server by mohlo být port knocking. 

https://goteleport.com/blog/ssh-port-knocking/

Ale je to zesložitění a potencionální snížení bezpečnosti, takže je lepší se bez toho obejít.

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #8 kdy: 09. 10. 2024, 22:32:44 »
V tomhle popsaném případě mi implementace firewallu s používáním FQDN (tuplem ještě pro hosty z nějaké DynIP služby) nepřijde úplně dobrý nápad.
Teď úplně nejde jen o to, že to nftables (jako víceméně low-level filtrační mechanismus) nepodporuje. Ale i na produktech, které to přímo podporují, a při použitích kde to opravdu může výrazně zjednodušit obsluhu (typově přístupy z různých CDNek), to může mít spousty konsekvencí. Obecně se DNS překlad může stát velmi kritickou závislostí pro chod toho FW, měly by se ozkoušet všechny fallback varianty, jak se filtr chová při nedostupném nebo pomalu odpovídacím DNS, jaký to má případně vliv na prvotní spojení, jak se chová vzhledem k cachování a životnosti těch záznamů.. jestli to nebude problematické při velkém množství zpětných překladů s krátkým TTL atp.
Což neznamená, že to nejde, jen to nemusí být vždy ideální, nebo opodstatněné řešení pro nějaké obecné jednotlivé servery a virtuály s veřejnými adresami (vs např. zabezpečení něajké firmy, centra atp.).

Ale abych se vrátil k tomu, co jste psal. Pokud máte veřejnou dynamickou adresu, jste prostě normální road-warrior a podle mě je rozumná cesta jen to, co už používáte - nějaká forma zabezpečeného připojení na jump host.
Pokud se obáváte o dostupnost, zařiďte si jednoduše druhý. Osobně mám pro tyhle situace vždy druhý, záložní přístup, ideálně u jiného provozovatele na jiné síti.
Postačí na to jakákoliv nejslabší VPSka, je to otázka do 100,- měsíčně, případně zkusit i nějaký free tier (u Oraclu to šlo, nevím teď, jestli ještě přidělují veřejné IPv4 adresy). Výhoda pak je, že vám ten záložní jump host bude fungovat odkudkoli, ne jen z domova.
A stran toho O2, nevím co je nej.cz, ale mám doma VDSL a rovnou jsem si připlatil za veřejnou adresu. Ano, bylo by fajn to mít rovnou jako to bývalo před lety, když byly adresy za hubičku, a něco to stojí (jeden oběd). Nicméně nakonec jsem to prostě vzal jako další nástroj k práci. Krom statické adresy to hlavně řeší přímý přístup přes IPv4 bez CGNATu.

CPU

  • *****
  • 863
    • Zobrazit profil
    • E-mail
Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #9 kdy: 09. 10. 2024, 23:30:01 »
BTW, jak se nftables chová při aktualizaci tabulky pravidel?
V jednom projektu mám úkol, kdy bych potřeboval průběžně měnit seznam asi 500-900 whitelistovaných IP adres.
Cca co vteřinu.
V principu mám jak kompletní seznam IP, tak i to, co se má přidat a odebrat.
Ale jak se k tomu postavit?
Jde o to, aby se to necukalo/nepřerušoval se tok dat navázaných spojení, aby aktualizace pravidel co vteřinu nedělala paseku.
Jak na to jít správně? Že bych si to zkusil.  ::)
Díky!  ;)

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #10 kdy: 10. 10. 2024, 00:08:35 »
Co kdyz nftables neni firewall? Co kdyz nftables je "modern Linux kernel packet classification framework" ? Blby, co?

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #11 kdy: 10. 10. 2024, 00:34:53 »
BTW, jak se nftables chová při aktualizaci tabulky pravidel?
V jednom projektu mám úkol, kdy bych potřeboval průběžně měnit seznam asi 500-900 whitelistovaných IP adres.
Cca co vteřinu.
V principu mám jak kompletní seznam IP, tak i to, co se má přidat a odebrat.
Ale jak se k tomu postavit?
Jde o to, aby se to necukalo/nepřerušoval se tok dat navázaných spojení, aby aktualizace pravidel co vteřinu nedělala paseku.

Berte mě spíš s rezervou, reálně spíš používám hotové nadstavby nad nftables, jako firewalld nebo filtruji někde před servery. Ale kdybych měl řešit něco podobného, tak bych se na to snažil využít pojmenované sety, případně mapy (vmaps) v nftables. K nim by pak byla přiřazena pravidla, která bych neměnil. Tzn. programem na manipulaci bych jen přidával nebo odebíral z těch setů.. (add element, delete element).
Počítám, že při takhle časté manupulaci by program běžel pořád.. Po startu bych si vylistoval aktuální obsah toho setu z nftables a uložil do nějakého pole, seznamu v programu, pak bych si získal seznam adres z nějakého externího zdroje, porovnal a udělal nějaké dva další seznamy adres na přidání a odebrání elementů.
Ty bych nacpal do nftables a pokud by to proběhlo bez chyby, zaktualizoval bych si také ten vnitřní seznam s aktuálním stavem. Pak bych čekal až se případně změní ty externí adresy.. (nevím nějaký polling, nebo asynchornně) a jen bych to celé zopakoval. S tím, že už bych ten aktuální stav nemusel vytahovat, protože by byl v tom seznamu s aktuálním stavem.
Mělo by to jít implementovat třeba v Pythonu, kde je modul python-nftables, co používá třeba FirewallD. V podstatě je to wrapper okolo libnftables. Příkazy jsou víceméně stejné jako u nft, akorát se musí zabalit do JSON struktury.. podobně i výstupy z příkazu to vrací jako JSON.
Ale to je jen takový výkop, jak bych to zkusil sám. Možná zjistíte, že to zpracování je tak rychlé, že ty optimalizace s nějakými rozdílovými daty nemají smysl a můžete to sypat celé. Já jen vetšinou raději počítám s nějakou minimální zátěží a tím, že když mi někdo řekne, bude toho x, tak rovnou přemýšlím co se stane, až toho bude 5x :)

Jinak to jak jste se ptal, co jsem si kdysi zkoušel (klasicky seznam zdroj. adres, pravidlo na nová příchozí spojení), navázaná spojení a related by měla zůstat běžet i když odeberete hosta, další navázaní spojení už neprojde (klasifikace paketu nevyhoví). Jinak aktualizace rulesetu v nftables můžou být s optionem atomické (jako option -f u nft), tzn. není tam ten problém, že by třeba komplikovaný ruleset, který se nějakou dobu zpracovává (bambilion řádků) nechal filtr v mezistavu, kdy tam jsou chvíli nová i stará pravidla zároveň. Nemusí se explicitně dávat flush (který to typ. nechá neprůchozí, než se tam naládují nová pravidla).


CPU

  • *****
  • 863
    • Zobrazit profil
    • E-mail
Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #12 kdy: 10. 10. 2024, 09:06:55 »

Takhle nějak jsem si to představoval.
Děkuji, vyzkouším.


Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #13 kdy: 10. 10. 2024, 09:15:41 »
Podle mě vymýšlíš kravinu. To co potřebuješ je pevná veřejná IP adresa. O2 ji prodává za cca. 200 Kč.

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #14 kdy: 10. 10. 2024, 10:54:33 »
Podle mě vymýšlíš kravinu. To co potřebuješ je pevná veřejná IP adresa. O2 ji prodává za cca. 200 Kč.
To bych ale musel kupovat každému zaměstnanci, kterému se zblázní poskytovatel internetu aby se dostal na servery. V principu není také spravidlivé připlácet O2 za to, že se nechová slušně a bezdůvodně mění ip adresu. Nej.cz je kabelovka a já můžu být vůbec rád, že jim to obstojně funguje, roky s tím měli problémy a nevěděli si rady. Takže chtít něco od takových lidí je risk.

Jednu veřejnou pevnou adresu mimo lokalitu máme, přes kterou by se dalo připojovat. Ale je to zase komplikace v případě potíží, což se mi moc nelíbí.