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

Zopper

  • *****
  • 802
    • Zobrazit profil
Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #15 kdy: 10. 10. 2024, 11:01:47 »
No, a co mít prostě záložní VPN server? Když nefunguje server A, použiješ B. Ostatně, jak u těch svých aktualizací firewallu vůbec chceš zjistit, jaké adresy máš povolit? To máte nějaké klikátko, kam si zaměstnanec zadá "dneska mám takovouhle IP"? Nebo povinná instalace dyndns klienta?


Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #16 kdy: 10. 10. 2024, 11:44:31 »
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í.

Pardon, to jsem vás blbě pochopil, já nejdřív myslel, že to myslíte jako přístup pro vás jako administrátora na nějaké servery, co spravujete.
Uff, jestli je to pro ostatní zaměstnance, a vy někde manuálně upravujete seznamy jejich IP adres (u kterých reálně nevíte, jak dlouho budou držet, kdo se z nich připojuje atp.), aby mohli přistupovat k různým službám z firmy, tak se mi spíš zdá, že se nezbláznil operátor :).

Ta cesta je už několikrát zmíněná.. udělejte si prostě dvě VPN brány (tomu, čemu já jsem říkal jumphost). Pokud první brána nebude dostupná, připojí se na druhou.
To je asi nejjednodušší řešení, pokud třeba nezaintegrujete nějakou placenou službu typu Tailscale nebo nevymyslíte vlastní řešení, co si failover může řešit transparentně pro uživatele.
Pro vaše zaměstnance, kolegy se nic nemění, v tuhle chvíli přistupovali počítám napřímo, a když se to "podělalo" nahodili ten Wireguard.. (nebo naopak). Tady budou mít variantu a) první VPN server, variantu b) druhý VPN server.
Budete mít pak jen dva body, odkud to můžete monitorovat přístupy na služby, selektivně je povolovat atp.

Přímý přístup s whitelisty je z mnoha ohledů nevhodný, tím že ty klientské sítě nemáte vůbec pod kontrolou, nevíte kdo bude na těch jejich domácích WiFinách. Podobně jestli klienti nemají ty IPv4 pevné a můžou se změnit (byť nutně ne často), tak až do momentu, kdy to zjistíte a manuálně přenastavíte, tak vám nějaký random člověk (co zrovna dostal adresu po vašem kolegovi) může projíždět ty služby, zkoušet relayovat na poštovní server atp. Podobně právě i lidé za CGNATem, kdy víc klientů dynamicky sdílí veřejné adresy.
To je podle mě úplná magořina.

To že se u některých operátorů relativně často mění adresa vychází z principu toho CGNATu. Céčkový IPv4 blok na volném trhu dneska stojí tisíce EUR. Můžeme si o tom myslet co chceme, nadávat, řešit nasazování IPv6, ale je to prostě realita. Pokud má malý operátor řekněme stovky, tisíce klientů a moc neroste jejich počet, tak se třeba v pohodě vejdou do rozsahů, které už mají léta koupené. Jiná situace může nastat pro velké operátory kdy jich můžou mít v pohodě i miliony lidí s mobilními daty a tohle víceméně neudržitelné.
Proto se z IPv4 stává dneska prémiová služba, jak u velkých ISP, cloud providerů atp. V normálním připojení dostanete třeba dostanete IPv6 přímo a IPv4 přes další překlad (CGNAT). Nefunguje to tak jako předtím, že vám nějaký DHCP server přidělí rovnou veřejnou adresu, ale dostanete privátní adresu, je tam další NAT v síti operátora a víc lidí může sdílet jednu veřejnou adresu.. (počítá se s tím, že typicky nepotřebujete komunikovat naráz ze všech odchozích 65535 TCP portů, takže se to rozdělí třeba na čtvrtky).

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #17 kdy: 10. 10. 2024, 13:03:33 »
No, a co mít prostě záložní VPN server? Když nefunguje server A, použiješ B. Ostatně, jak u těch svých aktualizací firewallu vůbec chceš zjistit, jaké adresy máš povolit? To máte nějaké klikátko, kam si zaměstnanec zadá "dneska mám takovouhle IP"? Nebo povinná instalace dyndns klienta?

Zaměstnanci pracují téměř vždy ze stejného místa - z domu. Ip adresa se může změnit, ale je to třeba jednou za několik let. Když výjimečně pracují od jinud, použijí wireguard. Ale doma wireguard používat nesmí, protože kdyby se ním něco stalo, je třeba se umět hlásit napřímo. Respektive wireguard se používá v tomto případě jen k dosažení neveřejných ip adres.
Veřejnou ip adresu si zjistí např. na ip adrese www.mojeip.cz  a tu nám pošle. On nemá ani svoji vlastní veřejnou, tu sdílí. Ip adresa není jediná ochrana, jsou samozřejmě ještě další hesla, ale proti tomu aby někdo skenoval internet to stačí.

