30
Cursul 8 8 - Serviciul de e mail 26 noiembrie 2009

Cursul 8 - andrei.clubcisco.ro

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cursul 8 - andrei.clubcisco.ro

Cursul 8

8 -Serviciul de e mail

26 noiembrie 2009

Page 2: Cursul 8 - andrei.clubcisco.ro

26.11.2009 2

Moto

● The difference between e-mail and regular mail is that computers handle e-mail, and computers never decide to come to work one day and shoot all the other computers.

Page 3: Cursul 8 - andrei.clubcisco.ro

26.11.2009 3

Cuprins

● Serviciul de e-mail: protocoale, servere, clien iț

● Postfix: configurare de bază i configurare avansatăș

● Alias-uri, domenii virtuale, căsu e po tale virtualeț ș

● Courier-IMAP

● Maildrop

Page 4: Cursul 8 - andrei.clubcisco.ro

26.11.2009 4

E-mail

● Killer-app of the Internet în anii ‘80

● Mesaje text

– MIME – Multipurpose Internet Mail Extensions

● SMTP, POP3, IMAP

● MTA, MUA, MSA, MDA/LDA

● mbox/Maildir

Page 5: Cursul 8 - andrei.clubcisco.ro

26.11.2009 5

Func ionare e-mailț

● Adrese de e-mail: username@hostname

– un mesaj trebuie să ajungă în căsu a po tală a utilizatorului username de ț șpe serverul de mail asociat domeniului hostname

● Transmitere mesaj

– MUA ([email protected])

– MUA -> MTA/server SMTP mail.alpha.org (MX pentru alpha.org)

– cerere DNS către ns.beta.org

● host -t MX beta.org ns.beta.org

– MTA/server SMTP mail.alpha.org -> MTA/server SMTP mail.beta.org (MX pentru beta.org)

– stocare mesaj în căsu a po tală a lui bobț ș

Page 6: Cursul 8 - andrei.clubcisco.ro

26.11.2009 6

Func ionare e-mail (2)ț

● Recep ionare mesajț

– MUA ([email protected])

– MUA -> server de mail/IMAP/POP3

– server IMAP/POP3 -> căsu a po tală a utilizatorului bobț ș

● Avantaje POP3

– simplu, consum reduse de resurse (relevan ă scăzută în zilele noastre)ț

– mesaje offline ( i în IMAP)ș

● Avantaje IMAP

– accesare de mesaje direct pe server

– consum redus de bandă

Page 7: Cursul 8 - andrei.clubcisco.ro

26.11.2009 7

Servere de mail

● MTA – Mail Transfer Agent, mail relay

– SMTP, portul 25

– livrează i primesc mesajeș

– surse pentru MTA: MUA, alt MTA

– destina ii pentru MTA: căsu ă po tală, alt MTAț ț ș

– Sendmail, Postfix, Exim, Dovecot, Microsoft Exchange Server

● Server IMAP/POP3

– IMAP – 143 (993)

– POP3 – 110 (995)

– Courier-IMAP, Courier-POP, Cyrus IMAP, WU-IMAP, Microsoft Exchange Server

Page 8: Cursul 8 - andrei.clubcisco.ro

26.11.2009 8

Clien i de mail i MDAț ș

● Clien i de e-mailț

– SMTP, POP3, IMAP

– extra: news, aggregators

– Alpine, Mutt, mailx

– Microsoft Outlook, Mozilla Thunderbird, Evolution, KMail, Claws

– webmail

● MDA – Mail Delivery Agent

– livrarea mesajului

– sursă: MTA

– destina ie: căsu ă po talăț ț ș

– caz de folosire: server de e-mail fără suport Maildir i căsu ă po tală în ș ț șformat Maildir

Page 9: Cursul 8 - andrei.clubcisco.ro

26.11.2009 9

Formate de căsu e po taleț ș

● Intrări în sistemul de fi iere pentru stocarea mesajelorș

– RFC 2822

● mbox

– un singur fi ier stochează mesajeleș

– /var/[spool/]mail/$username

● Maildir

– fiecare mesaj este stocat într-un fi ierș

– trei subdirectoare

● tmp – temporar (necesar pentru sincronizarea fi ierului în new)ș

● new – fi iere noiș

● cur – fi iere accesate de clientul de e-mailș

Page 10: Cursul 8 - andrei.clubcisco.ro

26.11.2009 10

Postfix

● Wietse Venema, IBM Research

● Apărut în 1999, activ dezvoltat

● Suport pentru TLS, mbox, Maildir, Milter etc.

● Portabil pe majoritatea Unix-urilor

● Alternativă la Sendmail

– security design

