Jumpbox vagy más megoldás?

Fórumok

A közösség segítségével lassan kialakul hardveresen a home server projektem. Most további segítséget szeretnék kérni, ötleteljünk közösen, osszátok meg tapasztalataitokat kérlek!

Célom: home server, ahol a különböző szolgáltatások virtuális gépeken futnak, illetve szeretnék egy backup megoldást is.

Proxmox szervert választottam célszoftverként, mert ez OOB teljesíti a fenti célokat. Ha valaki esetleg mást javasol szívesen elfogadom. Eddig Debian illetve ezek leszármazottai alatt mozogtam, de nem áll távol tőlem az arch, illetve más linux rendszerek sem.

Szolgáltatások:

  • Nyomtatószerver
  • Médiaszerver
  • Owncloud Nextcloud
  • Házi könyvtáram nyílvántartása
  • PiHole
  • Tűzfal (pfSense)
  • Syncthing
  • Fájl megosztás SMB szerver (NFS?)
  • ...

Ami adott: CGNAT mögül kivett public ipv4 cím a Digitől, illetve mikrotik routerem saját ddns szolgáltatása. Eddig szuper elérem hát a szervert a netről. Itt jönnének a kérdéseim:

Vannak szolgáltatások, amik nem elérhetőek csak a belső hálóról (értelemszerűen ilyen a nyomtatószerver). No de hogyan oldjátok meg, hogy a különböző szolgáltatások elérhetőségének managelését? Néztem a címben említett jumpbox megoldását, jónak tűnik, de működik ez Proxmox szerverrel is? Vagy felírjátok valahová a szolgáltatások portszámát és beírjátok kézzel? Esetleg egy statikus weblap kattintható linkekkel? Hogyan oldjam meg a szerver védelmét? Fail2ban? Vagy tűzfalszabályokkal? Esetleg Ip geolokáció filter? Mire figyeljek még, hogy másnap ne zombiként keljen a szerver, vagy valamelyik hülye gyerek poénból ne DDOS-olja szét? 

Ha valami egyéb kérdés van, vagy teljesen hülyeségeket írok, kérlek írjátok meg azt is, csak akkor legalább buzzword segítséget adjatok, hogy merre induljak. Nem kész megoldásokat várok, inkább tanulni szeretnék.

Köszönöm!

Hozzászólások

Részemről wireguard vpn van "mindenhová":

  • vps
  • laptop
  • telefon
  • más országban dekkoló rpi.

Nálam a vps a wg szerver, de lehet a mikrotik is.

Nyomtatószerver: Cups

Owncloud helyett Nextcloud

Nextcloud-ban van e-book olvasó

Fájlmegosztás SMB

 

Én szolgáltatás szinten telepítgetek... egy lxc egy szolgáltatás.

Cups

Nextcloud (+fail2ban)

SMB

Dinamikus DNS-re a https://afraid.org-ot használom.

Nálam a tűzfal is (pfSense) a Proxmox-on van. Mindent ki és be forgalmat azon szabályozok.

ʕ -`ᴥ-'´ʔ 

"NINCS ERŐS KÁVÉ, CSAK GYENGE EMBER"

Nálam a teljes Home Server egy I3-as Fujitsu P900-on van, 16 GB-al.

A pfSense qemu, a többi lxc.

A NextCloud-ban ott az e-book olvasó és van benne Nextcloud Office (valójában webes libreoffice).

Egyedül a video lejátszás van másik gépen, de az meg nem megy mindig.

ʕ -`ᴥ-'´ʔ 

"NINCS ERŐS KÁVÉ, CSAK GYENGE EMBER"

Egy teszt megoldasom az alabbiak szerint alakul:

 

Host: TruenasCore

Tuzfal: VM-ben pfSense 

docker host_1, ezen futnak azok a szolgaltatasok amik elerhetoek kintrol is: VM-ben Debian 11 (docker rootless modban)

docker host_2, ezen futnak azok a szolgaltatasok amik csak LAN oldalrol erhetoek el: VM-ben Debian 11 (docker rootless modban)

docker volume-nak: trunas-on nfs megosztas

alkalmazasok:

 

truenas, pluginok: plex, syncthing, transmission, minio-server

docker: clamav, openspeedtest, snapdrop, ftp-server, calibre, rocket chat, wikijs, guacamole, ngx proxy manager, netmaker, filegator, samba, mariadb, redis, nextcloud, traefik, pihole, gitea, grafana, joplin, photoprism, heimdall, libreoffice, webtop, glances, bookstack

Nos teszteltem egy picit és nagyon szimpatikus, könnyen kezelhető nagy tudású cucc. Ami elbizonytalanít az a ZFS. Alapértelmezésben ezt használja és nem is nagyon sikerült rávennem ext4 vagy hasonló fs használatára. Igazából tartok tőle a memóriaigénye és az ismeretlensége miatt. Mármint eddig nem nagyon foglalkoztam vele. Így ránézésre nem bonyolultabb egy LVM megoldásnál, amit ismerek és használok is. Simán létrehoztam újabb virtuális merevlemezt felcsatoltam és pool-ba helyeztem. Tehát meg tudnám tanulni, nem ezzel van a baj, inkább a memóriaigényétől félek.