Kdyby se ip adresa měnila častěji,  udělat si dynamicDNS není problém. Horší je nepodpora nftables dns.

Teď to řeším tak, že na každém serveru mám includovaný soubor s definicemi priměnných pro nftables.

Např.
 define Petr_doma     = 85.93.12.29

A pak se v hlavním skriptu mohu odvolávat opakovaně na  jména a ne nic neříkající se měnící se ip adresy, které by se pak musely měnit na více místech.  Definovat proměnné pomocí domén by se někdy hodilo, ale hold to nejde.

A pak stačí aktualizovat jen ten soubor s definicemi, který dokonce může sdílet i více virtuálů a reloadnout všechny firewaly.

Zopper

  • *****
  • 802
    • Zobrazit profil
Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #18 kdy: 10. 10. 2024, 13:39:32 »
Ale doma wireguard používat nesmí, protože kdyby se ním něco stalo, je třeba se umět hlásit napřímo.
A to proč jako proboha?  :o

Chápal bych, kdyby šlo o zero trust network, že se generická VPN postupně zařezává, protože "důvěryhodná síť" je tak trochu nesmysl, a nahrazuje se to client-to-server tunelama, nejspíš i s těžkým monitorováním všeho na každém individuálním zařízení (zmíněný Tailscale, nebo třeba Banyan). Ale tam pak taky vůbec není potřeba řešit nějaké takovéhle firewall věci, tam je důvěryhodný proxyhost(s), přes který všechno jde.

Ale takhle přímo vystrkovat kritické servery ven (kde zřejmě nejde počkat tu hodinu dvě, než jako admin pořešíš výpadek VPN), byť s omezením na IP, to mi zavání hrozícím průšvihem. Chyba v konfiguraci, co to omylem otevře víc, než měla, nesmazaná IP, kterou dostane nějaký zavirovaný uživatel... Navíc je to složitější, pořád se musí něco přenastavovávat. Můžeš nám vysvětlit, jaký přínos tohle řešení má, oproti dvěma nebo třem nezávislým VPN serverům?
« Poslední změna: 10. 10. 2024, 13:42:36 od Zopper »

MrWhite69

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #19 kdy: 10. 10. 2024, 14:15:00 »
Aneb stav CZ firmy co zamrzla s bezpecnosti nekdy v roce 2000 :D

Kdyz se dneska uz opousti i VPNky, dekuju fakt tenhle thread pobavil.

Presne jak pise Zopper.
https://www.zscaler.com/resources/security-terms-glossary/what-is-zero-trust-network-access
« Poslední změna: 10. 10. 2024, 14:17:17 od MrWhite69 »


MrWhite69

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #20 kdy: 10. 10. 2024, 14:28:52 »
...

Vis vubec co je NAT (CGNAT).

Uvedomujes si, ze jsi daval roky do whitelistu IP adresy, pod jednou muze byt treba 128 zarizeni?

Co to je za firmu? :) Dobry uz vim, ty jsi leaknul svoji firmu v jednom postu.
« Poslední změna: 10. 10. 2024, 14:34:06 od MrWhite69 »

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #21 kdy: 10. 10. 2024, 14:50:09 »
Ale doma wireguard používat nesmí, protože kdyby se ním něco stalo, je třeba se umět hlásit napřímo.
A to proč jako proboha?  :o

Chápal bych, kdyby šlo o zero trust network, že se generická VPN postupně zařezává, protože "důvěryhodná síť" je tak trochu nesmysl, a nahrazuje se to client-to-server tunelama, nejspíš i s těžkým monitorováním všeho na každém individuálním zařízení (zmíněný Tailscale, nebo třeba Banyan). Ale tam pak taky vůbec není potřeba řešit nějaké takovéhle firewall věci, tam je důvěryhodný proxyhost(s), přes který všechno jde.

Ale takhle přímo vystrkovat kritické servery ven (kde zřejmě nejde počkat tu hodinu dvě, než jako admin pořešíš výpadek VPN), byť s omezením na IP, to mi zavání hrozícím průšvihem. Chyba v konfiguraci, co to omylem otevře víc, než měla, nesmazaná IP, kterou dostane nějaký zavirovaný uživatel... Navíc je to složitější, pořád se musí něco přenastavovávat. Můžeš nám vysvětlit, jaký přínos tohle řešení má, oproti dvěma nebo třem nezávislým VPN serverům?

Protože kdyby wireguard nefungoval, tak by jste to opravovali jak, když se tam ani nepřihlásíte?  Ano je možné mít wireguardy dva a přepínat, ale i když je to méně pravděpdobné, tak by nemuseli jet oba.

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #22 kdy: 10. 10. 2024, 14:51:49 »
...

