Premessa

Cinque anni fa circa ho acquistato un pacchetto hosting classico LAMP (Linux Apache MySql PHP) con dominio incluso e webmail a 25 euro l'anno dal fornitore Web4Web.

Devo dire di essermi trovato tutto sommato bene e lo consiglierei per chi volesse mettere su siti dinamici senza troppe pretese.

Nel mese passato, un pò per trovare qualcosa di nerd da fare durante il lockdown, un pò perché al lavoro non riesco a fare il sistemista tanto quanto vorrei (mi diverte molto), un pò perché vorrei maggiore flessibilità nel poter hostare applicazioni che richiedano server particolari e un pò per l'aumento del canone annuo a 30 euro, ho deciso di valutare se fosse possibile gestire un serverino ad un costo simile.

Quello che segue è una sorta di "lista della spesa" con alcuni utili riferimenti per chi volesse prendere "ispirazione" e cimentarsi.

Mi sono ripromesso di scrivere qualche guida un pò più tecnica per aiutare chi volesse seguire la stessa strada, ma fossi in te non tratterrei il fiato.

Desiderata

  • Costo annuo fra 30 e 40 euro
  • Linux con accesso root completo
  • Esigenze di spazio sul disco per archiviare file minime
  • Avere più servizi e non meno

Ricerca del ferro e considerazioni sulla Privacy

Potevo fare tutto con un Raspberry Pi (soprattuto il 4) in salotto e, forse, ad un costo minore, nonostante il consumo energetico e i guasti inevitabili, ma ho preferito optare per una soluzione in affitto per avere banda e uptime migliore. Questa scelta ha implicazioni di sicurezza e privacy importantissime, il fornitore con accesso al sistema in qualche modo può sempre comprometterlo.

Considerando però che non penso di farci nulla che mi metta nel mirino di agenzie governative dovrei essere apposto, ma il lato paranoico di me non è affatto contento ^__^.

Duckando un pò ho trovato un bel sito che raccoglie offerte di VPS a prezzi relativamente economici ma con prestazioni modeste: LowendBox e in particolare questa pagina con VPS a meno di due dollari al mese che non so se sono ancora valide, in caso cercane altre.

Personalmente ho scelto l'offerta di RackNerd

  • LEB Special 2.5GB
  • 2.5GB RAM
  • 3x vCPU Cores
  • 40GB SSD RAID-10 Storage
  • 6.5TB Premium Bandwidth
  • 1 Gbit Port
  • Full Root Access
  • 1 Dedicated IPv4 Address
  • Location: Los Angeles
  • Pricing: $23.49/year

I server son situati a Los Angeles USA, che non è granché ma per un cambio + tasse di 27 euro l'anno non è affatto male. Ho provisionato una Centos 8, che non avevo mai usato prima, ma ho lunga esperienza con la 7.

Dominio

Più che al risparmio ho pensato allo stile, scegliendo un dominio XYZ pagato 8 euro per due anni su Namecheap, invece di qualcosa più economico come il dominio di OVH che viene sui 4 euro l'anno, rientrando nel budget prestabilito.

Ho cambiato i nameserver per usare quelli di CloudFlare, dovesse servirmi qualche API particolare, fatto puntare il dominio root all'ip della Vps e inizia l'avventura :-]

Mailserver

Avevo la possibilità di creare una decina di caselle mail sul vecchio hosting, ma non le ho mai usate.

Ultimamente l'idea che i vari provider mail lucrino sul contenuto delle mail che ricevo mi è insopportabile e siccome non volevo avere servizi in meno rispetto al vecchio host, mi sono cimentanto a installare e configurare un server mail per la prima volta.

Ho quindi provveduto a installare la combo postfix+dovecot+amavisd seguendo quest'ottima serie di tutorial in lingua inglese e da lì è iniziata la mia via crucis.

Testando l'invio delle mail, mi son accorto che dopo qualche decina di minuti il mio IP e dominio finivano nella blacklist di Spamhaus che è una lista di Ip e domini che i vari mail server usano per mercare messaggi spammosi indesiderati.

