Nota del 20180820: nel 2018, dopo almeno sei anni di onorato servizio, Casa è stato spento perchè appunto ho… cambiato casa. La cosa più bella di Casa, almeno per me, era che con quel modem ADSL potevo avere un’interfaccia nativa Linux con direttamente l’IP pubblico assegnato dal provider. Questo però è anche il motivo che mi aveva fatto tenere una anacronistica 7 mega per Casa. Niente, nella nuova dimora c’è una più attuale VDSL ma questo rende anche difficile ricreare Casa così com’era. La parte restante di Casa diventa una macchina virtuale ma per il bello… vedremo.
Penso che ogni appassionato di informatica si sia costruito un certo numero di sistemi da utilizzare a casa propria per studio, diletto, lavoro o tutte queste cose insieme. Casa è il nome della mia ultima realizzazione in questo ambito.
Come dice il nome si tratta di un sistema nato per essere il serverino domestico. Questo non significa che non trovi applicazione in ambito professionale, anzi alloggiato in un case fanless industriale costituisce una soluzione valida per tante applicazioni verticali, e sta incontrando un certo successo locale. I primi presupposti del progetto sono:
- Funzioni integrate di router e firewall verso Internet: infatti non volevo essere costretto ad usare un router esterno, e volevo che Casa concentrasse in sè tutte le funzioni di networking/packet filter/traffic shaping
- Centralino telefonico con Asterisk
- Tutti quei servizi ormai scontati su Linux, come file serving, proxy eccetera
L’hardware adottato è un barebone di Foxconn, dotato di processore Intel Atom dual-core, 4 gigabyte di memoria ram, e un hard disk SSD da notebook. Al sistema è connesso via USB un modem ADSL (la scatoletta grigia con le tre spie verdi in alto nella foto). Qust’ultima periferica fa sì che Casa disponga internamente di una interfaccia ADSL, realizzando così il primo dei presupposti descritti sopra. Sempre in foto si notano, sulla sinistra, uno switch a bassissimo consumo e sopra di esso l’antenna DECT di un telefono Siemens C450IP. In questo momento Casa gestisce questi servizi:
- router ADSL-Ethernet
- Firewall
- centralino telefonico
- DHCP server
- DNS server
- NTP server
- Concentratore di VPN IPSec e OpenVPN
- Radius server
- Access-Point tramite hostapd (in figura si vede l’antenna sulla parte posteriore di Casa)
- Host spot/captive portal
- Web server
- server SMB/CIFS con Samba, principalmente per l’esecuzione di backup
- mail server con antivirus e antispam
- eMule client con amule
- bittorrent client
Casa è basato su CentOS6, integrato con i miei repository Lux e Frank. in questi giorni sto svolgendo esperimenti con Arduino per fare gestire a Casa un po’ di domotica. In particolare mi sto concentrando sulla programmazione di Arduino per gestire i casi degeneri in cui Casa sia indispnibile o spento, per cui non in grado di dare input a Arduino stesso. Casa, opportunamente modificato, è stato utilizzato proficuamente come appliance di rete dove erano richiesti servizi aggiuntivi oltre ai “normali” routing e firewalling. La sua relativa potenza computazionale, se confrontato con altre appliance di rete, e la peculiare sfruttabilità essendo un sistema aperto, ne fanno una piattaforma molto flessibile ed interessante.