● Un set de daemoni/procese/delivery agents

– least privilege

– chroot

– master (root), smtpd, cleanup, bounce, trivial-rewrite

● Delivery agents

– smtp, local, lmtp, virtual, pipe

Page 11: Cursul 8 - andrei.clubcisco.ro

26.11.2009 11

Interac iune cu Postfixț

● /etc/init.d/postfix start|stop|restart|reload

● /etc/postfix/main.cf

– man 5 postconf

– /usr/share/postfix/main.cf.dist

● Editare de mână

● Folosire postconf

– postconf – listare directive de configurare

– postconf -e ‘nume_directiva = valore_directiva’

● postconf -e ‘mydestination = alpha.ro’

● /etc/postfix/master.cf

– configurare daemoni

– man 5 master

Page 12: Cursul 8 - andrei.clubcisco.ro

26.11.2009 12

Configurare de bază Postfix

● myhostname

– numele sta iei (în general format DNS – FQDN)ț

● mydomain

– local internet domain name (de obicei $myhostname fără prima parte)

● myorigin

– numele de domeniu ata at mesajelor transmise de pe sistemul localș

● mynetworks

– re elele de la care se primesc mesajeț

● mydestination

– domeniile pentru care mesajele livrate sunt stocate/livrate local

Page 13: Cursul 8 - andrei.clubcisco.ro

26.11.2009 13

Configurare de bază Postfix (2)

● inet_interfaces

– interfe ele pe care se ascultă conexiuniț

● relay_domains

– domeniile (nelocale) pentru care se face relay

● home_mailbox

– căsu a po talăț ș

– pathname relative to user’s home directory

– implicit, /var/[spool/]mail/user

– Mailbox – format mbox

– Maildir/ - format Maildir (se termină cu /)

Page 14: Cursul 8 - andrei.clubcisco.ro

26.11.2009 14

Utilitarul mail

● Miniclient de e-mail

● Pachetul mailx

● Citire mesaje

– mail

– cite te din „post office” (/var/maill/) (suprasris de variabila de mediu MAIL)ș

– h pentru ajutor

● Scriere mesaje

– echo „message” | mail -s $subject -c $carbon_copy $destination

– echo „hello” | mail -s hello -c [email protected] [email protected]

Page 15: Cursul 8 - andrei.clubcisco.ro

26.11.2009 15

Configurare alias-uri

● Redirectări de mesaje (forwarding)

● Tabele de aliasuri

– alias_name: destionation_name1, destination_name2

● Editarea se face în fi iere textș

– utilitare specifice ob in fi iere index (binare) .db (sau .dbm) folosite de MTAț ș

● Compatibilitate sendmail

– directivele alias_maps i alias_database în Postfixș

– /etc/aliases, /etc/aliases.db

– newaliases

– postalias /etc/aliases

● Configurare per user

– ~/.forward

● con ine adresele către care va fi livrat mesajulț

Page 16: Cursul 8 - andrei.clubcisco.ro

26.11.2009 16

Configurare domenii virtuale

● Domenii multiple

● Domenii multiple partajate

– mydestination = alpha.org beta.org gogu.com dorel.ro

● Domenii separate

– virtual_alias_domains = example.com mydomain.com

● DIFERITE de domeniile din $mydestination

– virtual_alias_maps = hash:/etc/postfix/virtual

– cat /etc/postfix/virtual

[email protected] alice

[email protected] bob

– postmap /etc/postfix/virtual

Page 17: Cursul 8 - andrei.clubcisco.ro

26.11.2009 17

Configurare căsu e po tale virtualeț ș

● Domenii multiple separate

● Conturi non-Unix pentru utilizatori

– virtual_mailbox_domains = gamers.com

– virtual_mailbox_maps = hash:/etc/postfix/vmailbox

– virtual_mailbox_base = /usr/local/mail/

– virtual_uid_maps = static:1013

– virtual_gid_maps = static:8

● # cat /etc/postfix/vmailbox

[email protected] gamers.com/florin/

● # postmap /etc/postfix/vmailbox

● $virtual_uid_maps i $virtual_gid_maps corespund utilizatorului i ș șgrupului ce de in $virtual_mailbox_baseț

Page 18: Cursul 8 - andrei.clubcisco.ro

26.11.2009 18

Address rewriting

● append_at_myorigin (default yes)

– user -> user@$myorign

● append_dot_mydomain (default yes)

– user@host -> user@host.$mydomain

● Canonical address mapping

– canonical_maps = /etc/postfix/canonical

– sender_canonical_maps = /etc/postfix/sender_canonical

– recipient_canonical_maps = /etc/postfix/recipient_canonical

