Ricerca nel sito web

Come costruisco il mio laboratorio domestico utilizzando tecnologie Open Source


Benvenuti in questa esplorazione guidata del mio semplice pezzo forte della tecnologia domestica: My Home Lab!. Ha alcuni elementi di design meticoloso e un odore che testimonia la potenza delle tecnologie open source.

Costruire un laboratorio domestico con lo stack tecnologico desiderato può rivelarsi un'impresa gratificante e preziosa per diversi motivi:

  1. Ideale per sperimentazioni e test S/W: un laboratorio domestico è uno spazio molto più sicuro per sperimentare nuove tecnologie. Puoi danneggiare comodamente il software, le configurazioni del server e persino l'hardware vero e proprio!.
  2. Come hobby e per interesse personale: per alcuni, il percorso di costruzione e gestione di un laboratorio domestico personale può essere un hobby appagante. Può essere un modo per interagire con la tecnologia a un livello più profondo, perseguendo interessi personali e godendo della soddisfazione di costruire tutto da zero.
  3. Hub Proof of Concepts: dove altro puoi sviluppare e testare prove di concetti per idee o startup legate alla tecnologia se non in un laboratorio domestico?. C’è bisogno di costose risorse commerciali con prodotti di laboratorio domestico.
  4. Per creare soluzioni personalizzate: con un laboratorio domestico puoi personalizzare le soluzioni tecnologiche in base alle tue esigenze specifiche, che si tratti di impostare sicurezza e sorveglianza domestica, VPN personale per l'accesso remoto, un server multimediale di intrattenimento, un sistema di automazione domestica, cloud privato o le tue enormi soluzioni di archiviazione dati.
  5. Apprendimento e sviluppo di nuove competenze: un laboratorio domestico fornisce un ambiente pratico per apprendere nuove tecnologie, sperimentare diverse configurazioni e acquisire esperienza pratica. È un modo eccellente per conoscere il networking, la gestione dei server, la virtualizzazione, la containerizzazione, l'automazione domestica, la sicurezza informatica e molti altri argomenti relativi all'IT.

Architettura di rete My Home Lab (design semplicistico)

L'architettura di un Home Lab dipenderà dalle tue esigenze specifiche, ad esempio dall'attrezzatura che intendi acquistare e dagli obiettivi specifici da raggiungere con il laboratorio. Ecco un semplice progetto della rete del mio Home Lab.

1. Connessione Internet

  • Questa è la connessione Internet principale, fornita principalmente dal tuo ISP (provider di servizi Internet).
  • È il livello di ingresso nella rete
  • Puoi prendere in considerazione l'idea di avere una connessione Internet secondaria/di backup per ridondanza se il tuo laboratorio domestico è fondamentale, ad esempio servizi di hosting consumati esternamente.
  • La mia connessione Internet principale è fornita da Safaricom (società Telco con sede in Kenya). Ho intenzione di ottenere una connessione Internet Starlink e magari usarla come principale per il downlink, e Internet Safaricom per l'accesso remoto e l'esposizione di servizi esterni.
  • Ho scelto il pacchetto di connessione Safaricom Fiber Internet for Business per ottenere indirizzi IP pubblici e avere il controllo completo sul mio stack di rete.
  • Il router è configurato in modalità bridge per consentirmi di configurare gli IP pubblici nel firewall/router esterno non controllato dall'ISP.
  • Il router dell'ISP è responsabile dell'instradamento del traffico dalla rete interna a qualsiasi destinazione esterna.

