Author: Giuseppe Ferrara, Socio RiminiLUG
Author: Matteo Cecchini, Socio RiminiLUG
Referente scolastico: Alessandro Abbondanza
1. Premessa
Forniamo qui una descrizione generale del progetto “Infrastruttura IT” e la definizione delle scelte progettuali ed operative del sistema.
Questa pubblicazione costituisce una linea guida per nuove installazioni anche in differenti contesti scolastici.
Con le nostre scelte progettuali abbiamo cercato di soddisfare le esigenze emerse durante la fase di analisi, considerata una sostanziale evoluzione del progetto.
Trattandosi di un lavoro svolto in pieno spirito FreeSoftware, tutti i lettori sono invitati a dare il proprio contributo proponendo modifiche sia a questo documento che al sistema.
Il contenuto di queste pagine si limita a descrivere le caratteristiche dei Sistemi Operativi messi in produzione nella “Infrastruttura IT” del Liceo Volta Fellini di Riccione, senza entrare nello specifico tecnico per la relativa stesura.
A tale scopo, verrà predisposta una seconda pubblicazione che descriverà l’implementazione adottata, indirizzata al referente scolastico che vorrà replicare questo tipo di configurazione in altre realtà.
2. Introduzione sul Sistema Operativo Linux
Linux è il kernel (nucleo) di un sistema operativo creato agli inizi degli anni ’90 come clone del kernel di Unix. Con il termine GNU/Linux si indicano i sistemi operativi basati sul kernel Linux, corredato dei software di sistema prodotti negli anni dal progetto GNU. GNU/Linux è quindi un sistema operativo completo.
GNU/Linux è nato su Internet come frutto di collaborazione su vasta scala seguendo un modello di sviluppo possibile solo nell’ambito del software libero. Una delle caratteristiche che ne consegue è la estrema modularità: per esempio l’interfaccia grafica viene realizzata utilizzando una architettura client – server che ne permette un uso molto flessibile. Sia il server grafico che le applicazioni grafiche sono “programmi” che possono essere installati o eseguiti a scelta dell’utente e non sono vitali per il funzionamento del sistema operativo.
Assemblare il kernel, le librerie, il software di sistema e gli applicativi è un’operazione piuttosto complessa: pertanto gli utenti di GNU/Linux abitualmente ricorrono alla installazione di una delle numerose distribuzioni disponibili ormai dagli anni ’90.
Le distribuzioni GNU/Linux possono essere generalmente ottenute come software libero il cui download da Internet è permesso, incoraggiato e gratuito.
Linux e il software del progetto GNU sono l’esempio per eccellenza di software libero tutelato dalla licenza GPL.
3. Progetto realizzato
4. Situazione prima dell’intervento
- Domain Controller gestito con PC assemblato adibito a server di dominio.
- Software Microsoft Windows Server 2012 Trial (180 gg di validità).
- Nr 170 postazioni studente con software licenziato Microsoft.
- Disponibilità di una struttura di rete LAN preesistente.
5. Situazione dopo la riconfigurazione “Infrastruttura IT”
- Configurazione BIOS e RAID5 del nuovo Server di Virtualizzazione.
- Configurazione di openDNS per filtraggio contenuti di navigazione.
- Installazione e configurazione del 1° Server di Virtualizzazione “PROXMOX” – Linux (sede del Volta).
- Installazione e configurazione di una virtual machine con funzioni di Domain Controller DC con software Server “Nethserver” – Linux (sede del Volta).
- Riutilizzo di PC assemblato da destinare all’uso di NAS. Installazione e configurazione di FreeNAS per lo storage dei backup delle virtual machine di PROXMOX (sede del Volta).
- Installazione e configurazione di una virtual machine del sistema di monitoraggio rete LAN con software ZABBIX – Linux (sede del Volta).
- Implementazione di nr 4 siti web con WordPress, a scopo didattico per gli studenti (nr 4 virtual machine – sede Volta).
- Installazione e configurazione di sistema di Videoconferenza a scopo didattico, per gli studenti impossibilitati per recarsi a scuola (virtual machine).
- Installazione e configurazione di server firewall PfSense per realizzazione VPN tra le sedi Volta-Fellini.
- Installazione e configurazione del 2° Server di Virtualizzazione “PROXMOX” – Linux (sede del Fellini).
- Installazione e configurazione di server firewall PfSense per realizzazione VPN tra le sedi Fellini-Volta.
- Installazione e configurazione del Domain Controller DC (sede del Fellini) con software Nethserver – Linux (virtual machine).
- Implementazione di nr 4 siti web con WordPress, a scopo didattico per gli studenti (nr 4 virtual machine – sede Fellini).
6. Server di Virtualizzazione PROXMOX
Proxmox VE è un progetto open source sviluppato e mantenuto dall’austriaca Proxmox Server Solution GmbH, con il patrocinio della Internet foundation Austria (IPA) e rilasciato sotto licenza GNU GPL 3.0
Proxmox VE 5.1 è una piattaforma di virtualizzazione, ovvero un hypervisor di tipo bare metal, basata su Linux Debian 9 Stretch 9.2 a 64bit, che integra in un unica soluzione diverse tecnologie di virtualizzazione come KVM e LXC.
L’ambiente è pronto in pochi minuti e permette di eseguire facilmente macchine e appliance virtuali, il tutto gestibile tramite una semplice interfaccia web.
Utilizzando piu nodi hardware è possibile configurare un’intera infrastruttura virtuale, costruendo un cluster di risorse ridondato per l’alta affibadilità, rendolo Proxmox VE un prodotto idoneo sia alle PMI ma anche al mondo Enterprise.
Ecco le principali caratteristiche:
Basato su Debian a 64bit.
- Ampio supporto hardware.
- Linux e Windows virtual machine.
- Sistemi operativi 32 e 64 bit.
- Supporto agli ultimi chipset Intel e AMD.
- Ottimizzazione per il bare-metal per i reali carichi di lavoro.
- Layer di gestione con con tutte le funzionalità necessarie per creare e gestire una infrastruttura
virtuale. - Gestione tramite interfaccia web senza la necessità di utilizzare un qualsiasi software client.
- Combinazione di due tecnologie di virtualizzazione KVM e LXC.
Sul sito www.proxmox.com/en/proxmox-ve si possono trovare tutte le informazioni relative al prodotto.
Proxmox utilizza due tipologie di virtualizzazione:
Linux Containers (LXC)
LXC è un ambiente di virtualizzazione–a livello di sistema operativo per l’esecuzione di più sistemi Linux isolati su un singolo host di controllo Linux. LXC funziona come un’interfaccia nello spazio utente per le funzionalità del kernel di Linux di contenimento. Gli utenti Linux possono facilmente creare e gestire sistema o delle applicazioni contenitori con un potente API e strumenti semplici.
KVM
Kernel-based Virtual Machine è una tecnologia di virtualizzazione composta da un modulo (kvm.ko) integrato nel kernel linux (dalla release 2.6.20) che permette di sfruttare le estensioni per la virtualizzazione dei processori (Intel VT e AMD-V).
KVM di per se non esegue nessuna emulazione, ma consente la gestione della virtualizzazione dell’hardware, esponendo le sue capacità ad un secondo componente Qemu, che si occupa dell’emulazione delle macchine virtuali.
KVM fa quindi da “tramite” tra le richieste fatte da Qemu ed il kernel.
Funzionalità e caratteristiche
Live Migration & Cluster HA
Proxmox VE può essere eseguito come Cluster HA (Hight Available), ovvero in una modalità con una configurazione che si basa su un nodo primario, detto master, e gli altri nodi che sono detti slave.
Questi nodi sono connessi insieme in modo da formare, da un punto di vista logico, un unico grande calcolatore.
Con l’implementazione di un cluster, si è in grado di bilanciare il carico di lavoro su diversi host, aumentando la disponibilità delle macchine virtuali.
Inoltre si è in grado di eseguire migrazione in tempo reale (live migration) delle macchine virtuali, anche se non si dispone di storage condiviso.
In caso di manutenzione hardware, è possibile spostare “al volo” le macchine virtuali su un altro nodo, senza tempi di inattività o downtime limitato.
In parole semplici, se una macchina virtuale o contenitore (VM o CT) è configurato come HA e un host fisico va in failure, la VM viene riavviata automaticamente su uno dei nodi che compone il cluster.
Con la funzionalità Live Migration possiamo quindi spostare i server virtuali in esecuzione da un host fisico ad un altro senza tempi di inattività.
Nel caso di KVM Il passaggio di una macchina virtuale, in esecuzione da un host fisico ad un altro, avviene senza alcuna interruzione. Per poter utilizzare la migrazione in tempo reale, tutti i dischi virtuali devono risiedere su storage condiviso, tra gli host, come una SAN o NAS.
Backup & Restore
Lo strumento di backup integrato (vzdump) crea istantanee (snapshot) di guest virtuali LXC e KVM.
In pratica viene creato un archivio tar dei dati VM o CT che comprende i dischi virtuali e i dati di configurazione.
Caratteristiche principali:
- Completa integrazioni GUI, ma funziona anche via CLI
- Live Backups via LVM snapshot
- Schedulazione di job di backup
- “Backup Now” tramite GUI
- Restore via GUI
- Tutti i job possono essere monitorati tramite GUI
Networking
Proxmox VE utilizza un modello di rete detto “bridge”e tutte le macchine virtuali possono condividere un bridge, come se i cavi di rete virtuali di tutte le guest machine siano collegati allo stesso switch.
Per il collegamento di macchine virtuali con il mondo esterno, i bridge sono collegati alle schede di rete fisiche dei server host a cui sono assegnate configurazioni di rete.
Per una maggiore flessibilità, sono supportate VLAN (IEEE 802.1Q) funzionalità di bonding e network aggregations.
In questo modo è possibile costruire complesse reti virtuali flessibili per i gli hosts, sfruttando tutta la potenza dello stack di rete Linux.
Storage
Proxmox VE utilizza un modello di storage molto flessibile.
Le immagini delle macchine virtuali possono essere memorizzati nello storage locale oppure su storage condiviso come NFS e SAN (ad esempio utilizzando iSCSI o FC) e infine è supportato l’utilizzo di DRBD per le vm KVM.
Tecnologie di storage supportate:
- Archiviazione locale (obbligatorio)
- LVM Group (network backing with iSCSI targets)
- iSCSI
- FC
- NFS Share
- Ceph RBD
- GlusterFS
In pratica possono essere utilizzate tutte le tecnologie di storage disponibili e supportate da Debian Linux.
Management
Proxmox VE è semplice da usare e non vi è alcuna necessità di installare uno strumento separato per la gestione, o di altri nodi supplementari di management né di database esterni adottando la filosofia NO SPOF (Single Point of Failure).
Se si utilizza già un cluster, è possibile collegarsi a qualsiasi nodo che lo compone, per gestire l’intero cluster.
La gestione avviene tramite una console Web, basata su framework javascript, e consente all’amministratore di controllare tutte le
funzionalità.
- Interfaccia di ricerca rapida, in grado di gestire migliaia di VM
- Console VNC sicura, supporto SSL
- Procedura guidata per la creazione di server virtuali e contenitori
- Perfetta integrazione e gestione con cluster VE Proxmox 2.0
- Gestione delle support subscription
- Gestione dei permessi sugli tutti gli oggetti (VM, CT, Storage, etc)
- Supporto multiplo alle fonti di autenticazione (locali, AD MS, LDAP)
- Tecnologie AJAX per gli aggiornamenti dinamici delle risorse
- Basato sul framework Ext JS 4.x JavaScript
Requisiti di sistema
Raccomandati:
- Dual or Quad Socket Server (Quad/Six/Hexa Core CPUs´)
- CPU: 64bit (Intel EMT64 or AMD64)
Intel VT/AMD-V capable CPU/Mainboard (for KVM Full Virtualization support)
8 GB RAM is good, more is better
Hardware RAID with batteries protected write cache (BBU) or flash protection
Fast hard drives, best results with 15k rpm SAS, Raid10
Two Gbit NIC (for bonding), additional NIC´s depending on the preferred storage
technology and cluster setup
Fencing hardware (only needed for HA)
Requisiti minimi: (for testing):
- CPU: 64bit (Intel EMT64 or AMD64)
- Intel VT/AMD-V capable CPU/Mainboard (for KVM Full Virt.)
- Minimum 1 GB RAM
- Hard drive
- One NIC
- Testing Proxmox VE come VM
Proxmox VE può essere installato come guest machine in tutte le soluzioni desktop comuni utilizzate per la virtualizzazione, ma la modalità KVM non funzionerà.
Supporto
Proxmox VE è rilasciato sotto una licenza Open Source.
Questo garantisce l’accesso completo a tutte le funzionalità ed incrementa maggior sicurezza e affidabilità.
- Licensed under GNU version 3
- Public code repository (GIT)
- Bugtracker
- Community Forum
- Wiki for documention and HowTo´s
Va ricordato che l’Open Source contribuisce a mantenere bassi i costi e rende la vostra infrastruttura di base indipendente da un unico fornitore.
Esistono piani di supporto di Proxmox (Proxmox VE Subscription Service Plans); la sottoscrizione VE Proxmox ha una validità di 12 mesi (12 mesi dalla data di acquisto) ed il supporto base è via web ed email.
7. NethServer
Nethserver è una distribuzione Linux basata su CentOS completamente gestita tramite interfaccia web.
Creata e supportata da Nethesis srl, azienda di Pesaro che nasce nel 2003 utilizzando l’opensource come modello di business, ha oltre 3000 installazioni attive nel mondo e, alla semplicità di utilizzo, unisce un’enorme varietà di servizi, offrendo la possibilità di essere utilizzata anche per uno solo di essi.
Nethserver è un sistema operativo progettato per piccoli uffici e medie imprese che, con alcuni pacchetti aggiuntivi ed una potente ed estensibile interfaccia web semplifica le più comuni attività di amministrazione.
È dedicato:
- all’amministratore di sistema, che apprezza l’efficacia di un’interfaccia utente in grado di far risparmiare tempo rispetto alla modifica diretta del file di configurazione,
- agli utenti che vogliono avvicinarsi a CentOS senza avere competenze Linux.
NethServer è un progetto open source, tutte le fonti sono GPL, tutta la documentazione è sotto licenza Creative Commons.
A questo link è possibile consultare la documentazione ufficiale: docs.nethserver.org/it/v7/release_notes.html
L’architettura di NethServer supporta esplicitamente gli sviluppatori, rendendo più semplice l’installazione e l’integrazione di software aggiuntivo. Sono stati aggiunti rapidamente alcuni moduli preconfigurati, installabili con un click, ad esempio: framework LAMP, Caching + proxy web con filtri di navigazione e filtro SSL (Squid), Groupware (SOGo), Bandwidth Monitor (ntopng), server di posta con Antispam e Antivirus (Postifx + Spamassassin + Clamav + Amavis), VPN (OpenVPN e IPSec / L2TP), firewall (Shorewall), rilevamento delle intrusioni (Snort), Nextcloud.
NethServer è un progetto open source, tutte le fonti sono GPL, tutta la documentazione è sotto licenza Creative Commons, tutti possono accedere al bug tracker e aderire al progetto.
Alcuni dei principali servizi sono:
- Domain Controller
- File server
- VPN (ipsec o openvpn)
- Nextcloud
- Fax Server (Hylafax)
- Mail Server
- Groupware
- Traffic shaping
- Firewall
- Proxy e Content filter
- DNS
- DHCP
8. WordPress
WordPress è una piattaforma software di “personal publishing” e content management system (CMS) open source ovvero un programma che, girando lato server, consente la creazione e distribuzione di un sito Internet formato da contenuti testuali o multimediali, facilmente gestibili ed aggiornabili in maniera dinamica. Inizialmente fu creato da Matt Mullenweg e distribuito con la licenza GNU General Public License. È sviluppato in PHP con appoggio al gestore di database MySQL.
9 Zabbix
Zabbix è un software di monitoring che consente di controllare la disponibilità e le performance di una infrastruttura IT. Zabbix è open source e gratuito per qualsiasi utilizzo.
Con Zabbix è possibile raccogliere dati da qualsiasi tipo di dispositivo (server, apparato di rete, virtual machine). Oltre ad alimentare un prezioso storico di informazioni, Zabbix ha potenti funzioni di visualizzazione (mappe, overview, grafici e dashboard), e metodi altamente flessibili di analizzare i dati per generare alert o azioni automatiche. E’ progettato per scalare fino a reti grandi e complesse grazie alle funzionalità di Distributed Monitoring.
Supporta il monitoraggio tramite polling dei dati o tramite pushing/trapping, può sfruttare gli agent software disponibili per tutti i principali sistemi operativi o basarsi interamente su metodi agent-less (SNMP, SSH, WMI, IPMI) per coprire virtualmente qualsiasi tipo di dispositivo. Le sue funzioni base includono sia il monitoraggio di applicazioni web, così come il monitoraggio di ambienti virtuali.
Con l’auto-discovery Zabbix può eseguire scansioni della rete per rilevare nuovi dispositivi ed assegnare in modo automatico controlli di performance agli elementi trovati.
L’interfaccia web consente sia la configurazione del sistema, sia la visualizzazione dei dati in forma sicura, attraverso un sistema di controllo degli accessi granulare e personalizzabile.
10. PfSense
PfSense è un firewall/router software open source basato su FreeBSD. Ha lo scopo di fornire un firewall potente, sicuro e completamente configurabile utilizzando l’hardware di un comune PC.
Al cuore del sistema c’è FreeBSD e il firewall PF (Packet Filter) derivato da OpenBSD. Il nome pfSense deriva dall’idea di dare maggiore indipendenza e “senso” al firewall Packet Filter.
PfSense offre gratuitamente innumerevoli funzionalità che normalmente sono appannaggio di costosi firewall commerciali. L’intero sistema è gestibile ed aggiornabile attraverso un’interfaccia web, rendendo il sistema accessibile anche a chi non ha alcuna conoscenza del sistema FreeBSD.
PfSense può essere impiegato come firewall, router, access point, terminatore vpn, dhcp server, dns server, sniffer di rete, IDS/IPS e perfino come centralino VoIP.
Il progetto nasce nel 2004 ad opera di Chris Buechler e Scott Ullrich, come un fork (derivato) di m0n0wall, un altro progetto di router/firewall nato per installazioni embedded. La differenza sostanziale da m0n0wall è la possibilità di essere installato anche su hardware x86 ed AMD64 e derivati, come i processori VIA C7 e AMD Geode.
La versione 1.0 venne rilasciata il 4 ottobre 2006, mentre l’attuale versione 2.3.4 è stata rilasciata il 20 luglio 2017. Il progetto è sviluppato dalla Electric Sheep Fencing (originariamente BSD Perimeter) di cui Chris Buechler e Scott Ullrich sono i fondatori.
11. FreeNAS
FreeNAS è un sistema operativo specializzato nell´elaborazione e nella gestione dei dati (il protocollo Samba, permette di comunicare con sistemi Windows, e poi integra i protocolli
NFS Network File System e AFP Apple Filing Protocol), ma che offre tanti altre soluzioni, supportando protocolli di comunicazione (tra cui FTP, SSH e TFTP) e utilizzando servizi multimediali che diversamente in altri sistemi non sarebbero fruibili. FreeNAS supporta UPnP (Universal Plug´n Play) e inoltre consente di gestire un sito internet con Webserver lighttpd. Come File System è nativo il supporto ai sistemi UNIX (UFS) ma si possono utilizzare anche FAT16, FAT32, NTFS, EXT2 ed EXT3. Anche ZFS (file system open source sviluppato dalla Sun Microsystem) è supportato da un porting nativo di Solaris.
12. Foto del Gruppo di lavoro.
Da sinistra:
Alessandro Abbondanza, Referente scolastico
Paride Principi, Dirigente Scolastico del Liceo Volta-Fellini
Matteo Cecchini, Socio del RiminiLUG
Giuseppe Ferrara, Socio del RiminiLUG