– # cat /etc/postfix/canonical

– alice alice.johnson

● masquerade_domains = gogu.ro

[email protected] -> [email protected]

Page 19: Cursul 8 - andrei.clubcisco.ro

26.11.2009 19

Suport SASL în Postfix

● Simple Authentication and Security Layer

● libsasl2-2 sasl2-bin libsasl2-modules

● smtpd_sasl_local_domain =

● smtpd_sasl_auth_enable = yes

● smtpd_sasl_security_options = noanonymous

● broken_sasl_auth_clients = yes

● smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

● # cat /etc/postfix/sasl/smtpd.conf

● pwcheck_method: saslauthd

● mech_list: plain login

Page 20: Cursul 8 - andrei.clubcisco.ro

26.11.2009 20

Configurare saslauthd

● mkdir -p /var/spool/postfix/var/run/saslauthd

● /etc/default/saslauthd

● OPTIONS=”-c -m /var/spool/postfix/var/run/saslauthd”

● START=yes

● MECHANISMS=”shadow”

● /etc/init.d/saslauthd restart

Page 21: Cursul 8 - andrei.clubcisco.ro

26.11.2009 21

Suport TLS în Postfix

● smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

● smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

● smtpd_use_tls=yes

● smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

● smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

● That’s it!

Page 22: Cursul 8 - andrei.clubcisco.ro

26.11.2009 22

Configurare suport Maildir

● home_mailbox=Maildir/

● se comentează directiva mailbox_command

● creare director Maildir

– maildirmake Maildir/

● maildirmake este instalat cu diferite pachete (maildrop, courier-imap etc.)

Page 23: Cursul 8 - andrei.clubcisco.ro

26.11.2009 23

Courier-IMAP

● apt-get install courier-imap

● /etc/courier/imapd

● Suport SSL

– apt-get install courier-imap-ssl

– /etc/courier/imapd-ssl

Page 24: Cursul 8 - andrei.clubcisco.ro

26.11.2009 24

Suport căsu e po tale virtuale în Courier-IMAPț ș

● authdaemond

● /etc/courier/authdaemonrc

– authmodulelist=”authuserdb” (userdatabase)

● userdb (comandă)

– /etc/courier/userdb

– userdb info set uid=1005 gid=8 home=/usr/local/mail/games.com/florin mail=/usr/local/mail/games.com/florin

– userdbpw -md5 | userdb info set systempw

– makeuserdb

Page 25: Cursul 8 - andrei.clubcisco.ro

26.11.2009 25

Configurare client

● New Account

● Adresă

● Nume de utilizator

● SMTP Server (sending e-mail)

– use authentication (SASL)

– TLS enable

● IMAP Server (receiving e-mail) (993)

– SSL enable

Page 26: Cursul 8 - andrei.clubcisco.ro

26.11.2009 26

SMTP Gateway

● Transmiterea mesajelor către alte domenii

● relay_domains = gogu.org dorel.org

● transport_maps = hash:/etc/postfix/transport

● # cat /etc/postfix/transport

● gogu.org smtp:[internal.gogu.org]

● dorel.org smtp:[internal.dorel.org]

● postmap /etc/postfix/transport

Page 27: Cursul 8 - andrei.clubcisco.ro

26.11.2009 27

Maildrop

● MDA

● apt-get install maildrop

● /etc/maildroprc

● $HOME/.mailfilter

● $HOME/.mailfiters/

● Integrare cu Postfix

– mailbox_command = /usr/local/bin/maildrop -d ${USER}

Page 28: Cursul 8 - andrei.clubcisco.ro

26.11.2009 28

Configurare Maildrop

    if ( /^Delivered­To: postfix­[email protected]/ )

    {

        cc "Maildir/.Lists.Postfix"

        DELTAG=1

        xfilter "subjadd [PF]"

        to "Maildir"

    }

    if ( $LINES > 100 )

        to Mail/IN.Large

Page 29: Cursul 8 - andrei.clubcisco.ro

26.11.2009 29

Cuvinte cheie

● e-mail

● MTA, MUA, MSA, MDA

● SMTP, POP3, IMAP

● mbox, Maildir

● /var/mail/

● Postfix

● /etc/postfix/main.cf

● /etc/postfix/master.cf

● postconf

● Mail

● aliasuri

● /etc/aliases

● newaliasias, postalias

● domenii virtuale

● căsu e po tale virtualeț ș

● Postmap

● SASL

● saslauthd

● TLS

● Courier-IMAP

● SSL

● userdb

● Maildrop

Page 30: Cursul 8 - andrei.clubcisco.ro

26.11.2009 30

Întrebări

?