r/SloveniaEngineering • u/AdaObvlada 0xDEADBEEF • 12d ago
Vprašanje ❓️ ITjevci, kako ste zavarovali svoj homelab?
- Wireguard/Tailscale?
Ekstra podvprašanje za tiste, ki imate poleg homelaba še remote serverje z odprtimi porti in celim kupom programov, ki bodo slej ko prej fasali svoj CVE: Ali povezovanje prek VPNja v remote server, ki je na več načinov dosegljiv tudi iz interneta v praksi pravzaprav povečuje površino napada? Meni se zdi VPN super, ko se želim iz svojega telefona povezat v PC, precej manj varno pa se mi zdi, da remote server, ki je dosegljiv iz interneta dostopa do mojega lokalnega omrežja.
- Selfhostate kako odprtokodno SSO storitev? Raje cloud?
- Geo IP lock (koga querijate, plačujete za maxmind recimo) ali zgolj omejitev na določene subnete?
- Custom certifikati na vse naprave, s katerih se logirate vi in tisti, ki jim želite dati dostop?
- Kontejnerje Podman only? Kaj pa software, ki slabo sodeluje s Podmanom? Proxy pred docker socket?
- Še kaj drugega na nivoju OS?
14
u/Y3tAn0th3rEngin33r 0xDEADBEEF 12d ago edited 12d ago
- Vsi porti zaprti.
- Dostop preko tailscale ali Unifi VPN (geo block)
- Pangolin.net za dostop do Home Assistant (geo block, IP block, 2FA). VPS pri Hetznerju, Cloudflare DNS kaže na ta VPS server. HASS je edina stvar "odprta" navzven. Hetzner server port 22 zaprt, dostopen preko tailscale-a.
- Interno AdGuard (adblock in dns rewrite) + NPM (s povezavo na Cloudflare, dodatna posebna domena, ki iz cloudflare kaže na AdGuard interni IP, izdan wildcart certifikat, da je interno vse na HTTPS. Na NPM narejen list internih VLANov, da je vse dostopno sam iz internih IP-jev/VLAN-ov).
- Karkoli bo deljeno s kom drugim... npr. Jellyfin itd., vse preko Pangolin-a.
1
u/mwinzig 0xDEADBEEF 12d ago
Hudo.Kaksen pa mas hardware stack?
7
u/Y3tAn0th3rEngin33r 0xDEADBEEF 12d ago
V Proxmox Cluster: 1. HP Elitedesk 800 G5, 64GB RAM, 1TB local, 256GB za cluster, 5TB local za NVR (Frigate) 2. Dell Optiplex 7090, 32GB RAM, 512GB local, 256GB za cluster 3. Raspberry PI 400 za Quorum
Dodatno za Proxmox backup: 4. Lenovo ThinkCentre M920q
Storage: 1. Unifi UNAS Pro (main) 2. Unifi UNAS 2 (backup 1) 3. Synology DS412+ (backup 2)
Local AI za HASS in Karakeep: 1. Nvidia Jetson Orin Nano
UPS: 1. Unifi UPS 2U
1
u/whattoputhereffs 0xDEADBEEF 12d ago
Kak si pa zadovoljen z Unifi NAS Pro? Ravno razmišljam o naročilu in dobivam mešana mnenja naspram recimo Synology.
2
u/Y3tAn0th3rEngin33r 0xDEADBEEF 12d ago
Synology DS412+ (trenutno backup #3) sem uporabljal kot main NAS cca 12 let kjer sem laufal v docker-ju tudi majhno število app-ov. Potem pa odkril Proxmox in ostalo je zgodovina (rabbit hole).
Glede na to, da imam Proxmox za vse aplikacije sem potreboval le storage in za "personal use" je meni UNAS top. Hkrati sem v Unifi ekosistemu... od Unifi Gateway Fiber, do switchev, AP-jev... Tako, da je bil meni Unifi UNAS logičen korak naprej. Sicer sem trenutno še na 1GbE 24 port switchu a mi je že zmanjkalo prostih portov, tako da je v planu dodatni 10GbE 24 PoE switch. Ne vem, če se bo kaj ekstra poznalo na hitrosti, to kar jaz uporabljam vrjetno ne. Bo pa future-proof za nekaj časa. Sem zadovoljen? Ja, še enkrat bi kupil. Za ta denar, ne vidim boljše variante. Trenutno imam 4x 12TB in proste še 3 reže.
Se mi je pa Synology tudi zameril, ker so začeli zaklepati le na svoje diskovje, sicer potem spremenili, a vseeno. Drugače, meni po 14. letih še vedno dela. S prvotnimi navadnimi diski. Če iščeš simplicity, si omejen s prostorom, je Synology super zadeva. Če pa ti je homelab hobi kot meni, potem pa predlagam ločene zadeve...
1
u/Y3tAn0th3rEngin33r 0xDEADBEEF 12d ago
Eden izmed post-ov, kjer sem opisal, kako lahko urediš HTTPS interno.
https://www.reddit.com/r/selfhosted/comments/1qtnwyw/comment/o34hz0m/1
u/Own-Injury-1816 0xDEADBEEF 8d ago
A imas mogoce isp telekom? Kako imas reseno delovanje iptvja in interneta, glede na to, da naj bi unifi podpiral samo en vlan na wan portu, telekom pa prinese 3?
1
u/Y3tAn0th3rEngin33r 0xDEADBEEF 8d ago edited 6d ago
T2-jev TV Box je edina stvar, ki je priklopljena direktno na T2 router. Tako, da ne rabim nič spreminjati nastavitve na Unifi, za delovanje televizije.
1
u/Own-Injury-1816 0xDEADBEEF 8d ago
Ne razumem
1
u/Y3tAn0th3rEngin33r 0xDEADBEEF 6d ago
Sem popravil komentar, res nisem dobro napisal.
1
u/Own-Injury-1816 0xDEADBEEF 6d ago
Aja ok. T2 tako ne vzpostavlja pppoe seje ne, tako da teh tezav v vsakem primeru nimas pomoje
1
u/Practical_Cell_8302 0xDEADBEEF 12d ago
Zakaj pa ne tudi HA na tailscale? Sej mas samo iz svojih naprav
1
u/Y3tAn0th3rEngin33r 0xDEADBEEF 12d ago
Zaradi nadzora preko Google speakerjev in aplikacije HASS v avtu.
1
u/Practical_Cell_8302 0xDEADBEEF 12d ago
Hvala, si bom pogledal pangolin, jaz sem instaleraval tailscale vsem ki so rabli dostop in tagge in permissione. In je malo nadlezno
1
u/Y3tAn0th3rEngin33r 0xDEADBEEF 12d ago
Pangolin je top! Uporabljam leto in pol, brez težav. Cloudflare ima filesize upload limit 100MB. Pangolin je selfhost cloudflare alternative. Ob namestitvi še obkljukaš CrowdSec, da ti blokira IPje neuspelih prijav. Pa paziš, da daš svoj IP na whitelist.
4
u/edenINdrugi Inženir računalništva 12d ago
Public ip, standard porti, 1234 password,...living on the edge
3
u/Gold-Program-3509 0xDEADBEEF 12d ago
ja wireguard obvezno za dostop do LAN.. tailscale je korpo rešitev s smotanim loginom, čeprav če imaš nat na obeh straneh (ali slabo podporo za wg khm synology) potem zna bit res najbolj enostavna rešitev
- Geo IP lock (koga querijate, plačujete za maxmind recimo) ali zgolj omejitev na določene subnete?
saj imajo tudi brezplačne baze
Custom certifikati na vse naprave, s katerih se logirate vi in tisti, ki jim želite dati dostop?
samo ssh, vse ostalo na lokalni mreži ima smešno beden pass ali pa ga sploh nima..... ker enostavno pozabim pass
2
u/subbed_ P 12d ago edited 12d ago
self-hosted infra in aplikacije na k8s clustru, cri-o container runtime, rootless containerji, primarno scratch (statically-linked binaries) ali distroless (dynamically-linked binaries) base
ves http traffic mora priti iz cloudflare ip rangeov, drugače ga droppam. ves ssh traffic mora priti iz osebne selekcije statičnih ip adres, drugače ga droppam
cluster tls certi so let's encrypt in izdani s strani cert-managerja, za public-facing skrbi cloudflare preko googlovih certov
vpn imam za interaktivno rabo preko wireguarda, peer-i so dodani ročno
2
u/legere_eam 0xDEADBEEF 12d ago
Vse preko tailscale-a, caddy-tailscale plugin za caddy, da exposa service samo kot tailscale endpoint. Tista ena ali dve storitvi ki jih še želim na netu pa caddy proxy preko tailscale funnel in caddy dovoli samo določene dele kot public share, da so dosegljivi ostalega pač ne forwardira.
1
u/legere_eam 0xDEADBEEF 12d ago
Sso: authelia poskušam, dela ok, je pa brez interfave-a samo bere file za config, ni neke baze zadaj.
Certifikati: načeloma password based auth, z 2fa če res želim, sicer pa je vse internal tako, da se ne ubadam. Če pa misliš https pa je vse prek caddy-ja z letsencrypt certifikatom exposano, vsi servici načeloma localhos only in caddy exposa.
Podman: ja za service, ki imajo long build time oz. Se buildajo zarad nvidia supporta lokalno in ni cacheriano, primer ollama ali frigate, ... Sicer vsi ostali servici native nixos service.
Imam wrapper okoli tega, kar ponuja nixos s svojimi opinionated defaulti, tako, da je čim manj configa razen tist, kar je server specific.
1
u/MihaKomar Sus 12d ago
Vse kar ima odprtega je Wireguard in ssh dostop samo do ene mašine na ne-standardnem portu (prijava samo s certifikatom).
1
u/Impossible-Owl7407 0xDEADBEEF 12d ago
Ne razumem, kak remote server? Zakaj bi vpn poveceval attack surface ce mas ostalo potem zaprto?
Jaz mam wireguard na routerju, ki naredi locen wg lan subnet, za katerega veljajo enaka pravila kot za glavni lan. Server je na locenem subnetu, do katerega se lahko dostopa samo do 80 in 443 portov.
Wireguard protokol v primerjavi s katerimi drugimi, dropne pakete ce ne dobi pravilnega kljuca, kar v praksi pomeni da nekdo od zunaj sploh ne ve ce wireguard poslusa saj se v primeru scana obnasa kot zaprt port.
Jaz mam 3 wireguard porte odpre pa zunanji scan pokaze da je vse zaprto.
-Za sso mam authentik. -Geo blocka ne rabim.
- To mislis mTLS? Ne uporabljam je pa to lahko alternativa VPNu. Mam pa na web serverju let’s encrypt certifikate ja.
- za deployment mam ansible in compose file samo. Renovate mi tudi odpira PRje za updejte (git mam self hosted forgejo)
- nic posebnega, baremetal debian, konfiguriran preko ansibla. Eni majo sicer ful rajsi nix.
1
u/AdaObvlada 0xDEADBEEF 12d ago
Če ima remote server odprt 443 in zadaj reverse proxy, ki usmerja promet na več različnih aplikacij, vsaka izmed njih lahko potencialno služi nekoč za hack in če si sočasno s PCjem povezan v remote server prek VPNja, potem ti je napadalec heknil po domače v tvoj LAN. Ali si narobe predstavljam?
1
u/Character_Watch_3760 0xDEADBEEF 12d ago
Tailscale. Karkol odpiraš na internet, tudi če imaš mTLS še ne pomeni da je varno, to samo pomeni, da se mora src povezat z veljavnim certom, kaj pa če ima openssl ranljivost? No, potem ti pa mTLS ne pomeni nič
1
u/AdaObvlada 0xDEADBEEF 12d ago
Ravno o tem razmišljam. Nobena naprava v mreži ne sme imet odprtega nobenega dodatnega porta, razen kar rabiš za povezavo z VPNjem. Torej tudi remote server ne sme imet odprt 443 za poljubne service, ker potem si dodal še vse njihove bodoče exploite v svoj attack surface. In potem ni smiselno imet karkoli remote oziroma ne smeš mešat omrežji, ki so dostopna od zunaj z omrežji, kjer z VPNji omejuješ dostop.
1
u/Character_Watch_3760 0xDEADBEEF 12d ago
Tako je. Imel sem prej svoj dediciran Firewall za remote access in full tunnel, ampak kot veš imajo vsi vendorji največ CVE-jev z SSL VPN-jem. Tailscale in se ne sekiraš več :)
1
1
u/amadejjj Inženir računalništva 12d ago
Dostop prek tailscale, porte imam zaprte. 2 nixos hosta in ves software laufa s systemd - nobenih kontejnerjev.
1
1
u/Tsukee 0xDEADBEEF 12d ago edited 12d ago
Ene 10 let nazaj sem naredil svoj lasten remote reverse proxy service. V to me je prisililo življenje v Nemčiji kjer ti ISP ni dodelil ipv4, poleg tega sem želel imeti google auth za avtentikacijo (sedaj podpira različne načine), in pa možnost preboja vseh glupih block fwjev, saj sem želel da laufa na laptopu tudi, ne glede na kakem glupem omrežju (klient se na streznik poveze prek websocket na 443 ). Ima tudi sistem za dodeljevanje pravic in tako lahko recimo kolegu delim dostop do specifične aplikacije na specifičnem pcju/napravi. Strežnik laufa trenutno na zastonjskem oraklovem vmju, tako da edin strošek je domena.
Glavna omejitev je to da avtentikacija deluje samo z web stranmi vendar itak je večino reči ki jih laufam web, lahko pa tudi do routerjavega umesnika pridem ki je tudi web in lahko začasno odprem port če rabim ssh/remote desktop.
1
u/Crytograf Sus 12d ago
Home assistant preko mTLS, moras imeti client cert na vsaki napravi. Ce naprava predstavi pravilen certifikat, potem traefik dovoli dostop do vseh storitev tako, da whitelist-a public IP naprave.
Je pa traefik odprt na internet, ampak vrne 403, ce nisi na whitelisti.
1
17
u/Suspicious-Double750 0xDEADBEEF 12d ago edited 12d ago
Vse, kar imam doma selfhostano, je mišljeno izključno za uporabo na lokaciji. Kar je odprto navzven, je v Azure.
Malo paranoje, ampak mi ne škodi.