Vis vubec co je NAT (CGNAT).

Uvedomujes si, ze jsi daval roky do whitelistu IP adresy, pod jednou muze byt treba 128 zarizeni?

Co to je za firmu? :) Dobry uz vim, ty jsi leaknul svoji firmu v jednom postu.

Samozřejmě že vím. Firewall není jediná ochrana, ale je zde hlavně proto, aby služby nešlo hromadně skenovat a napadat z libovolné části světa.

Zopper

  • *****
  • 802
    • Zobrazit profil
Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #23 kdy: 10. 10. 2024, 16:17:17 »
Protože kdyby wireguard nefungoval, tak by jste to opravovali jak, když se tam ani nepřihlásíte?  Ano je možné mít wireguardy dva a přepínat, ale i když je to méně pravděpdobné, tak by nemuseli jet oba.
Vyřešil bych to jednoduše, použil ten druhý server. A pokud ten server padá několikrát za týden, tak je něco dost špatně, a není to princip VPN. Nebo si jako admin pořídíš pevnou ip sám pro sebe, tu si dáš do whitelistu, aby ses teda dostal přímo, a když ten VPN server padne, tak ho opravíš. Ale nebudeš muset dělat poloautomatické vrtání děr do bezpečnosti kvůli ostatním zaměstnancům.

Apropo, co stane, když padne třeba ten firewall, třeba protože v těch pravidlech, co se pořád mění, jak se lidem mění IP, se stala chyba a zablokovala všechno?

Samozřejmě že vím. Firewall není jediná ochrana, ale je zde hlavně proto, aby služby nešlo hromadně skenovat a napadat z libovolné části světa.
Tak si tam prostě hoď IP bloky třeba z https://ipinfo.io/AS5610, omezíš to tím jen na zákazníky O2 a nemusíš pravidla upravovat pořád dokola.

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #24 kdy: 10. 10. 2024, 21:25:06 »
Protože kdyby wireguard nefungoval, tak by jste to opravovali jak, když se tam ani nepřihlásíte?  Ano je možné mít wireguardy dva a přepínat, ale i když je to méně pravděpdobné, tak by nemuseli jet oba.
Vyřešil bych to jednoduše, použil ten druhý server. A pokud ten server padá několikrát za týden, tak je něco dost špatně, a není to princip VPN. Nebo si jako admin pořídíš pevnou ip sám pro sebe, tu si dáš do whitelistu, aby ses teda dostal přímo, a když ten VPN server padne, tak ho opravíš. Ale nebudeš muset dělat poloautomatické vrtání děr do bezpečnosti kvůli ostatním zaměstnancům.

Apropo, co stane, když padne třeba ten firewall, třeba protože v těch pravidlech, co se pořád mění, jak se lidem mění IP, se stala chyba a zablokovala všechno?

Přesně tak, prostě separátní administrátorský přístup, klidně i jinou technologií nebo přes vlastní pevnou IP. Ale hlavně úplně netuším, z čeho je takový strach ohledně stability nebo dočasné nedostupnosti. Typický downtime na těch VPN bránách je zpravidla reboot po nějaké pravidelné aktualizaci v naplánovaném časovém okně (které by tam mělo být stejně domluvené na občasnou údržbu). Pokud je to někde virtualizované, nebo se použije třeba kexec na rychlé zavedení nového jádra, tak se konektivita obnoví řádově do 30 sekund a zrovna u Wireguardu se nemusí na klientech dělat vůbec nic dalšího.

Ale musím říct, cca 38 serverů, nebo kolik, přístupných přímo z internetu, při každé změně veřejné IP klienta (respektive jejich sítí schovaných za tou IP) distribuce nějakých include souborů a následný reload ACL pravidel ve všech použitých lokálních firewallech.. To zní jako noční můra a musím říct, že jsem se dozvěděl lecos nového, tohle by mě snad ani nenapadlo.. :o

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #25 kdy: 16. 10. 2024, 10:35:59 »
Tak jsem to vyřešil pomoci Sets.

V /etc/nftables.conf v tabulce filter nadefinuji prázdný set

Kód: [Vybrat]
   set ssh_acc_set {                                                                                                                                                                                                                                         
      type ipv4_addr                                                                                                                                                                                                                                         
      }


Přidám pak pravidlo:

 ip saddr @ssh_acc_set       counter accept # dynamické ip adesy 

A do cronu pak pro každou doménu, co může změnit ip adresu dám tohle:

