Diferència entre revisions de la pàgina «E-mail Linux amb Sendmail»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
(Es crea la pàgina amb «Instal·lar un servidor de correu electrònic és una tasca complicada. Primera perquè el servei ja té la seva sofisticació, però també perquè degut a que amb la pr…».)
 
 
(Hi ha 8 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
 +
[[Imatge:Email1.jpg|dreta]]
 
Instal·lar un servidor de correu electrònic és una tasca complicada. Primera perquè el servei ja té la seva sofisticació, però també perquè degut a que amb la proliferació del SPAM, els sistemes operatius com Ubuntu es cuiden de que no es pugui enviar el correu de qualsevol manera.
 
Instal·lar un servidor de correu electrònic és una tasca complicada. Primera perquè el servei ja té la seva sofisticació, però també perquè degut a que amb la proliferació del SPAM, els sistemes operatius com Ubuntu es cuiden de que no es pugui enviar el correu de qualsevol manera.
  
 
Particularment, si volem enviar correu a internet, cal que els servidors de correu de tot el món ens reconeguin com a ''sender'' o "remitent" vàlid. Per aconseguir-ho hem de tenir una IP (mundial, no local) fixa, i el nostre ISP ens sol proporcionar una de dinàmica (a no ser que ho demanem, pagant un plus). Per tant, '''en aquesta pràctica només realitzarem un servei de correu a les màquines locals'''.
 
Particularment, si volem enviar correu a internet, cal que els servidors de correu de tot el món ens reconeguin com a ''sender'' o "remitent" vàlid. Per aconseguir-ho hem de tenir una IP (mundial, no local) fixa, i el nostre ISP ens sol proporcionar una de dinàmica (a no ser que ho demanem, pagant un plus). Per tant, '''en aquesta pràctica només realitzarem un servei de correu a les màquines locals'''.
  
 +
[[Imatge:Ubuntu1.png|thumb|esquerra|140px|Realitzada amb Ubuntu Server 10.04]]
 
Per fer-ho més realista configurarem un servidor DNS a la classe on tots els vostres servidors virtuals (FUNKYSERVER) hauran d'estar donats d'alta. Penseu, doncs, que els vostres servidors han de mirar aquest DNS per traduir els noms de les màquines dels vostres companys.
 
Per fer-ho més realista configurarem un servidor DNS a la classe on tots els vostres servidors virtuals (FUNKYSERVER) hauran d'estar donats d'alta. Penseu, doncs, que els vostres servidors han de mirar aquest DNS per traduir els noms de les màquines dels vostres companys.
  
 
Si voleu fer proves abans d'incloure el vostre nom al DNS del professor o no el teniu disponible també podeu posar el nom i IP de la màquina destí (en format FQDN) a l'arxiu /etc/hosts.
 
Si voleu fer proves abans d'incloure el vostre nom al DNS del professor o no el teniu disponible també podeu posar el nom i IP de la màquina destí (en format FQDN) a l'arxiu /etc/hosts.
  
 +
Nota important: aquest article s'ha provat amb una màquina virtual Ubuntu Server 10.04 o Lucid Lynx, que de nom inicial tenia FUNKYSERVER.
 +
 +
 +
<br /><br />
  
 
== Configuració bàsica per correu local dins la pròpia màquina (entre 2 usuaris) ==
 
== Configuració bàsica per correu local dins la pròpia màquina (entre 2 usuaris) ==
  
# [[Canviar el nom de la màquina Linux]] amb '''FQDN (Full Qualified Domain Name)'''. Els noms ''pelats'' com "funkyserver" no ens serveixen pel correu. Cal tenir una '''màquina amb nom complert dins d'un domini'''. L'exemple més senzill seria '''funkyserver.local'''. Però en aquesta pràctica cal que us busqueu un nom per la vostra màquina i que publicareu a través del servidor DNS del professor, per exemple, '''enric.local'''
+
# [[Canviar el nom de màquina GNU/Linux]] amb '''FQDN (Full Qualified Domain Name)'''. Els noms ''pelats'' com "funkyserver" no ens serveixen pel correu. Cal tenir una '''màquina amb nom complert dins d'un domini'''. L'exemple més senzill seria '''funkyserver.local'''. Però en aquesta pràctica cal que us busqueu un nom per la vostra màquina i que publicareu a través del servidor DNS del professor, per exemple, '''enric.local'''
 
#:NOTA: aquest pas es podria ometre i podria funcionar, però cada email tardaria uns 2 minuts en enviar-se i ralentitzaria la màquina de manera força exagerada. Si veieu que un servidor triga molt en arrencar aturant-se en el servei ''sendmail'' pot ser que s'arregli posant-li un FQDN.
 
#:NOTA: aquest pas es podria ometre i podria funcionar, però cada email tardaria uns 2 minuts en enviar-se i ralentitzaria la màquina de manera força exagerada. Si veieu que un servidor triga molt en arrencar aturant-se en el servei ''sendmail'' pot ser que s'arregli posant-li un FQDN.
# Crear al menys 2 usuaris: [[Crear usuaris en Linux]].
+
# Crear al menys 2 usuaris: [[Crear usuaris en Linux]]. Ens calen per poder enviar emails d'un usuari a l'altre.
 
# [[Instal·lar paquets en GNU/Linux Debian i derivats|Instal·lar]] els paquets següents:
 
# [[Instal·lar paquets en GNU/Linux Debian i derivats|Instal·lar]] els paquets següents:
 
#* '''sendmail''': serà el nostre servidor de correu sortint i entrant.
 
#* '''sendmail''': serà el nostre servidor de correu sortint i entrant.
Línia 20: Línia 26:
 
# Proveu a enviar emails d'un usuari a l'altre dins la mateixa màquina utilitzant el client ''alpine''.
 
# Proveu a enviar emails d'un usuari a l'altre dins la mateixa màquina utilitzant el client ''alpine''.
  
Si configurant aquestes passes el servidor no funciona, podeu consultar què ha passat amb el missatge enviat mirant l'arxiu '''/var/log/mail.info''' (o d'altres que estan a la mateixa carpeta). Per exemple amb la instrucció ''tail'' (cua) que ens mostra les darreres línies:
 
$ tail /var/log/mail.info
 
  
 +
Si configurant aquestes passes el servidor no funciona, podeu consultar què ha passat amb el missatge enviat mirant els arxius de log, que poden variar segons la versió però que solen ser:
 +
* '''/var/log/mail.log''' (aquest és el de la versió que ve amb la Ubuntu 12.04)
 +
* /var/log/mail.info (aquest solia ser el de la versió que ve amb la Ubuntu 10.04)
 +
* /var/log/mail.err
 +
...o d'altres que estan a la mateixa carpeta. Amb la instrucció '''tail''' (cua) que ens mostra les darreres línies:
 +
$ tail /var/log/mail.log
 +
 +
<br />
 +
 +
=== Proves ===
 +
Per comprovar que funciona prova d'enviar emails entre 2 usuaris. Hauràs de crear-ne al menys un (amb la comanda '''''adduser'''''). Pots enviar i rebre els emails quan et logues amb l'usuari utilitzant l'aplicació en mode text '''''alpine'''''.
 +
 +
ULL! el format dels emails és
 +
<usuari>@<maquina>.<domini>
 +
Per exemple, la meva màquina funkyserver l'he reanomenat (FQDN) a enric.local i tenia un usuari "funky". El seu email seria:
 +
 +
 +
<br />
  
 
== Configurar el correu entre 2 servidors ==
 
== Configurar el correu entre 2 servidors ==
  
# Doneu d'alta el vostre servidor al '''DNS del professor'''. El nom que heu triat per la màquina ha de ser el mateix que el què poseu al DNS.
+
# Els servidors de correu cal que es "coneguin" entre ells per poder-se enviar emails. Això ho podem fer de 2 maneres:
#: Com a alternativa podeu posar el nom de les màquines entre les que vulgueu enviar emails en els seus respectius arxius '''/etc/hosts'''.
+
## <strike>Donant d'alta el vostre servidor al '''DNS de l'institut'''. El nom que heu triat per la màquina ha de ser el mateix que el què poseu al DNS.</strike> (massa liós, millor el següent mètode)
# Configureu les respectives màquines perquè consultin el DNS del professor. [[Configurar DNS en GNU/Linux]].
+
## Indicant el nom de les màquines entre les que vulgueu enviar emails en els seus respectius arxius '''/etc/hosts'''.
# Obriu el port 25 (correu entrant) del ''sendmail'' per acceptar correu extern. Si no ho feu el
+
# Assegureu-vos que teniu configurat el servidor DNS, encara que haguem inclòs l'adreça del company en el /etc/hosts. Si no, el servidor d'email no funciona.
 +
# '''Obriu el port 25 (correu entrant)''' del ''sendmail'' per acceptar correu extern. Si no ho feu, el correu procedent d'una altra màquina no s'acceptarà.
 +
#:[http://ubuntuforums.org/showthread.php?t=1044835 Aquest article us pot servir]. Ull amb l'article, el què necessiteu està repartit en tot ell i té 2 pàgines. A grans trets cal modificar 2 línies (indicades al últim ''post'') del fitxer '''''sendmail.mc''''' i després cal reconstruir l'arxiu '''''sendmail.cf''''' a partir del primer amb la '''instrucció ''m4'''''. Això es fa així perquè l'arxiu ''sendmail.cf'' (que és el que el servidor utilitza) és molt complicat de tocar i sempre es fa a partir del primer.
 +
# Recordeu-vos de reiniciar el servei ''sendmail'' amb <pre>$ sudo service sendmail restart</pre>
 +
 
 +
=== Proves ===
 +
Comproveu que funciona el sistema enviant un email a una màquina d'un company de classe. És molt important que us tingueu registrats mútuament a l'arxiu /etc/hosts.
 +
 
 +
Recordeu també la sintaxi de l'adreça de correu:
 +
<usuari>@<maquina>.<domini>
 +
 
 +
Si no us funciona, teniu 2 opcions:
 +
*Mirar l'arxiu de registre (log) on queda la traça de totes les accions del ''sendmail'': <pre>$ tail /var/log/mail.info</pre>
 +
*Mirar els emails de l'usuari ''root'', allà també ens donarà informació si hi ha algun error en el sistema. A l'usuari remitent també li sol arribar un email amb informació que ens pot aclarir què està passant. LLEGIU-LO!
 +
 
 +
<br />
 +
 
 +
== Ampliacions de la pràctica ==
 +
* Configurar servei de consulta de correu POP3 o IMAP i configurar un client com el ''Thunderbird'', el ''Outlook'' o el ''Evolution''.
 +
* Enviar emails des de la línia de comandes (molt útil per realitzar ''scripts'').
 +
* Instal·lar una interfície web de correu com ''squirrelmail''.
 +
 
 +
<br />
 +
 
 +
== Configuració d'un servidor smarthost ==
 +
...TODO...
 +
 
 +
<br />

Revisió de 08:11, 9 gen 2015

Email1.jpg

Instal·lar un servidor de correu electrònic és una tasca complicada. Primera perquè el servei ja té la seva sofisticació, però també perquè degut a que amb la proliferació del SPAM, els sistemes operatius com Ubuntu es cuiden de que no es pugui enviar el correu de qualsevol manera.

Particularment, si volem enviar correu a internet, cal que els servidors de correu de tot el món ens reconeguin com a sender o "remitent" vàlid. Per aconseguir-ho hem de tenir una IP (mundial, no local) fixa, i el nostre ISP ens sol proporcionar una de dinàmica (a no ser que ho demanem, pagant un plus). Per tant, en aquesta pràctica només realitzarem un servei de correu a les màquines locals.

Realitzada amb Ubuntu Server 10.04

Per fer-ho més realista configurarem un servidor DNS a la classe on tots els vostres servidors virtuals (FUNKYSERVER) hauran d'estar donats d'alta. Penseu, doncs, que els vostres servidors han de mirar aquest DNS per traduir els noms de les màquines dels vostres companys.

Si voleu fer proves abans d'incloure el vostre nom al DNS del professor o no el teniu disponible també podeu posar el nom i IP de la màquina destí (en format FQDN) a l'arxiu /etc/hosts.

Nota important: aquest article s'ha provat amb una màquina virtual Ubuntu Server 10.04 o Lucid Lynx, que de nom inicial tenia FUNKYSERVER.




Configuració bàsica per correu local dins la pròpia màquina (entre 2 usuaris)[modifica]

  1. Canviar el nom de màquina GNU/Linux amb FQDN (Full Qualified Domain Name). Els noms pelats com "funkyserver" no ens serveixen pel correu. Cal tenir una màquina amb nom complert dins d'un domini. L'exemple més senzill seria funkyserver.local. Però en aquesta pràctica cal que us busqueu un nom per la vostra màquina i que publicareu a través del servidor DNS del professor, per exemple, enric.local
    NOTA: aquest pas es podria ometre i podria funcionar, però cada email tardaria uns 2 minuts en enviar-se i ralentitzaria la màquina de manera força exagerada. Si veieu que un servidor triga molt en arrencar aturant-se en el servei sendmail pot ser que s'arregli posant-li un FQDN.
  2. Crear al menys 2 usuaris: Crear usuaris en Linux. Ens calen per poder enviar emails d'un usuari a l'altre.
  3. Instal·lar els paquets següents:
    • sendmail: serà el nostre servidor de correu sortint i entrant.
    • alpine: és un client de correu per terminal. Com que estem en un servidor (sense entorn gràfic) podrem accedir al nostre correu amb la comanda "alpine" i un menú interactiu.
  4. Revisarem el fitxer /etc/mail/local-host-names , hi ha de figurar el nom de la màquina correcte.
  5. Reiniciarem el servei sendmail
    $ sudo service sendmail restart
  6. Proveu a enviar emails d'un usuari a l'altre dins la mateixa màquina utilitzant el client alpine.


Si configurant aquestes passes el servidor no funciona, podeu consultar què ha passat amb el missatge enviat mirant els arxius de log, que poden variar segons la versió però que solen ser:

  • /var/log/mail.log (aquest és el de la versió que ve amb la Ubuntu 12.04)
  • /var/log/mail.info (aquest solia ser el de la versió que ve amb la Ubuntu 10.04)
  • /var/log/mail.err

...o d'altres que estan a la mateixa carpeta. Amb la instrucció tail (cua) que ens mostra les darreres línies:

$ tail /var/log/mail.log


Proves[modifica]

Per comprovar que funciona prova d'enviar emails entre 2 usuaris. Hauràs de crear-ne al menys un (amb la comanda adduser). Pots enviar i rebre els emails quan et logues amb l'usuari utilitzant l'aplicació en mode text alpine.

ULL! el format dels emails és

<usuari>@<maquina>.<domini>

Per exemple, la meva màquina funkyserver l'he reanomenat (FQDN) a enric.local i tenia un usuari "funky". El seu email seria:

[email protected]


Configurar el correu entre 2 servidors[modifica]

  1. Els servidors de correu cal que es "coneguin" entre ells per poder-se enviar emails. Això ho podem fer de 2 maneres:
    1. Donant d'alta el vostre servidor al DNS de l'institut. El nom que heu triat per la màquina ha de ser el mateix que el què poseu al DNS. (massa liós, millor el següent mètode)
    2. Indicant el nom de les màquines entre les que vulgueu enviar emails en els seus respectius arxius /etc/hosts.
  2. Assegureu-vos que teniu configurat el servidor DNS, encara que haguem inclòs l'adreça del company en el /etc/hosts. Si no, el servidor d'email no funciona.
  3. Obriu el port 25 (correu entrant) del sendmail per acceptar correu extern. Si no ho feu, el correu procedent d'una altra màquina no s'acceptarà.
    Aquest article us pot servir. Ull amb l'article, el què necessiteu està repartit en tot ell i té 2 pàgines. A grans trets cal modificar 2 línies (indicades al últim post) del fitxer sendmail.mc i després cal reconstruir l'arxiu sendmail.cf a partir del primer amb la instrucció m4. Això es fa així perquè l'arxiu sendmail.cf (que és el que el servidor utilitza) és molt complicat de tocar i sempre es fa a partir del primer.
  4. Recordeu-vos de reiniciar el servei sendmail amb
    $ sudo service sendmail restart

Proves[modifica]

Comproveu que funciona el sistema enviant un email a una màquina d'un company de classe. És molt important que us tingueu registrats mútuament a l'arxiu /etc/hosts.

Recordeu també la sintaxi de l'adreça de correu:

<usuari>@<maquina>.<domini>

Si no us funciona, teniu 2 opcions:

  • Mirar l'arxiu de registre (log) on queda la traça de totes les accions del sendmail:
    $ tail /var/log/mail.info
  • Mirar els emails de l'usuari root, allà també ens donarà informació si hi ha algun error en el sistema. A l'usuari remitent també li sol arribar un email amb informació que ens pot aclarir què està passant. LLEGIU-LO!


Ampliacions de la pràctica[modifica]

  • Configurar servei de consulta de correu POP3 o IMAP i configurar un client com el Thunderbird, el Outlook o el Evolution.
  • Enviar emails des de la línia de comandes (molt útil per realitzar scripts).
  • Instal·lar una interfície web de correu com squirrelmail.


Configuració d'un servidor smarthost[modifica]

...TODO...