A plugin-ok viszont szuperek. És van lehetőségem VirtualMachines létrehozására is. Tehát minden igényemet kielégíti. Mégis valamiért ódzkodok tőle. Nem tudom...

TrueNAS-t ne tegyél virtuális gépre, legalábbis virtuális lemezekkel ne, mert baj lesz belőle... De tapasztalat nélkül szerintem máshogy se tegyen senki TrueNAS-t VM-be.

Nekem az itthoni szerveren Proxmox fut virtualizációs alapnak, és azon csak fájlmegosztás okán van egy TrueNAS Core virtuális gép, ami PCIe passtrough-val megkap egy fizikai SAS HBA-t a rá kötött lemezekkel, így a TrueNAS fizikai vezérlővel és lemezekkel tud dolgozni. Ez ha nem is kifejezetten támogatott, de megtűrt megoldás a TrueNAS fejlesztők részéről is.

Ha nem szeretnél ilyen kicsit összetettebb rendszert (szerintem nem szeretnél), akkor a fizikai szerverre tegyél TrueNAS SCALE op. rendszert (ez nagyon hasonló tudásban a Core-hoz, de Linux alapú, szerintem alkalmasabb otthoni hobbizásra kezdőknek, mint a BSD alapú Core). Ezen tudsz kényelmesen VM-eket és Docker konténereket is futtatni (gyárilag támogatja), és emellet önmagában ellátja a file szerver funkciót plusz VM/konténer nélkül. Ráadásul van hozzá egy "alkalmazás bolt", ahonnan a legtöbb ismertebb rendszert egy-két kattintással be tudod üzemelni.

Internet felőli bejárásra nekem egy OPNsense VM van üzemben, a fizikai szerver egyik hálózati kártyájára van kötve az internet, amit csak ez a VM kap meg, és rajta keresztül megy a teljes forgalom. Az egyes publikus (webes) szolgáltatások elérését HAProxy-val biztosítom az internet (és a helyi hálózat) felé.

Javaslom, hogy a MT DDNS-énél valamivel könnyebben megjegyezhető tartomány nevet jegyeztess be magadnak, és minden számodra érdekes publikus szolgáltatásnak legyen FQDN-je, amire CNAME rekorddal ráhúzod a MT DDNS címet. Így normális neveken, de dinamikus IP-n is elérhető lesz amit szeretnél.

Olvasgatok a témában és nem egységes a diskurzus. Ez például érdekes reddit szálnak tűnik: https://www.reddit.com/r/HomeServer/comments/suy0xi/truenas_vs_proxmox/

Írják, hogy lehetne akár proxmox-on is truenas-t futtatni. Ám: "Plex on docker or truenas is a pain in the ass to set up transcoding, especially gpu transcoding. That is why plex runs on its own Ubuntu server vm on proxmox"

Szóval a fene tudja. Proxmox felé hajlok, mert ugyan kényelmesebb plugin-ként telepíteni az egyes szolgáltatásokat, de ha magam csinálom nagyobb szabadságom van a konfigurációban és jobban megismerem az adott service-t. Szóval szerintem marad a proxmox.

Én is a Proxmox vonalat javaslom, sokkal általánosabb platform szolgáltatás centralizációra, mint bármelyik TrueNAS. File megosztásra meg valami nem-ZFS alapú NAS OS VM-be, vagy egy sima Debian+Samba CT is megteszi. Miden másra meg VM vagy CT.

Annyi biztos, hogy ha hardveresen gyorsított Plex transzkódolás is a feladatok között szerepel, akkor azért fel kell kötni a pelust, mert a GPU passthrough általában sokkal nagyobb szívás, mint a bármi más passthrough.

Azt még fontosnak tartom megjegyezni, hogy érdemes betartani azt, hogy a virtualizációs host-ra nem teszünk semmi szolgáltatást közvetlenül. Sokan beleesnek (pláne kezdőként) abba a hibába, hogy ha valami elsőre nem sikerül VM-ben (pláne nem-privilegizált CT-ben), akkor feldobják a host-ra. Aztán így gyengül a védelem, nehezedik a frissítés, stb. Ide értem akár a Plex HW transzkódolást is. Addig kell próbálkozni, amíg nem megy rendesen VM-ben.

Ja, Docker-t sem teszünk közvetlen a Proxmox host-ra. Egy alap VM és abba mehet a Docker.

GPU passthrough-nál arra érdemes figyelni, hogy két GPU kell. Az egyik lesz a Proxmox konzol (mondjuk Intel CPU-nál az integrált GPU) a másik diszkrét GPU meg amit megkap a VM. Ha csak a diszkrét GPU van, akkor szar lesz a host-ot kezelni amíg fut a GPU-t használó VM... Persze lehet trükközni virtuális GPU hekkeléssel (a consumer Nvidia GPU-k ezt nem támogatják gyárilag, csak a méregdrága Tesla és Quadro modellek), de az plusz egy csavar az amúgy sem könnyű GPU passthrough-ban - ha működik egyáltalán a rendelkezésre álló GPU-val.