Ho chiesto la cancellazione, ma dopo un pó stessa cosa. Ho chiesto di nuovo. Per aggiungere danno alla beffa, il register dei domini XYZ ha una policy molto stringente riguardo lo Spam e mi hanno messo on hold il dominio, di fatto bloccandone l'accesso.

Altra richiesta di pulizia dalla blacklist, invio delle prove al register, morale della storia son stato 3 giorni in attesa bloccato.

Poco dopo, mi sono ritrovato di nuovo listato :-O Contattando il loro supporto ho scoperto che parte dell'algoritmo automatico controlla la data di creazione e se i dati del WHOIS sono accessibili (nel mio caso erano secretati dal register).

La storia ha però un lieto fine: i manutentori di spamhaus sono stati gentilissimi e mi hanno whitelistato il dominio e da allora non ho avuto più problemi.

La morale è perseverare, immagino.

Adesso posso creare tutte le caselle di posta che voglio, anche temporanee.

Web Server

Avrei voluto uscire dalla mia confort zone e usare Nginx, ma sono troppo abituato ad usare Httpd. Ho configurato i Virtual Host per i vari siti ospitati, usato Let's encrypt per la gestione dei certificati con l'aiuto di certbot, installato PHP e Mariadb per non farmi mancare nulla.

In particolare ho creato una pagina vetrina nella root del dominio, migrato un vecchio sito WordPress, non aggiornato dal 2014, rendendolo statico con WP2Static.

Ho messo su Roundcube per vedere la posta anche dal web, la visualizzazione delle statistiche di accesso ai siti con AwStats, Postfix Admin per la gestione delle caselle email e la mia istanza di social network distribuita tramite Reverse Proxy.

Fediverso

Da qualche tempo sto seguendo con attenzione l'andamento del Fediverso in opposizione ai social "mainstream". Sebbene abbia trovato un'istanza a me congeniale, vedo sempre dietro l'angolo il rischio che un'istanza cresca troppo, riproponendo le stesse dinamiche presenti su Fb/Twitter/Insta.

Per questo ho deciso di mettere su una mia istanza personale, o quanto meno per pochi intimi. Come piattaforma ho scelto Pleroma invece di Mastodon. Gira su un Raspberry 3 ed ha un consumo di risorse molto limitato, perfetto per la VPS non particolarmente potente.

Ho seguito una guida per l'installazione tramite sorgenti, il nuovo metodo raccomandato è tramite OTP, forse avevo usato quella per Arch Linux. Non ci sono state grosse difficoltà. L'unico cruccio è che non ho potuto riusare MariaDb come database ma ho dovuto installare PostgreSql, non ho riscontrato alcun impatto sulle performance del sistema.

Extra

Ho installato Tor, generato un vanity url con mkp224o così da rendere disponibile l'istanza Pleroma anche tramite Hidden Service, perché "The reason anyone would do this if they could, which they can't would be because they could, which they can't".

Racknerd assegna fino a 100 IPv6 su richiesta ed ho configurato anche quelli :-) Ho avuto un problema legato al loro gestore di virtualizzazione che mi impediva di uscire sulla rete tramite IPv6. La configuratione automatica della la rete era errata, c'erano due file di config per la stessa interfaccia Eth0, è bastato eliminare quella senza il commento di "Generated by SolusVm" e tutte è andato bene.

Ovviamente firewalld, fail2ban, sudo e disabilitazione del login root via SSH non potevano mancare.

Risultati

Da quando ho tirato su il tutto, circa un mese, ho usato 5 giga su 40 del disco, 1 giga e mezzo di banda su 6.5 tera, la Ram libera è più o meno 600 mega e il carico medio sulla CPU è al 3% con picchi massimi che ho riscontrato intorno al 10% di utilizzo.

Conclusioni

Per configurare tutto avrò impiegato un paio di settimane, non continuative e nei ritagli di tempo.

Chiaramente sono avvantaggiato dal fatto che per lavoro ho già avuto modo di usare e sperimentare molti dei software descritti. Nonostante ciò non credo che sia un obiettivo impossibile anche per chi non è un professionista del settore ed ha passione e la giusta motivazione.

Tag linux selfhosting