La semplice procedura da seguire per tenere un server di posta in casa.
Ovvero come addomesticare un dns per far funzionare un mail server tenuto in casa sull’adsl a ip dinamico.
Mantenere un server di posta esposto su internet con il un dominio comprato da noi è facile: basta pagare qualcuno che lo faccia.
L’alternativa, per il vero smanettone, è fare tutto da solo, ma sorgono alcuni di problemi, niente di insormontabile, ma un server di posta è un sistema piuttosto delicato, più che altro perché ci sono un sacco di componenti che devono interagire tra di loro, che vanno tenuti aggiornati, con un antivirus ed un antispam decenti per evitare che le nostre caselle di posta siano sommerse da spazzatura di ogni tipo, e soprattutto…
…dove la mettiamo FISICAMENTE ???

Guardando in giro per la rete ho sempre trovato scritto che, avendo una linea adsl casalinga con ip dinamico, non si poteva mettere in linea un mail server.
In effetti, così su due piedi, saltano all’occhio due problemi principali:
1) il software e l’hardware, che macchina devo usare e che software uso ?
2) l’indirizzo ip dinamico, come lo gestisco ?
Per l’hardware tutto deve essere commisurato a quanti domini e utenti avrà il nostro server e soprattutto quanta posta dovrà smistare.
Spannometricamente, partendo dal presupposto che abbiamo una adsl asimmetrica che difficilmente più forte di mezzo megabit al secondo (512 Kbs/sec) e che si vuole mettere in linea un mail server personale per se e qualche amico diciamo che una macchina virtuale montata nel pc di casa può essere sufficiente, della serie “Se sta acceso è sufficiente“.
Per il software abbiamo a disposizione un certo numero di candidati, molti su linux gratuiti e liberi, altri per windows, ma in questo caso sono tutti più o meno a pagamento, tranne uno che mi pare interessante e che proverò e di cui scriverò prossimamente.
Io per le mie prove ho usato Qmail e un dominio per adesso non uso, il mio server di posta quindi sarà raggiungibile all’indirizzo “mail.spippolatori.net“.
Ho installato Qmail in una macchina virtuale con Linux CentoOS 5.0 nel pc di casa mia, ed ho impostato il mio firewall sempre Linux ma una Debian Lenny, per fare il port forward delle porte necessarie al corretto funzionamento del mail server.
La posta viaggia usando alcune porte ben precise:
la porta 25 (SMTP) serve per ricevere le e-mail dagli utenti del mio domino “spippolatori.net” che saranno poi inviate ad altri domini esterni o ad altri utenti del dominio stesso.
sempre la porta 25 serve per ricevere le e-mail di altri server di posta i cui utenti mandano le email ai MIEI utenti
la porta 110 (POP3) che serve per scaricare la posta dal server al client (outlook, thunderbird etc etc)
la porta 143 (IMAP) Imap è uno splendido sistema che gestisce la posta senza scaricarla, e permette di lavorare anche in più persone sulla stessa casella contemporaneamente, provatela su Gmail funziona alla grande
la porta 80 per la webmail, per poter leggere ed inviare la posta usando solo il browser
Tutti questi protocolli posso essere usati anche in forma cifrata usando le porte 465 per il Secure SMTP, la 993 per il Secure POP3, la 993 per il Secure IMAP e 443 per la webmail cifrata su HTTPS.
Ovviamente non avendo comprato un certificato da una certification autority si presenteranno una serie di warning che avvertono che il certificato è self signed, ma per i nostri scopi di test chissenefrega
Tutti questi protocolli sono supportati dal mio Qmail senza problemi, una volta aperte le porte di cui sopra sul firewall il server è pronto a fare i suo lavoro verso il mondo.
Solo che il resto del mondo non ha la più pallida idea di dove sia il mio server di posta.
Infatti qui sorge il secondo problema: l’indirizzo ip dell’Alice flat 7 mega.
La mia connessione casalinga gode di quello che viene comunemente detto IP DINAMICO, ovvero l’indirizzo ip che il mio provider mi assegna ogni volta che mi collego ad internet e soprattutto, quando mi scollego e mi ricollego, cambia.
Potrei comprare un ip fisso, ma telecom con i privati fa un sacco di storie e sopratutto vuole un secchio di soldi.
Quindi è improponibile gestire un qualunque servizio in questo modo se non ricorriamo ad nomi mnemonici invece che ad indirizzi ip che dovrebbero essere fissi.
I passi da fare per arrivare al nostro server sono diversi: come prima cosa ci si deve registrarsi ad uno dei servizi gratuiti che permettono di collegare il nostro ip dinamico ad un nome di domino di terzo livello, e grazie ad un programma che risiede sul nostro computer di casa ogni volta che il nostro ip varia il programma avverte il server del servizio dove ci siamo registrati ed il nostro nome viene aggiornato.
Io per queste cose uso preferibilmente NO-IP, dove ci si deve registrare gratis e si può prendere un nome di domini di terzo livello, io per questa prova ho preso
servermail.no-ip.org
Ho installato il programma nel firewall linux e l’ho attivato, dopo pochi secondi ero già registrato, quindi se qualcuno nel mondo manda un ping verso servermail.no-ip.org si vedrà rispondere il mio indirizzo ip di casa, se mi scollego e ricollego l’indirizzo ip viene aggiornato in pochi secondi.
A questo punto dobbiamo obbligatoriamente spendere qualche euro, necessari a registrare un dominio di secondo livello, tipo il mio spippolazione.net che costa, sui servizi very very low price, una dozzina di euro iva inclusa all’anno, per queste cose, dove serve gestire SOLO il nome uso preferibilmente TopHost.
TopHost non ha una grande nomea come provider internet, ma se questo è vero o meno non mi interessa, sulle loro macchine non tengo nulla, mi serve solo per la gestione dei nomi di dominio, e soprattutto, ottimo per i nostri scopi, ha una caratteristica piuttosto interessante: ha una gestione dei DNS veramente spettacolare, un nuovo nome inserito sul dominio non si propaga nelle canoniche 24/48 ore ma è disponibile nel giro di pochi minuti ed inoltre, cosa fondamentale per il nostro progetto, permette la gestione dei record CNAME che non ho trovato in altri provider low cost.
Adesso devo fare una piccola parentesi sulla gestione del DNS per spiegare cosa serve a un server di posta.
Il DNS è il Domain Name System, il servizio IP che dato il nome di un sito ne fornisce l’indirizzo ip.
Quando dal nostro browser apriamo il sito www.qualchesito.com il browser non è in condizione di trovare da solo il server web che ospita www.qualchesito.com, quindi chiede al DNS:
“DNS, per cortesia, mi dici l’indirizzo ip del server web www.qualchesito.com”
Il dns interroga per prima cosa le sue tabelle interne, se non lo trova se va’ un po’ in giro per internet, chiede agli amici, fa’ qualche telefonata e poi, quando ha trovato l’informazione necessaria risponde al browser:
“‘Mio caro browser, il sito lo trovi all’indirizo ip 209.85.135.99″ (ip di fantasia)
Quello che il DNS ha appena fatto è stato risolvere un record di tipo A, una semplice corrispondenza nome <-> ip per un host e niente altro, di solito, se il DNS è una macchinetta vispa ci mette una frazione di secondo, nel migliore dei casi, pochi millesimi.
Poi ci sono i record di tipo CNAME che sono uguali ai record A tranne che per il fatto che invece di rispondere un indirizzo IP rispondo un altro nome, dopo di che viene fatta una seconda richiesta al DNS (tanto è gratis) per avere la risoluzione dell’indirizzo ip del secondo nome e solo a quel punto viene restituito l’IP, se non viene restituito un altro nome CNAME e cosi via.
Poi ci sono i record di tipo MX, che sono simili ai record A ma vengono usati solo per la posta, l’acronimo MX infatti sta per Mail eXchange. Simili ma non uguali, infatti mentre il record ha una corrispondenza univoca possono esistere più record MX per un dominio, questi record hanno infatti un numero che ne identifica la priorità, se il primo server risulta irraggiungibile viene utilizzato il secondo e cosi via.
Ci sono altri tipi di record, ma per i nostri usi di postini non servono.
Attenzione: se un host ha solo il record A non può essere usato come mail server (ma può essere un perfetto web server), mentre se non ha record A ma solo l’MX si, lo dico per chiarezza, una volta avevo scritto male il record A nel pannello di controllo del domino e la posta funzionava lo stesso, ma non si apriva la webmail
A questo punto, ricapitolando, per avere la corretta raggiungibilità del mio server di posta in casa devo:
1) avere il programma di no-ip che mi tiene aggiornato il mio indirizzo ip dinamico al nome servermail.no-ip.org
2) nel pannello di controllo del sito spippolatori.net di TopHost devo solo impostare
un record CNAME che assegna a mail.spippolatori.net il record servermail.no-ip.org
un record MX che indica come mail.spippolatori.net come server mail di priorità piu’ alta (numero più piccolo).
QUI potete vedere uno screen-shot del pannello configurato
Come ho già detto la priorità serve per poter usare più server mail, ogni indirizzo di server di posta ha un numero associato, per primo si cerca di utilizzare il server con il numero più basso, se il server non è raggiungibile si usa quello immediatamente sopra e così via.
TopHost per default inserisce due suoi mail server, uno al numero 10 e al 20, noi metteremo mail.spippolatori.net al 5, per essere avanti a tutti.
A questo punto dovrebbe essere tutto a posto.
Faccio un giro di prova:
1) usando un account di gmail mando un’e-mail al mio server di posta ad una mail creata appositamente, poniamo a prova@spippolatori.net
2) il server di gmail guarda l’indirizzo e-mail del destinatario, il nostro prova@spippolatori.net, ne prende la parte a destra della @ (il dominio, spippolatori.net nel caso nostro) e ne richiede il record MX al suo DNS
3) il DNS risponderà il record MX con priorità più bassa, cioè mail.spippolatori.net, gmail chiede la risoluzione dell’indirizzo IP di mail.spippolatori.net
4) il DNS risponde con il CName: servermail.no-ip.org
5) il server di posta di gmail chiede la risoluzione di servermail.no-ip.org, no-ip risponde l’ip del mio computer di casa.
6) gmail adesso è in grado di raggiungere casa mia, si infila per la porta 25 del firewall, e depone l’email per prova@spippolatori.net in mano al Qmail che riposa nella macchina virtuale.
Per quello che invece riguarda l’invio usando il server di posta in casa si deve tenere presente una cosa: la stragrande maggioranza di server di posta nel mondo non accetterà MAI una mail proveniente da un server di posta attestato su un indirizzo ip dinamico, nemmeno pregando in aramaico antico, perchè penserà, e al 99% delle volte ha ragione, che si tratti di un pc infettato da un bot che spara spam.
Per questo dovremo impostare nel nostro server di posta una cosa che si chiama SmartHost.
Usare lo smarthost significa che tutta le e-mail che il nostro server di posta di casa deve spedire non le manderà al server di posta del destinatario come usuale, ma le passerà senza nemmeno guardare a chi vanno, ad un altro server di posta, e sarà questo secondo server a curare la consegna vera e propria.
Nel mio caso di Alice 7 mega devo mettere come smarthost il server di posta che il mio abbonamento Alice mi consente di usare.
Ogni provider ha il suo, in questo modo il server di posta di destinazione si troverà raggiunto da un server con un full qualified name valido ed accetterà l’email.
Mi pare di non essermi dimenticato nulla. Se avete domande o osservazioni sono qui.
Happy mailing
miii ragazzi che pazienza che hai!
hai spiegato perfino la risoluzione dei nomi
grandioso, ottima guida
grande guida!
eh, non e’ che l’ho scritto di getto, ci lavoro su’ da qualche giorno
Il post non l’ho letto ma volevo chiederti se mi presentavi la postina.
Procedura da seguire per mettere un server di posta in casa……
Ovvero come addomesticare un dns per far trovare il mail server che tieni in casa sull’adsl a ip dinamico…
Mantenere un server di posta esposto su internet con il un dominio comprato da noi è facile: basta pagare qualcuno che lo faccia.
L…
Scusami se faccio spam ma se server c’è il mio CentOS5 + QmailToaster Mailserver Setup – simple howto a disposizione per completezza del tuo e in genere tutti gli articoli su qmail
Byez
P.S. Concordo con k76 sulla pazienza
Ottima pazienza e ottima guida.
Gia’ che ci sono (e l’ho letta tutta) ti faccio notare un paio di erroretti ortografici
)
)
dominio per adesso non uso = non E’ IN uso (se non sbaglio volevi dire questo)
La posta viaggia usato alcune porte ben precise = *USANDO
Imap è splendido sistema = UNO splendido (so che eri eccitato a parlare di IMAP
per spiegare cosa server a un server di posta = *SERVE (errore classico tra sistemisti, spesso lo faccio anche io
Salot
@Dvd, si Davide, spamma pure
@Shark, eh, non hanno ancora inventato un correttore ortrografico per i miei Orrori di ortografia, di solito passo 1/3 del tempo a scrivere e 2/3 a correggere. e non sempre ce la faccio
, comuqnue per quel dominio “non uso” è corretto, perche’ NON LO USO _IO_, poi in effetti non e’ anche IN USO.
Ottima spiegazione, molto facile da comprendere (in alcuni punti semplicistica ma efficace) soprattutto sulla parte dns.
Scusa, una curiodsita’.
Perche’ hai usato centos in una macchina virtuale quando normalmente utilizzi debian?
Sai che esistono anche per debian i pacchetti ed i toaster di qmail?
@Piccolo Principe: certo che e’ semplicistica, di guide serie ne esistono a iosa in rete, non era mia intenzione scrivere un’altra, io volevo solo spiegare un certo procedimento ed ho parlato dei dns relativi a quello semplificando al massimo, se poi si incuriosisce ed approndisce tanto meglio
@huan per due motivi:
1) perche’ la Vm l’avevo gia’ pronta, l’ho compressa, l’ho messa su una chiavetta usb, l’ho portata a casa e l’unica cosa che ho dovuto fare e’ stato cambiare l’ip della lan e creare il dominio
2) perche’ che toaster esiste anche per debian lo so’ adesso
un url ce l’hai ? e comunque la versione per ContOS funziona assai bene, e poi quando l’ho montata la prima volta avevo Dvd a cui rompere eventualmente le balle
Urka , ottimo lavoro . io preferisco usare la sequenza postfix – courier – amavis e postgrey per fare il lavoro.
Credo che vista la vicinanza dovremo in tutti i modi trovare il tempo per una birra ed uno scambio di idee.
Dema
Eh, in linux i server di posta e gli editor sono scelte personali
Per la birra ben volentieri, io fin oa un po’ di tempo addietro, quasi tutti i venerdi, mi trovavo con amici al Cerruti a Monsummano o altrimenti in un posto a scelta tua.
Fra un mesetto spero di essere libero da mogli zoppicanti e riprendere le vecchie abitudini
ehm io spippolerei la postina.
asd
Ottima guida. Siamo sicuri che “mamma” telecom (e altri) non filtra la porta 25? Avevo sentito che c’era anche questo problema, almeno in passato (sempre per politica anti-spam dei vari ISP). Magari adesso le cose sono cambiate oppure dipende da provider a provider?
Scusa ma ti faccio notare un altro Orrore di Ortografia = “sto” e “sta” vanno scritti SENZA accento!
ciao e continua così
A due giorni fa’ no, quello che ho raccontato in quest’articolo l’ho provato veramente di persona, ho scambiato mail tra un account dal server a casa altri account, il mio di lavoro, altri di tin e wind e uno di gmail.
Tutto andava alla grande.
Grazie per le correzioni
Ciao,
documento dagli spunti interessanti
Solo una domanda perché fare un CNAME quando puoi usare direttamente nel campo MX servermail.no-ip.org?
Per la webmail, che usa il solo record A e che dell’MX non gli puo’ fregare di meno…
Ops… la webmail non l’avevo considerata
[...] completo da [...]
Ciao,
una domandina…ho un mio server di posta a casa, e l’unica cosa che non sono riuscito a fare è l’invio delle mail (proprio per l’ip dinamico).
Ho già registrato un dominio su no-ip esattamente come te e mi funziona tutto (colleziono le mail dai vari account di posta che ho con fetchmail e le consulto con roundcubesu server dovecot).
La domanda è quindi: il tuo mailserver, è mail come nome host e spippolatori.net come domain sulla configurazione centOS, giusto?
E come relay usi out.alice.it (io uso postfix). Poi effettui le configurazioni nei record DNS per le entry MX e CNAME su TopHost e il gioco è fatto? (il prezzo annuo è davvero molto basso).
grazie
>è mail come nome host e spippolatori.net come domain sulla configurazione centOS,
si
>E come relay usi out.alice.it (io uso postfix). Poi effettui le configurazioni
>nei record DNS per le entry MX e CNAME su TopHost e il gioco è fatto?
si, notare che l’out della posta con i dns non ha nulla a che vedere, se non per la risoluzione di out.alice.it
non ti funziona ? hai qualche errore da postare ?
no, nessun errore, solo che non riuscivo a gestire in/out con il mio dominio (ovviamente) senza il completamento che hai proposto tu.
Adesso provvedo ed in qualche giorno torno qui e ti dico.
Sei un grande
Grande guida!
Solo un dettaglio grammaticale:
> e al 99% delle volte ha ragione [...]
sarebbe “a ragione”
Ciao!
“ha” come avere vuole l’H.
La mia frase era riferita al fatto che il 99% dei serer al mondo HA ragione nel non accettare la posta dalle macchine su connessioni su ip variabili
[...] Procedura da seguire per mettere un server di posta in casa… [...]
OK scusa, effettivamente ha senso…Mi suonava meglio:
“…perchè penserà, al 99% delle volte a ragione, che si tratti di un pc infettato”
Ciao
[...] Magari da usare in collegamento con QUESTO [...]
[...] screenshot, un vero gioiellino per i patiti della distro, chissà se spippolazione dopo aver usato ubuntu come mail server vorrà provare anche [...]
[...] è un’ottima guida che preso a questo indirizzo; veramente ben [...]
[...]Questa è un’ottima guida che preso a questo indirizzo; veramente ben fatta!![...]
Scusa. Ho seguito la tua SPLENDIDA guida (ho pure preso un bel dominio su tophost “www.spektre.it”.
Mi manca un passaggio: il mio mail server (pegasus) crea degli users, cui si accoda il dns, cioè @nomedominiodinamico.
Su tophost, ho seguito tutte le tue indicazioni, poi ho creato un alias, del tipo admin@spektre.it.
Se scrivo a admin@spektre.it, la mail viene spedita alla porta 25 del server. Ma il server, come fa a riconoscerla e a collegarla ad uno degli alias? Devo avere un alias “admin” e avere impostato come nome dns del server “spektre.it”?
Mi piace a bestia spippolare, ma sono un po’ inchiodato….
Grazie per l’aiuto che potrai dare.
Purtroppo non conosco pegasus, ma vado a logica: credo che tu debba creare un dominio @spektre.it e relativi utenti (non e’ detto che tu debba cancellare il tuo @nomedidominio dinamico, se pegasus lo richiede lascialo, ma non serve a niente) dentro pegasus, cosi’0 le email arriveranno direttamente a chi sono destinate, altrimenti vorrebbe dire che pegasus ha (o dovrebbe eavere secondo il tuo ragionamento) un meccanismo per collegare SUE caselle interne con altre caselle di domini pubblici, puo’ anche darsi ma allora e’ una cosa che fa’ pegasus in modo autonomo. Echange server di microsoft mi pare faccia cosi, ma lui noni e’ proprio un mail server canonico…
fammi sapere
Complimenti per la chiarezza!!!
complimenti per la guida.
una curiosità: se va via la corrente le email torneranno indietro?
Non subito.
I server che recapitano una email e trovano il server di destinazione down riprovano per un certo periodo di tempo, solo che si e’ esaurito questo lasso di tempo, che a seconda delle impostazioni puo’ essere anche di una settimana, la posta viene respinta al mittente…
Ciao, ho un piccolo problema. Ho tirato su un mail server con Debian+Postfix+Dovecot+Squirrelmail. Ho fatto il relay remoto su un smpt esterno. L’invio funziona a dovere, ovvero mando mail tra utenti interni alla macchina e anche verso l’esterno (appunto usando l’SMTP esterno). Ricevo correttamente mail inviate dalla macchina. Il problema e’ che non riesco a ricevere niente dall’esterno.
Avendo un dominio su tophost ho impostato il CNAME e l’MX come da te suggerito,ed ho collegato il mio IP dinamico ad un host no-ip.org. Ho messo la macchina in DMZ aprendo le porte TCP25,110 (servirebbe solo la 110 mi pare).
Ricevo solo un malinconico:
‘These recipients of your message have been processed by the mail server:
utente@indirizzo_del_mail_server; Failed; 5.4.0 (other or undefined network or routing status)’
Hai in mente cosa puo’ essere?!?!?
Grazie.
A lume di naso direi un problema di dns, dall’esterno il tuo record mx non e’ risolto come si deve.
Forse basta aspettare una giornata che i dns propaghino i record perche’ tutto funzioni…
[...] Ho gia’ parlato di TopHost loro per altri motivi. [...]
che mito!
ma anche se sono un po’ fuori tema potresti spiegarmi una cosa?
io ho un hosting con anhosting.com che ha il limite di 200 email all’ora nella spedizione. siccome voglio gestire le mailing list con mailman, e questi mongoli mi contano un messaggio spedito ad una ml di 180 persone come 180 messaggi, di fatto le ml diventano ingestibili. allora ho pensato, cambio il mx record del dns mettendo un altro server di posta.
visto che da cpanel lo posso fare… ma mi manca un pezzo sulla teoria… se io ho un email prova@sitoscemo.it, che fino a ieri funzionava perche’ i mx records di sitoscemo erano mail.sitoscemo.it, se gli cambio gli mx records in mail.sitofigo.it, che percorso fa la posta in entrata e in uscita?
cioe’, quando mando un email a prova@sitoscemo.it, il mio programma di posta chiede l’indirizzo ip ai dns giusto? e tutta la roba viene rediretta a sitofigo.it?
bo che casino.
sono cotto, mi spiace se il commento e’ scritto in modo poco comprensibile :-p
>che mito!
grazie
>ma anche se sono un po’ fuori tema potresti spiegarmi una cosa?
proviamo
>io ho un hosting con anhosting.com che ha il limite di 200 email all’ora nella spedizione. siccome voglio gestire le mailing list con mailman, e questi mongoli mi contano un messaggio spedito ad una ml di 180 persone come 180 messaggi, di fatto le ml diventano ingestibili. allora ho pensato, cambio il mx record del dns mettendo un altro server di posta.
loro contano le mail che consegnao, non quelle che mandi tu, il blocco di un numero finito di mail in un certo perido e’ una misura che mira a ridurre l’uso delle risorse del provider e alimitare lo spam nel caso un tupo pc sia infetto / trojanizzato o quant’altro…
> visto che da cpanel lo posso fare… ma mi manca un pezzo sulla teoria… se io ho un email prova@sitoscemo.it, che fino a ieri funzionava perche’ i mx records di sitoscemo erano mail.sitoscemo.it, se gli cambio gli mx records in mail.sitofigo.it, che percorso fa la posta in entrata e in uscita?
se non configuri il dominio sitoscemo sul server sitofigo non ottieni nulla.
>cioe’, quando mando un email a prova@sitoscemo.it, il mio programma di posta chiede l’indirizzo ip ai dns giusto? e tutta la roba viene rediretta a sitofigo.it?
>bo che casino.
>sono cotto, mi spiace se il commento e’ scritto in modo poco comprensibile :-p
si vede
i record mx devono puntare all’ip (o al cname, e’ la stessa cosa) del server di posta che contiene il tuo dominio
fossi in te cambierei provider, oppure comprerei un po’ di posto dove mettere il solo dominio di posta in un posto dove non ti limitino, alternativamente usi un client di posta che invece di appoggiarsi al tuo server recapita direttamente le email nel server di posta del destinatario, ti fai una lista dei tuoi Nmila destinatari e usi quello, magari ce ne sono altri, ma foxmail di certo lo fa’.
spero di esserti stato d’aiuto.
ciao, scusa la domanda, ma che differenza fa tra mail che consegnano e mail che mando io? Mi spiego, alla fine le mail che mando io, o il mio sito con tutti i suoi servizi, non corrispondono alla fine a quelli che consegna il server? Grazie
[...] dall
Mmmm davvero interessante !!!
non avevo mai pensato di fare una roba del genere
Ciao…Meravigliosa Guida . Ho usato tecniche diverse ma sono arrivato a conclusioni e risultati uguali ai tuoi …
OMANDA:
BRAVO
.
come hai risolto … ammesso che tu lo abbia fatto, il problema che negli header delle tue mail appare l’indirizzo IP DINAMICO del tuo server essendo un MTA e che quell’indirizzo sia nelle liste di server tipo spam haus?