Linux. Come fare un proprio server a casa

In questi giorni, sembra che tutti parlino di clouding computing. Ora, che cosa esattamente si intende per “cloud” sembra indefinito, ma in genere, ci si riferisce a qualche tipo di servizio, quali e-mail, Web, DNS, storage dei file e così via, che è gestito per voi da terze parti. Molte persone amano quanto può essere facile esternalizzare il servizio e-mail, blog o sito da qualcun altro. Come cambiare l’olio all’auto, una riparazione a casa, l’amministrazione del server è un altro compito che si può pagare (sia con denaro o con i dati di marketing) per farlo gestire per voi.

Accanto a questa tendenza a lavorare in outsourcing c’è un movimento crescente  di chi vuol fare le cose da soli. Alcuni esempi includono i “Makers” coinvolti nella progettazione elettronica per la casa fai-da-te, giardinaggio, ma anche cottura e produzione di birra fatta in casa. Il fatto è che molti di questi lavori sono piuttosto gratificanti ed anche divertenti da fare da soli. Ritengo che noi come utenti Linux dovremmo applicare la stessa idea di gestione dei server. E’ molto gratificante, educativa e non terribilmente difficili da gestire i propri servizi a casa invece di farlo fare ad altri. A ciò si aggiunge il fatto che quando si gestiscono in proprio dei server, si ha il pieno controllo del server, che cosa è installato su di esso e chi può sapere le cose che fai.

In questa serie di articoli, ho intenzione di discutere come impostare vari tipi di servizi in casa e come renderli disponibili per Internet in generale. In questa primo articolo della serie, vedremo alcune cose che si dovrebbero prendere in considerazione sulla rete prima di impostare il server in casa.

La tua connessione a Internet

Quando si tratta di server che vengono fatti in casa, non tutti gli Internet Service Provider) sono uguali. Prima ancora di discutere di banda, in primo luogo si dovrebbe guardare in termini di qualità di servizio del proprio ISP. A volte alcuni ISP scoraggiano, impediscno o talvolta addirittura bloccano gli utenti domestici ad ospitare i propri servizi su Internet. Bisogna leggere i termini di servizio del provider (o anche chiamare e chiedere a loro) per vedere se hanno qualche tipo di restrizione. In questi giorni, per lo meno è comune anche per gli ISP bloccare il traffico in uscita e-mail (SMTP porta 25) di default per prevenire lo spam. Parleremo di più in un prossimo articolo sulle e-mail, alcuni ISP hanno questa restrizione e altri no. Sapere se il vostro provider internet ha problemi ad accettare server fatti in casa è più importante nella scelta di un ISP per la velocità o il prezzo.

IP statici vs IP dinamici

Non importa quale tipo di connessione Internet tu abbi, comunque ti viene assegnato un indirizzo IP pubblico. Se questo indirizzo cambia ogni volta che si ti colleghi a Internet (o ogni volta che il modem DSL o modem via cavo si reimposta ), si ha un IP dinamico. Se questo IP rimane lo stesso, è statico. Anche se si possono tenere server su entrambi IP statici e dinamici, con un IP dinamico, si dovrà passare attraverso un servizio DNS dinamico in modo che ogni volta che il tuo IP cambia a casa, chi si vuole collegare con te su Internet otterrà il nuovo IP in modo automatico. Purtroppo, a causa della natura come il DNS lavora, non si può sempre garantire (anche con TTL basso), che tutti potranno vedere il tuo IP nuovo in modo tempestivo, quindi per una gestione di server a casa seria, vi consiglio di procurarvi uno o più IP statici.

Velocità di connessione

In genere quando si giudica la qualità della connessione Internet a casa, devi prima guardare la velocità di download. Gli utenti domestici in media fanno maggiore affidamento alla larghezza di banda di download rispetto alla banda in upload come metrica di velocità di connessione, e molti collegamenti a Internet a casa sono molto più alti in download che in upload. Una volta che si avvia un server di hosting a casa, tuttavia, vi accorgerete che la loro performance è governata più dalla vostra banda in upload. Se si desidera ospitare servizi di larghezza di banda a casa, come i siti di streaming web audio o video o immagini, potrebbe essere necessario aggiornare o cambiare la connessione a Internet per ottenere più banda in upload. D’altra parte, il DNS o server di posta elettronica  probabilmente andrà bene anche con una bassa larghezza di banda upload. Sebbene la banda in upload può essere più lenta a casa che in un centro dati, la maggior parte delle connessioni a casa non paghi per la quantità di banda.

Modem e gateway

