spinto dalla curiosita', dalla voglia di sperimentare, e dal costo non proprio economico di un server dedicato, ho deciso di farmi il server personale, e fin qui' non e' nulla di eclatante, ne di difficile,basta avere un pc da dedicare come server, un cd di linux (io ho scelto ubuntu-server) e installare in modo quasi automatico tutto quanto, incluso il server LAMP (apache - php - mysql - mail)
nella scelta del server, dovete considerare la potenza di calcolo di cui avete bisogno, e i consumi elettrici.
Nel parametro consumi elettrici, considerate anche la possibilita' di utilizzare un portatile, normalmente a parita' di prestazioni hanno consumi nettamente ridotto, se un pc normale consuma mediamente 150 W ora in 24 ore diventano 3,6 kw , parimenti un portatile che consuma 40W diventano 960W....
La potenza di calcolo che si ha di bisogno se si vuole fare un server ftp, peer to peer o http, e' irrisoria, specie considerato che di norma un server casalingo non ha centinaia di utenti, io ho optato per un portatile con pentium III a 1000 mhz, implementando la gestione energetica sia dell' hard disk, che della cpu, e difficilmente la cpu viene occupata per piu' del 10% , solo nel caso in cui utilizzo il server per mettere in streaming la webcam arrivo al 40 % , o se metto in streaming uno stream mpeg2 convertendolo in mpeg4 arrivo all' 80%
purtroppo non essendo una ditta,col mio provider (e anche con molti altri) non vi e' modo di avere un' ip statico , quindi come fare???
semplice, gia ' esistono i servizi gratuiti di dns dinamico ( www.dyndns.com) che pero' danno un dominio di III livello (pincopallo.xxxx.yyy - ciaociao.xxxx.yyy) , quindi , vi accontentereste di davidea.serveftp.com se la vostra risposta e' si, be' siete gia arrivati, basta registrarvi gratuitamente ed i gioco e' fatto.
a chi volesse intraprendere questa strada, mi sento di raccomandare l' installazione sul server dello script di aggiornamento automatico dell' ip e non fidarsi del router, io con un cisco 1700 , ultimo ios , sono stato bannato perche' il router generava troppi update inutili, anche se era configurato correttamente....
chi invece vuole qualcosa in piu' , avere il proprio sito con un nome a dominio piu' professionale (dominio di II livello) , del tipo www.davidea.it , puo' utilizzare i servizi a pagamento sempre di dyndns, infatti danno la possibilita' tramite il servizio di custom dns (25 $) di associare il proprio indirizzo ip ad un nome a dominio qualsiasi e di effettuare con le stesse modalita' del servizio gratuito l' aggiornamento del cambio indirizzo ip, inoltre si possono configurare tutti i sottodomini che si vuole, eventualmente anche legandoli ad ip differenti, quindi un vero e proprio pannello dns a tutti gli effetti.
qui' ora una nota per i meno esperti (anche io lo ero quando mi sono avventurato, e non e' che ora sia molto piu' esperto!!!) , per avere un sito con nome a dominio, si ha bisogno di 3 cose:
- il nome a dominio
- i server dns autoritativi
- il server o lo spazio su di un server
Chi come me' all' inizio ha aperto un sito su aruba o su altri gestori simili, non nota cio' , ma se si vuole proseguire per la strada server personale su adsl di casa, e' necessario chiarire la cosa.
il nome a dominio e' www.davidea.it - www.poigps.com - www.salirossu.it - www.elservice.it
i server dns autoritativi, sono quei server, che dicono a tutti gli altri server dns, a quale indirizzo ip corrisponde il vostro dominio, in quanto non tutti gli utenti utilizzano gli stessi server, di solito chi configura i pc, tende ad usare i server del provider adsl, e ogni provider ha i suoi, quindi a questi server qualcuno dovra' comunicare quale e' il vostro indirizzo (in realta' e' il contrario, il server dns da voi utilizzato, non sapendo che rispondere, andra' a chiedere a chi e' piu' in alto di lui!!), indirizzo che voi preventivamente gli avrete comunicato, ecco quindi che voi comunicate il vostro ip al server autoritativo e lui lo comunica agli altri!!
ma qualcuno di voi si potrebbe chiedere, e tutti gli altri siti, fanno questa trafila ??? si, tutti i siti hanno un server autoritativo, ma ho posto l' accento sull' argomento perche' i siti su indirizzo ip statico, non necessitano di usare dyndns come server dns autoritativo, e quindi possono usare un server dns messo a disposizione da chi gli vende il nome a dominio, per noi invece c'e' qualche piccola differenza.
La differenza sta' nel fatto che chi ha un server con IP statico, puo' utilizzare qualsiasi server dns autoritativo, il quale dira' ai server dns che lo interrogano di memorizzare la risposta per 24 ore o piu', a noi questa memorizzazione puo' provocare grossi fastidi, essendo che il nostro indirizzo IP puo' cambiare in qualsiasi momento, se venisse memorizzato in cache, rimarremmo irraggiungibili per tutto il tempo della memorizzazione! Quindi dobbiamo utilizzare dei server dns autoritativi che diano un basso tempo di cache, un minuto o poco piu!
Inoltre i server normali, prevedono il cambio IP (visto che e' una cosa rarissima) tramite apposito pannello di controllo, mentre noi necessitiamo di effettuarlo tramite script per poter automatizzare la procedura (tranne che non volete esser svegliati alle 4 del mattino per connettervi e cambiare manualmente l' indirizzo!!!)
qualcun' altro potrebbe chiedersi, ma perche' ti ostini con dyndns?
perche' e' uno dei piu' grossi a livello mondiale, non conosco fornitori italiani per tale servizio.
Inoltre nelle scelte che dobbiamo fare siamo vincolati dal dominio di 1 livello che volete realizzare, per i .com .biz . org etc... potete acquistare tutto direttamente da dyndns senza complicarvi la vita, ma se scegliete un .it sarete costretti ad acquistarli separati in quanto dyndns non vende domini .it ....
quindi dovrete acquistare il dominio (io mi sono fornito da http://www.domainregister.it/ per soli 7 euro + iva) completare con loro la registrazione, compilare la L.A.R. (Lettera di Assunzione di Responsabilita'), acquistare il servizio custom dns da dyndns (25 us$) e inserire come name server i valori
- ns1.mydyndns.org
- ns2.mydyndns.org
- ns3.mydyndns.org
- ns4.mydyndns.org
- ns5.mydyndns.org
e non gli indirizzi IP, come erroneamente avevo fatto.
Quindi sul vostro server configurarlo per gestire il sito corrispondente al vostro dominio, io ho installato il pannello di controllo ISPCONFIG che e' totalmente grauito (a differenza di Cpanel e altri) e quindi sotto di esso con un solo click (sono veramente pochi!!) ho creato il sito, gli utenti, le email, le caselle ftp , il database e tutto quanto!!!!!
In tutto cio' ce' da considerare una forte pecca, della quale non ci renderemo conto subito, ma quasi!
Essendo un dominio su IP dinamico, alcuni ISP tendono a ragione a bloccare le email provenienti da questi indirizzi, (onde evitare massicce dosi di spam) e quindi non e' possibile spedire email direttamente a questi domini, e libero.it e' uno di essi, mentre ad esempio tiscali.it o telecomitalia.it accetta tranquillamente le mail.
Cio' non e' immediatamente ovvio, ne molto conosciuto!
quindi un bel giorno, mi sono ritrovato a non capire perche' le mail che avevo spedito giorni prima non erano arrivate a destinazione, e dalle statistiche webalizer mi ritrovavo con valori molto alti di traffico in uscita, indagando , ho visto che tra i log in /var/log/mail.log mi ritrovo il seguente errore :
host mxlibero2.libero.it[212.52.84.84] refused to talk to me: 554-mailrelay02.libero.it 554 Your access to this mail system has been rejected due to the sending MTA's poor reputation. If you believe that this failure is in error, please contact the intended recipient via alternate means.
errore che neanche loro sanno cosa sia, poi chiaccherando con degli amici, mi hanno suggerito di controllare se il mio ip e' tra quelli bannati perche' dinamici, ed effettuando un rapido controllo su http://www.spamhaus.org/zen/ viene fuori che l' indirizzo fa' parte delle Policy Block List (PBL), anzi vi e' pure una spiegazione che richiama all' uso da parte di wind di tale policy!! quindi, niente mail dirette tramite il mio server!!! cio' mi sarebbe stato molto comodo per spedire le foto agli amici, essendo il server in lan locale, usandolo come smtp, il mio client di posta avrebbe spedito immediatamente mega e mega di foto all' smtp, il quale poi si sarebbe fatto carico con i comodi della lentezza dell' adsl di inviarli agli utenti finali, ma cio' lo posso fare per tutti gli amici tranne per quelli che hanno una casella di posta su libero!!!!
Altro problema da tenere in considerazione e' quello che in molti su internet, cercano server da aprire per farsi i loro comodi (ad essere molto buoni) e quindi quasi subito ho iniziato a vedere che nei log in /var/log/auth.log erano presenti delle righe tipo
sshd[14566]: pam_unix(ssh:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.95.228.154 user=root
sshd[14566]: Failed password for root from 218.95.228.154 port 49160 ssh2
sshd[14568]: Invalid user apple from 218.95.228.154
sshd[14568]: pam_unix(ssh:auth): check pass; user unknown
sshd[14568]: pam_unix(ssh:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.95.228.154
sshd[14568]: Failed password for invalid user apple from 218.95.228.154 port 51179 ssh2
sshd[14572]: pam_unix(ssh:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.95.228.154 user=root
sshd[14572]: Failed password for root from 218.95.228.154 port 53158 ssh2
sshd[14576]: Invalid user brian from 218.95.228.154
sshd[14576]: pam_unix(ssh:auth): check pass; user unknown
che mi riportavano il fatto che qualcuno si stava divertendo a tentare di accedere in ssh al mio server senza averne i diritti tentando un' attacco a dizionario, debbo dire che inizialmente la mia fortuna e' stata quella di usare una robusta policy per le password con caratteri numerici, segni d' interpunzione, caratteri maiuscoli e minuscoli, lunghezza non inferiore a 12 caratteri e non e' una parola di senso compiuto, ma in ogni caso la cosa non e' piacevole, quindi documentandomi con san google, ho trovato uno scriptino "denyhost" che controlla i file di log, e non appena vede tentativi non riusciti d' accesso superiori al valore da voi impostato banna l' ip dal quale provengono per un periodo di tempo da voi scelto, mettendo fine al tentativo di attacco.
Cio' ha una sola controindicazione, se dall' esterno tentate di entrare in ssh sul vostro server non vi potete permettere di sbagliare l' autenticazione se no vi banna!!!!!! (mi e' capitato , specie sotto linux dove il comando ssh nomeserver invia in automatico il nome utente locale come username, e magari tale nomeutente e' diverso da quello che voi avete usato sulla vostra macchina, e vi siete dimenticati di specificarlo col parametro -l nomeutente!!!!)