Kód: [Vybrat]
00 7  * * * root  nft add element filter ssh_acc_set { $(dig +short subdomena.domena.cz) comment \"subdomena.domena.cz $(date +\%F_\%H:\%M:\%S)\" }
Tam je zajímavé, že znak % se v cronu musí escepovat, protože má zvláštní význam. ip adresu získávám pomocí příkazu
dig +short .

Že úloha crontabu proběhla mohu ověřit pomocí
Kód: [Vybrat]
journalctl -u cron| tail -n 50



Každou novou ip adresu to pak samo přidá do whitelistu včetně poznámky o jakou se jedná doménu a kdy se tak stalo. Pokud už tam ip adresa je (většina případů) tak se nestane nic. Zůstane původní záznam.

Kód: [Vybrat]
nft list set filter ssh_acc_set
table ip filter {
        set ssh_acc_set {
                type ipv4_addr
                elements = { 49.176.124.121 comment "subdomena.domena.cz 2024-10-16_09:56:01" }
        }
}

Množinu mohu promazat příkazem flush, ale pak je nutné přidat aktuální ip adresy.
Kód: [Vybrat]
nft flush set filter ssh_acc_set


Na to jak nftables přesložitělé, třetí předělávka, to bohužel nic moc neumí a nepracuje se s tím dobře.

Jako dynamický dns používám  http://freedns.afraid.org/ .  Je zadarmo a možnosti jak aktualizovat ip adresu jsou pravdu bohaté. Např. stačí načíst speciální url s hashem z cronu.

Lézt na všechny servery jen pomocí dvou jiných strojů nebo tunelů je zbytečně omezující, protože když jsou problémy, nemusí fungovat kde co. Takže tohle řešení celkem ujde.

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #26 kdy: 16. 10. 2024, 11:51:12 »
Jen jestli to správně chápu,
tak v momentě kdy se z jakéhokoliv důvodu neaktualizují záznamy klienta u nějaké bezvadné free DNS služby, třeba kvůli její odstávce, přetížení atp. (počítám, že free varianta je bez jakéhokoliv závazku dostupnosti) nebo když nebude dočasně dostupná DNSka pro překlad na tom serveru, tak se klient po změně IP nepřipojí.
Taky je super, že ta DNS služba má na free tieru minimální hodinové TTL, takže když by tam někde u serveru byl třeba kešovací resolver (což občas dává docela smysl), tak vám může taky hodinu vracet starou IP (to se dá ale využít k tomu, že se může jít klient třeba projít, než vyprší všechny timeouty DNSce a cronu).
Nakonec to, že se v tom setu budou štosovat staré IP adresy, které může zrecyklovat kdokoliv (s tím CGNATem) a dáte jim přístup k těm službám, než je ručně vymažete a obnovíte celý set, už je jen taková třešnička na dortu.

Jako jo, je to docela vymakané, to nemohu říct.  8)
Taková VPN brána je oproti tomuhle systému problematická, protože - co kdyby se s ní něco stalo.

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #27 kdy: 16. 10. 2024, 12:18:11 »
Lézt na všechny servery jen pomocí dvou jiných strojů nebo tunelů je zbytečně omezující, protože když jsou problémy, nemusí fungovat kde co. Takže tohle řešení celkem ujde.

Takhle evidentne nevhodne ovahovane moznosti selhani se jen tak nevidi :)
Jen pro zajimavost: proc si myslis, ze VPN, ktera potrebuje pouze funkcni DNS+UDP nemusi fungovat spise nez DNS+zdarma dynDNS kdesi za kopecky+TCP?

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #28 kdy: 16. 10. 2024, 12:33:26 »
Lézt na všechny servery jen pomocí dvou jiných strojů nebo tunelů je zbytečně omezující, protože když jsou problémy, nemusí fungovat kde co. Takže tohle řešení celkem ujde.

Takhle evidentne nevhodne ovahovane moznosti selhani se jen tak nevidi :)
Jen pro zajimavost: proc si myslis, ze VPN, ktera potrebuje pouze funkcni DNS+UDP nemusi fungovat spise nez DNS+zdarma dynDNS kdesi za kopecky+TCP?

Protože ta vpn běží na stejných strojích s kterými může být právě problém. Běží na virtuálu, není to žádné speciální dedikované zařízení.  Jinak stačí, když bude fungovat alespoň jedna možnost. Tedy vpn nebo přímá výjimka. A samozřejmě těch adres z kterých se dá přistupovat je vícero a ne všechny musí být přes dynDNS. Bohužel se někdy mohou nečekaně změnit i veřejné adresy, které by se měnit nikdy neměly. Např. u vodafone (UPC).

Re:Firewall s whitelistem při často měnící se ip adrese
« Odpověď #29 kdy: 16. 10. 2024, 12:39:43 »
Proc myslis, ze selhani stroje s wireguardem je pravdepodobnejsi nez selhani stroje s SSH?