Én meg ezt annyival toldanám meg, hogy a TrueNAS termékeknek a ZFS az egyik fő lényegük, így aki ezt nem szeretné, az inkább válasszon a sok más NAS OS-ből, ami nem ZFS-t használ (pl. OpenMediaVault).

Mindnek megvan az előnye és a hátránya, én egyiket sem jelenteném ki jobban a másiknál.

Én imádom a ZFS képességeit és megbízhatóságát (megfelelő hardveren és konfigurációban persze, mert azt nem mondanám, hogy bolodbiztos), így nekem kézenfekvő a használata. De van, akinek mások a szempontjai.

Ja igen a ZFS-el akkor lehet jó nagyot szívni ha az alata levő virtualizáció nekiáll write-back cache-elni és az elszáll.
Proxmoxnál (ami alatt szintén ZFS van alapból) vagy megmondod a virtual disknek hogy "no-cache" vagy tényleg odaadod a raw disket. Szerintem.

Gábriel Ákos

Pontosan! Én ezért adtam a TrueNAS VM-nek oda magát a HBA-t (a Proxmox saját, szintén ZFS-es SSD-i másik vezérlőn vannak), így a vezérlőhöz és a rajta lévő diszkekhez semmi köze a Proxmox-nak, nem is látja egyáltalán.

És azért nincs külön hardveren a TrueNAS, mert egy normális szerver is épp elég villamosságot fogyaszt ahhoz, hogy ne akarjak két normális szervert itthonra. :-D

Még engedj meg kérlek néhány kérdést. OPNSense jobb választás kezdőknek, mint a PfSense? A HAProxy reverse proxy, ennek működését elméletben ismerem, gyakorlatban remélem sikerül majd alkalmaznom is.

Miért érdemesebb önálló VM-re tenni a docker konténert és nem a proxmox ve host-ra telepített megoldást használni?

De a MT DDNS-ről soha nem hallottam és hiába keresem nem találok releváns találatot. Segíts kérlek, mi ez?! Megfejtettem. Mikrotik 😀

Pl:

- nem a proxmox host networkingjét taknyolod össze hanem csak egy vm-et
- ha felnyomják valamelyik konténeredet nem a host-on mászkálhatnak hanem csak a vm-ben
- ha megőrül valamelyik konténered nem az egész host borul meg hanem csak a vm
- PBS-el egy VM-et backupolni rém egyszerű, host-ot nem lehet

Azért is VM (és nem LXC) mert LXC alatt gyakorlatilag csak a legegyszerűbb docker funkciók mennek tákolás-gányolás-szívás nélkül (ami azért nem kevés)

Gábriel Ákos

Én a következőt csinálom az otthoni dolgaim elérésére: van saját .hu domain-em, és ebbe fel van véve több rekord, ami az otthoni szerverre mutat (meg pár másik, ami hosting-ba lévő dologra mutat) így:

$ORIGIN domainem.hu

home IN CNAME domainem.dyndns.org.

Így a home.domainem.hu mindig az otthoni szerverre mutat, nekem tetsző, általam választott domain név alatt. Ha változik a dinamikus DNS szolgáltató, akkor nem kell minden felhasználási helyen átírni (pl. VPN konfig, stb.), csak átírom a CNAME rekordot, és már megy is tovább. Most pl. épp váltok DynDNS-ről, mert már nem ér meg évi 50 USD-t nekem, kifogytak belőle az ügyfél tételek az évek során (sikerül egyre több ügyfél helyre fix IP-s kapcsolatot kérni).

Persze a "home" bármi lehet és a "domainem.dyndns.org" is lehet a Mikrotik-es cloud DDNS név, nem kötelező másik dinamikus DNS szolgáltatót használni, ha már úgy is van egy jól működő.

Megfogadtam a tanácsod. Vettem egy domaint és szuperül működik a CNAME megoldásod. Nagyon szépen köszönöm!

Más: megvan a gép, van benne egy 240GB SSD és megy mellé egy 1TB winchester. Az SSD-re megy alapértelmezett LVM telepítéssel a Proxmox, rajta a sok VM és konténer. A winyón lennének az adatok (képek, zenék, doksik, videó), ezt egy sima fstab-bal gondoltam UUID alapján mountolni, mivel a Proxmox egy mezei Debian és ott így csinálnám. Ezt a tárolót ext4-re gondoltam formázni. Helyes az elgondolásom? Vagy inkább NFS legyen? Vagy más? Nem produktív, nagy terhelésű szerver lesz csupán a család használná a szolgáltatásokat.

Van valamilyen ajánlott könyvtárszerkezet/naming convention a fájlok tárolására?

ha csak te (néhányan) akarod használni akkor felesleges publikussá tenni.
VPN-en eléred és kész. Minden mással csak plusz kockázatot futsz. 

Gábriel Ákos