Oggi molte persone che vorrebbero ospitare un server a casa loro accedono a Internet attraverso  modem DSL o via cavo. Questo dispositivo si connette ad una linea telefonica e fornisce una porta di rete. I modem più sofisticati in realtà possono agire come un gateway, e anche un server DHCP, e gestire  IP interni dei computer in casa, mentre l’IP pubblico risiede nel modem stesso.

Se pensate di avere computer più all’interno della vostra rete di casa, mi raccomando di avere il modem configurato in modo da agire più come un ponte, in modo che l’indirizzo pubblico IP venga assegnato a un dispositivo che è sotto il vostro controllo, che si tratti di un router di casa o un computer della rete. La maggior parte dei router oggi (inclusi i modem DSL e via cavo, se il tuo ISP ti dà la possibilità di configurarlo) hanno la possibilità di effettuare il port forwarding in modo che il traffico in entrata  per il server Web (porte 80 e 443) possa essere reindirizzato all’ indirizzo IP interno. Più controllo si ha a disposizione con il gateway, più si avrà  flessibilità  nel modo in cui si imposta il server e la rete. Se si sceglie di utilizzare un router consumer, invece di trasformare un computer in gateway, si potrebbe scegliere un router che può essere riconfigurato con custom firmware Linux (come OpenWRT o DD-WRT), in modo da poter avere la flessibilità che si avrebbe se si utilizzasse un server Linux come gateway.

Sicurezza, firewall e Virtual IPS

Naturalmente, ogni volta che si apre su di un servizio a Internet, c’è il pericolo di attacchi. In questi giorni, non importa se si dispone di un server solo su Internet gli attacchi sono praticamente automatici, bisogna garantire  la sicurezza. Assicurarsi che qualsiasi servizio e il server che si mette a disposizione su Internet sia tenuto aggiornato con le ultime patch di sicurezza. Se avete la possibilità di configurare un firewall sul router gateway, bloccate tutte le porte in entrata di default e consentite solo porte che sai di aver bisogno siano aperte. Se avete intenzione di aprire un server SSH alla rete Internet, assicurati di controllare le password, e assicurarti che siano difficili da indovinare (o meglio, disabilitare le password del tutto e utilizzare l’autenticazione basata su chiave è ancora meglio). Sia a casa che le imprese con server Linux sono attaccati a causa di cattive password.

Se vi capita di utilizzare un dispositivo Linux come router con iptables, anche se ci sono concesse più indirizzi IP pubblici, si può scegliere se si preferisce avere tutto il traffico Internet attraverso un router in modo da controllare tutto e in modo più sicuro.  Supponiamo che ho un paio di indirizzi IP fissi, compresi tra 66.123.123.63 e 66.123.123.64, e un gateway router che è configurato per rispondere a questi due indirizzi IP su eth0. Ho un server interno alla mia rete con un indirizzo IP 192.168.0.7. Siccome ha un IP interno, vorrei inoltrare il traffico sul mio gateway destinato a 66.123.123.64 a 192.168.0.7. Il primo modoè quello di fare inoltrare il traffico solo su determinate porte a questo host. Per esempio, se si trattasse di un server Web, potrebbe venirmi voglia di trasmettere le porte 80 e 443 solo a questo server. Potrei usare questi comandi iptables sul mio router gateway per il port forwarding:

iptables-t nat-A PREROUTING-d 66.123.123.64-i eth0-p
↪ tcp-m tcp – dport 80-j DNAT – to-destination 192.168.0.7:80
iptables-t nat-A PREROUTING-d 66.123.123.64-i eth0-p
↪ tcp-m tcp – dport 443-j DNAT – to-destination 192.168.0.7:443

Questa è anche una soluzione comune, se si ha un solo indirizzo IP pubblico, ma più server in rete, in modo da poter mandare avanti  server Web interno e le porte e-mail a un altro server di posta elettronica. Questo metodo funziona, ma dovrò essere sicuro di aggiungere nuove regole per il firewall ogni volta che voglio trasmettere un altra porta. Se io semplicemente voglio avere il router davanti a tutto il traffico destinato a 66.123.123.64 192.168.0.7, ho utilizzo questi due comandi:

iptables-t nat-A PREROUTING-d 66.123.123.64-i eth0-j
↪ DNAT – to-destination 192.168.0.7
iptables-t nat-A POSTROUTING-s 192.168.0.7-o eth0-j
↪ SNAT – to-source 66.123.123.64

Si noti che poiché questi comandi inoltrano tutto il traffico host interno, indipendentemente dalla porta, devo fare in modo di bloccare le regole del firewall sul server interno.

Questo dovrebbe essere abbastanza per poter iniziare con la configurazione della rete in casa in modo che entro poco, sarete pronti a creare il primo servizio. Nel prossimo articolo, guarderemo i DNS e come registrare un dominio e come configurare il proprio server DNS casa.