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
OwncloudNextcloud- 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á":
Nálam a vps a wg szerver, de lehet a mikrotik is.
Ezt a biztonság témakörre írtad ugye? A szolgáltatások elérését hogyan manageled?
Lehet hogy félreértettem, és publikus szolgáltatásokról van szó. Az nekem nincs az itthoni gépen.
Vegyesen lenne. Van ami publikus és van ami csak a helyi hálóról elérhető. A publikussal vannak problémáim...
Publikus = a külvilágnak szól, nem neked. Ha csak személyes/családi felhasználású dolgokat üzemeltetsz, akkor a wireguard vpn pl. jó. Én is azt használom openwrt-n.
Bocsi. Félreértettem.
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"
Hasonló az elképzelésem nekem is. Köszönöm a pfSense ötletet, fel is veszem a szolgáltatások listájába! DDNS-re nekem tökéletes a gyári Mikrotik ddns.
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
Ez a truenas is ígéretes alapnak tűnik. Főleg a sok kész plugin/modul megoldás, amivel lehet bővíteni. Szimpatikus... Felteszem VM-be és teszek vele egy próbát.
Köszönöm!
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.
Nagyon köszönöm! Ezért a hozzászólásért jöttem! 😀
Annyival egeszitenem ki, hogy a Truenas scale is ZFS-t hasznal alapbol.
Azt nem tudom, hogy lehet-e mast hasznalni, nekem nem volt szempont.
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 mindenképpen a proxmoxot ajánlanám.
A disk device passthrough nem lesz probléma a proxmoxnak sem.
A plex transcoding support nem tudom mekkora prioritás PCIe passthrough-t még sose próbáltam Proxmox-szal, elvileg van.
Gábriel Ákos
É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.
Köszönöm a nagyon hasznos jótanácsokat!
É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
Köszönöm. Más kérdés, ha még szabad. :)
Javasolnád, hogy 2-3 ezer HUF ellenében vegyek egy .hu domaint valahol, vagy jó lehet ilyen no-ip, dyndns, egyéb ingyenes szolgáltatás is?
Ha otthon nincs fix ip-d (gondolom nincs) akkor csak a dinamikus dns lesz jó (és az teljesen jó, nekem is az van)
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:
Í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
Köszönöm. Valószínüleg ez lesz a megoldás, de ha valakinek van más ötlete szívesen veszem. Jó lenne valami megoldás a szolgáltatások kezelésére is.
Mit értesz szolgáltatások kezelésén? Ha VPN-el fellépsz távolról a szerveredre, akkor minden szolgáltatást biztonságosan elérhetsz pont úgy, mintha belső hálón lennél.
Hülyeséget írtam. Bocsi.