2. Router/Firewall

  • Ho acquistato Protectli Vault 4 Port Mini PC da Amazon. È possibile acquistare RAM e disco separatamente per ottenere specifiche migliori.
  • Il Mini PC dispone di 4 porte che offrono flessibilità in termini di connessioni (WAN o LAN)

  • Ho poi installato pfSense sull'hardware, la guida completa è disponibile a questo link; https://techviewleo.com/install-pfsense-opnsense-on-protectli-vault/
  • pfSense è un software firewall e router gratuito basato su FreeBSD
  • OPNsense è un'alternativa a pfSense. Non l'ho usato senza motivo. Lo proverò in futuro.
  • pfSense ha una serie di servizi configurati: HAProxy per il bilanciamento del carico, servizio DHCP (per l'assegnazione di indirizzi IP dinamici ai dispositivi), NTP per la sincronizzazione dell'ora, Snort (IDS/IPS), OpenVPN per l'accesso remoto al mio laboratorio di casa e client Tailscale ( VPN mesh: https://computingforgeeks.com/joining-pfsense-to-tailscale-headscale-vpn-mesh/)
  • Anche la segregazione della rete tramite VLAN viene eseguita su pfSense. Ho 4 VLAN attive: dispositivi ed elettrodomestici IOT, WiFi ospite, WiFi principale, server e VM.
  • Regole del firewall configurate per limitare le connessioni Inter-VLAN. Ad esempio, il WiFi ospite può accedere solo al servizio DNS e di filtraggio del traffico nella VLAN della rete dei server. Esistono molte altre regole per vari motivi.

3. Switch

  • Ho utilizzato gli switch gestiti UniFi per un maggiore controllo e la possibilità di configurare VLAN (LAN virtuali).
  • L'interruttore principale è lo switch Ethernet USW-24-POE

  • Ho scelto lo switch Power over Ethernet (PoE) per evitare l'uso di iniettori PoE per gli access point o qualsiasi dispositivo che possa essere alimentato tramite cavo Ethernet.
  • Lo switch è gestito tramite UniFi Controller (applicazione di rete) in esecuzione in una VM Ubuntu 20.04: https://computingforgeeks.com/install-unifi-controller-network-application-on-ubuntu/
  • L'altro piccolo interruttore è dedicato alla sicurezza domestica

4. Punto/i di accesso

  • Un punto di accesso viene utilizzato per estendere la copertura wireless di una rete esistente e aumentare il numero di utenti in grado di connettersi ad essa
  • Possiedo due access point UniFi AP AC LR di Ubiquiti Networks – UAP-AC-LR (PoE passivo indoor da 24 V, 2,4 GHz/5 GHz, 802.11 a/b/g/n/ac, 1x 10/100/1000)

  • Entrambi sono gestiti utilizzando l'applicazione di rete UniFi
  • Punti di accesso WiFi mappati su VLAN come definito in pfSense e configurato in UniFi Switch.

5. Server principale (o server):

  • I server principali eseguono applicazioni software di virtualizzazione (Hypervisor)
  • Ibrido di hypervisor di tipo 2 e di tipo 1
  • Preferisco l'hardware Mini PC per l'uso in laboratorio domestico a causa del basso consumo energetico
  • Nel mio rack di server ho 4Intel NUC

  • E hardware 7Lenovo ThinkCentre.

  • La maggior parte ha CPU Intel Core i7, chiavette RAM DDR4 e SSD NVME.

5.1 Stack di virtualizzazione

  • Si tratta di una combinazione di componenti software utilizzati per creare e gestire ambienti virtuali.
  • La virtualizzazione aiuta con l'ottimizzazione delle risorse hardware come CPU, memoria e spazio di archiviazione.
  • Più macchine virtuali possono condividere l'hardware fisico sottostante, consentendo un utilizzo più efficiente della risorsa
  • Nel mio Home Lab utilizzo varie tecnologie di virtualizzazione, vale a dire;
  1. Macchina virtuale basata su kernel (KVM): 2 nodi
  2. Proxmox VE versione 8 – 2 nodi
  3. oVirt in esecuzione su sistema operativo Rocky Linux: 1 nodo
  4. XCP-ng con Xen Orchestra per l'amministrazione dell'interfaccia utente - 1 nodo
  5. OpenStack distribuito su Rocky Linux come sistema operativo di base. – 1 nodo
  6. VMware ESXi e vCenter versione 8 – 3 nodi
  7. Il server HPE ProLiant DL380 Gen10 è affamato di energia: funziona solo in base alle necessità

6. Servizi

Gestisco numerosi servizi nel mio Home Lab per diverse esigenze personali. Ne elencherò alcuni qui:

6.1 Cluster Kubernetes

  • Il mio cluster Kubernetes è alimentato da Flatcar Container Linux come sistema operativo
  • Viene distribuito e gestito utilizzando Kubespray
  • Dispone di controller Nginx Ingress e Traefik Ingress
  • Il sistema di bilanciamento del carico del cluster è MetalLB
  • Il registro dei container è Harbour
  • Stoccaggio del contenitore: Torre
  • Gestione dei certificati nativi del cloud: cert-manager
  • GitOps utilizzando ArgoCD
  • L'accesso API avviene tramite pfSense utilizzando HAProxy

6.2 Cluster OpenShift

  • Alimentato da Fedora CoreOS a livello del sistema operativo
  • Utilizzo di OKD – Distribuzione comunitaria di Kubernetes che alimenta Red Hat OpenShift
  • La maggior parte dei cluster e delle altre applicazioni sono distribuite in modo nativo OpenShift utilizzando gli operatori
  • HAProxy è il bilanciatore del carico per i nodi/API OpenShift

6.3 Gestione e automazione delle infrastrutture

  • Servizi di gestione proxy: Nginx Proxy Manager
  • Gestione identità e DNS: IPA gratuito
  • Strumento di installazione ISO: Ventoy
  • IaC di Terraform
  • Automazioni Ansible che utilizzano AWX
  • Server Git gestito da Gitea
  • Adesso gioco con Pulumi

6.4 Monitoraggio e dashboard

  • Prometeo con Grafana
  • Dashy per la dashboard dei collegamenti al laboratorio domestico
  • Tempo di attività: tempo di attività Kuma

6.5 Media domestici/intrattenimento

  • Jellyfin
  • Server multimediale Plex

6.6 Sincronizzazione dei dati

  • Syncthing per sincronizzare i dati tra i miei sistemi/macchine.

6.7 Blocco pubblicità

  • Pi-hole
  • AdGuardHome

6.6 Domotica

  • Domotica intelligente: Home Assistant
  • Piattaforma IoT: ThingsBoard (in realizzazione)

6.7 Sicurezza

  • SIEM: AlienVaultOSSIM
  • Gestione password: Bitwarden
  • Rilevamento/prevenzione delle intrusioni: Snort IDS

6.8 Registrazione

  • Schierati Graylog e Grafana Loki. Cambio a seconda delle esigenze applicative e dell'idoneità.
  • Analizzatore di log: GoAccess

6.9 Future implementazioni del software (in cantiere; non ancora implementate)

  • NVR CCTV: NVR Fregata
  • Server SFTP con HTTP/S, FTP/S e WebDAV opzionali: Sftpgo
  • Sincronizzazione dei repository del sistema operativo: Katello e Foreman
  • Responsabile delle finanze personali: Firefly III
  • Analytics per siti web: Plausible Analytics o Matomo
  • Accesso e desktop remoto: teletrasporto e Rustdesk
  • Router di rete/firewall aggiuntivo: Sophos Firewall Home Edition
  • SSO: Authelia
  • Jump Server (se necessario): Jumpserver
  • Foto: Fotoprisma
  • VoIP domestico: Asterisk e FreePBX

Alcuni link di installazione:

  • https://computingforgeeks.com/creating-ubuntu-and-debian-os-template-on-proxmox-ve/
  • https://computingforgeeks.com/install-proxmox-ve-on-debian-12-bookworm/
  • https://computingforgeeks.com/deploy-production-kubernetes-cluster-with-ansible/
  • https://computingforgeeks.com/how-to-deploy-openshift-container-platform-on-kvm/
  • https://computingforgeeks.com/run-ansible-awx-on-kubernetes-openshift-cluster/
  • https://computingforgeeks.com/install-configure-traefik-ingress-controller-on-kubernetes/
  • https://computingforgeeks.com/deploy-nginx-ingress-controller-on-kubernetes-using-helm-chart/
  • https://computingforgeeks.com/deploy-metallb-load-balancer-on-kubernetes/
  • https://computingforgeeks.com/how-to-deploy-rook-ceph-storage-on-kubernetes-cluster/
  • https://computingforgeeks.com/install-freeipa-server-on-rocky-almalinux/
  • https://computingforgeeks.com/deploy-multi-node-okd-cluster-using-fedora-coreos/
  • https://computingforgeeks.com/deploy-xen-orchestra-appliance-on-xen-xcp-ng/
  • https://computingforgeeks.com/install-xen-orchestra-on-ubuntu-debian-linux/
  • https://computingforgeeks.com/how-to-install-ovirt-engine-on-rocky-almalinux/
  • https://computingforgeeks.com/installing-xcp-ng-virtualization-platform-steps-with-screenshots/
  • e molti altri su computingforgeeks.com e techviewleo.com

Articoli correlati: