This shows you the differences between two versions of the page.
gsr:laboratoare:laborator-05 [2016/11/10 10:47] alexandru.carp |
gsr:laboratoare:laborator-05 [2016/11/10 13:28] (current) alexandru.carp [3. Configurare Courier IMAP și Maildir (2.5p)] |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ~~SHOWSOLUTION~~ | ||
====== Laborator 05: Serviciul de e-mail ====== | ====== Laborator 05: Serviciul de e-mail ====== | ||
===== 1. Trimiterea și citirea e-mail-urilor local (2p) ===== | ===== 1. Trimiterea și citirea e-mail-urilor local (2p) ===== | ||
- | *Comenzi/concepte/fișiere | + | *[01]. Instalați MTA-ul ''postfix''. Alegți opțiunile implicite în timpul asistentului de instalare. |
- | *postfix | + | |
- | + | ||
- | * /etc/aliases | + | |
- | *newaliases | + | |
- | *.forward | + | |
- | + | ||
- | ==== Tutorial ==== | + | |
- | + | ||
- | *Verificați dacă utilitarul ''mail'' este instalat. Comanda ''mail'' (sau ''mailx'') poate fi folosită pentru transmiterea sau recepționarea de email-uri, din linia de comandă. | + | |
- | *Folosiți ''mail'' pentru a trimite un mesaj din contul utilizatorului ''root'' către ''student''. | + | |
- | <code> | + | |
- | root@mjolnir:~# echo "Hello" | mail -s hello student | + | |
- | </code> | + | |
- | *Verificați căsuța poștală implicită a utilizatorului ''student'' (''/var/mail/student''). | + | |
- | <code> | + | |
- | student@mjolnir:~$ ls -l /var/mail/student | + | |
- | -rw-rw---- 1 student mail 590 Dec 14 20:45 /var/mail/student | + | |
- | + | ||
- | student@mjolnir:~$ cat /var/mail/student | + | |
- | From root@mjolnir.labs.cs.pub.ro Wed Dec 14 20:45:00 2011 | + | |
- | Return-path: <root@mjolnir.labs.cs.pub.ro> | + | |
- | Envelope-to: student@mjolnir.labs.cs.pub.ro | + | |
- | Delivery-date: Wed, 14 Dec 2011 20:45:00 +0200 | + | |
- | Received: from root by mjolnir.labs.cs.pub.ro with local (Exim 4.76) | + | |
- | (envelope-from <root@mjolnir.labs.cs.pub.ro>) | + | |
- | id 1Ratp6-0002VY-0X | + | |
- | for student@mjolnir.labs.cs.pub.ro; Wed, 14 Dec 2011 20:45:00 +0200 | + | |
- | To: student@mjolnir.labs.cs.pub.ro | + | |
- | Subject: hello | + | |
- | Message-Id: <E1Ratp6-0002VY-0X@mjolnir.labs.cs.pub.ro> | + | |
- | From: root <root@mjolnir.labs.cs.pub.ro> | + | |
- | Date: Wed, 14 Dec 2011 20:45:00 +0200 | + | |
- | + | ||
- | Hello | + | |
- | + | ||
- | + | ||
- | student@mjolnir:~$ mail | + | |
- | Mail version 8.1.2 01/15/2001. Type ? for help. | + | |
- | "/var/mail/student": 1 message 1 new | + | |
- | >N 1 root@mjolnir.labs Wed Dec 14 20:43 16/590 hello | + | |
- | & 1 | + | |
- | Message 1: | + | |
- | From root@mjolnir.labs.cs.pub.ro Wed Dec 14 20:43:19 2011 | + | |
- | Envelope-to: student@mjolnir.labs.cs.pub.ro | + | |
- | Delivery-date: Wed, 14 Dec 2011 20:43:19 +0200 | + | |
- | To: student@mjolnir.labs.cs.pub.ro | + | |
- | Subject: hello | + | |
- | From: root <root@mjolnir.labs.cs.pub.ro> | + | |
- | Date: Wed, 14 Dec 2011 20:43:19 +0200 | + | |
- | + | ||
- | Hello | + | |
- | + | ||
- | & q | + | |
- | Saved 1 message in /home/student/mbox | + | |
- | </code> | + | |
- | + | ||
- | ==== Exerciții ==== | + | |
- | + | ||
- | *[01]. Instalați MTA-ul ''postfix''. Alegți opțiunile implicite în timpul asistentului de instalare. | + | |
<solution -hidden -en><code> | <solution -hidden -en><code> | ||
root@mjolnir:~# apt-get install postfix | root@mjolnir:~# apt-get install postfix | ||
Line 95: | Line 37: | ||
</code></solution> | </code></solution> | ||
- | *[04]. Din contul utilizatorului ''alice'', trimiteți un mail catre ''bob'' cu subiectul ''salutare'' (Hint: ''mail'', curs slide 19) | + | *[04]. Din contul utilizatorului ''alice'', trimiteți un mail catre ''bob'' cu subiectul ''salutare'' |
<solution -hidden -en><code> | <solution -hidden -en><code> | ||
alice@mjolnir:~$ echo "Mesaj de la alice catre bob" | mail -s "Hello" bob | alice@mjolnir:~$ echo "Mesaj de la alice catre bob" | mail -s "Hello" bob | ||
Line 233: | Line 175: | ||
===== 2. Configurări Postfix (2p) ===== | ===== 2. Configurări Postfix (2p) ===== | ||
- | |||
- | *Comenzi/concepte/fișiere | ||
- | *postconf | ||
- | |||
- | ==== Tutorial ==== | ||
- | |||
- | *N/A | ||
- | |||
- | ==== Exerciții ==== | ||
<note important> | <note important> | ||
- | Toate configurările de Postfix vor fi realizate folosind postconf (Hint: curs, slide 17) | + | Toate configurările de Postfix vor fi realizate folosind postconf |
</note> | </note> | ||
Line 338: | Line 271: | ||
===== 3. Configurare Courier IMAP și Maildir (2.5p) ===== | ===== 3. Configurare Courier IMAP și Maildir (2.5p) ===== | ||
- | <note> | ||
- | Nu este subiect de examen! | ||
- | </note> | ||
- | *Comenzi/concepte/fișiere | ||
- | *maildirmake | ||
- | |||
- | ==== Tutorial ==== | ||
- | |||
- | *N/A | ||
- | |||
- | ==== Exerciții ==== | ||
*[01]. Instalați un pachet care să conțină utilitarul ''maildirmake''. | *[01]. Instalați un pachet care să conțină utilitarul ''maildirmake''. | ||
Line 427: | Line 349: | ||
*[06]. Instalați clientul de e-mail Mozilla Thunderbird. | *[06]. Instalați clientul de e-mail Mozilla Thunderbird. | ||
- | *[06].a. Hint: în Debian, Thunderbird a fost redenumit. Va trebui să găsiți numele pachetului care îl conține. | ||
<solution -hidden -en><code> | <solution -hidden -en><code> | ||
- | root@mjolnir:~# apt-get install icedove | + | root@mjolnir:~# apt-get install thunderbird |
</code></solution> | </code></solution> | ||
Line 459: | Line 380: | ||
</code></solution> | </code></solution> | ||
+ | ===== 4. Configurari avansate ===== | ||
- | ===== 4. Configurare suport SASL/TLS în Postfix (3p) ===== | + | *[01]. Alias-uri avansate: Configurați domeniile virtuale ''gsr-cs.ro'' și ''gsr-upb.ro'' și alias-urile: |
- | + | ||
- | *Comenzi/concepte/fișiere | + | |
- | *N/A | + | |
- | + | ||
- | ==== Tutorial ==== | + | |
- | + | ||
- | *N/A | + | |
- | ==== Exerciții ==== | + | |
- | + | ||
- | ==== 4.1 Configurați SASL pentru a autentifica utilizatorii care trimit mesaje prin Postfix (2.5p) ==== | + | |
- | + | ||
- | *[01]. Instalați pachetele ''libsasl2-2'', ''sasl2-bin'' și ''libsasl2-modules''. | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# apt-get install libsasl2-2 sasl2-bin libsasl2-modules | + | |
- | </code></solution> | + | |
- | + | ||
- | *[02]. Configurați Postfix (utilizând ''postconf'') pentru a utiliza SASL: | + | |
- | <code> | + | |
- | 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 | + | |
- | smtpd_recipient_restrictions = permit_sasl_authenticated,reject_unauth_destination | + | |
- | </code> | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# postconf -e 'smtpd_sasl_local_domain =' | + | |
- | + | ||
- | root@mjolnir:~# postconf -e 'smtpd_sasl_auth_enable = yes' | + | |
- | + | ||
- | root@mjolnir:~# postconf -e 'smtpd_sasl_security_options = noanonymous' | + | |
- | + | ||
- | root@mjolnir:~# postconf -e 'broken_sasl_auth_clients = yes' | + | |
- | + | ||
- | root@mjolnir:~# postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' | + | |
- | + | ||
- | root@mjolnir:~# /etc/init.d/postfix restart | + | |
- | Stopping Postfix Mail Transport Agent: postfix. | + | |
- | Starting Postfix Mail Transport Agent: postfix. | + | |
- | </code></solution> | + | |
- | + | ||
- | *[03]. În fișierul de configurare pentru SMTP (''/etc/sasl2/smtpd.conf'' - îl creați dacă nu există) configurați ca metodă de autentificare ''saslauthd'':<code> | + | |
- | pwcheck_method: saslauthd | + | |
- | mech_list: plain login | + | |
- | </code> | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# cat /etc/postfix/sasl/smtpd.conf | + | |
- | pwcheck_method: saslauthd | + | |
- | mech_list: plain login | + | |
- | </code></solution> | + | |
- | + | ||
- | *[04]. Creați directorul ''/var/spool/postfix/var/run/saslauthd''. Creați toate componentele căii, dacă acestea nu există. | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# mkdir -p /var/spool/postfix/var/run/sslauthd | + | |
- | </code></solution> | + | |
- | + | ||
- | *[05]. În fișierul ''/etc/default/saslauthd'' schimbați ''/var/run/saslauthd'' în ''/var/spool/postfix/var/run/saslauthd''. | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# cat /etc/default/saslauthd | grep /var/spool/postfix/var/run/saslauthd | + | |
- | # Example for chroot Postfix users: "-c -m /var/spool/postfix/var/run/saslauthd" | + | |
- | OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd" | + | |
- | </code></solution> | + | |
- | + | ||
- | *[06]. În fișierul ''/etc/default/saslauthd'' schimbați ''START=no'' în ''START=yes''. | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# cat /etc/default/saslauthd | grep START | + | |
- | START=yes | + | |
- | </code></solution> | + | |
- | + | ||
- | *[07]. În fișierul ''/etc/default/saslauthd'' schimbați ''MECHANISMS="pam"'' în ''MECHANISMS="shadow"''. | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# cat /etc/default/saslauthd | grep MECHANISMS | + | |
- | # Example: MECHANISMS="pam" | + | |
- | MECHANISMS="shadow" | + | |
- | </code></solution> | + | |
- | + | ||
- | *[08]. Reporniți daemonul de SASL. (Hint: ''/etc/init.d/saslauthd'') | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# /etc/init.d/saslauthd restart | + | |
- | Stopping SASL Authentication Daemon: saslauthd. | + | |
- | Starting SASL Authentication Daemon: saslauthd. | + | |
- | </code></solution> | + | |
- | + | ||
- | *[09]. Rulați comanda<code>dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd</code> | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd | + | |
- | </code></solution> | + | |
- | + | ||
- | *[10]. Adaugați utilizatorul ''postfix'' la grupul ''sasl''. | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# usermod -a -G sasl postfix | + | |
- | + | ||
- | root@mjolnir:~# groups postfix | + | |
- | postfix : postfix sasl | + | |
- | </code></solution> | + | |
- | + | ||
- | *[11]. Reporniți daemonul de SASL. (Hint: ''/etc/init.d/saslauthd'') | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# /etc/init.d/saslauthd restart | + | |
- | Stopping SASL Authentication Daemon: saslauthd. | + | |
- | Starting SASL Authentication Daemon: saslauthd. | + | |
- | </code></solution> | + | |
- | + | ||
- | *[12]. Reporniți daemonul Postfix. (Hint: ''/etc/init.d/postfix'') | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# /etc/init.d/postfix restart | + | |
- | Stopping Postfix Mail Transport Agent: postfix. | + | |
- | Starting Postfix Mail Transport Agent: postfix. | + | |
- | </code></solution> | + | |
- | + | ||
- | *[13]. Reconfigurați Thunderbird pentru a putea trimite mail-uri din contul ''alice'' (va trebui să configurați clientul pentru a utiliza autentificarea configurată mai devreme). | + | |
- | *[13].a. O configurare corectă a suportului de SASL în Postfix va duce la solicitarea introducerii parolei în momentul transmiterii mesajului. | + | |
- | *[13].b. Edit -> Account Settings -> Outgoing Server | + | |
- | *[13].c. Outgoing server name: gsr.ro | + | |
- | <solution -hidden -en><code> | + | |
- | *Edit -> Account Settings -> Outgoing Server -> Edit | + | |
- | *Description: gsr.ro | + | |
- | *Server Name: gsr.ro | + | |
- | *Port:25 | + | |
- | *Connection Security: STARTTLS | + | |
- | *Authentication method: Normal password | + | |
- | *User Name: alice | + | |
- | </code></solution> | + | |
- | + | ||
- | *[14]. Trimiteți din Thunderbird, contul lui alice, un email către bob@gsr.ro. Verificați sosirea mesajului în directorul ''/home/bob/Maildir/new''. | + | |
- | <solution -hidden -en><code> | + | |
- | bob@mjolnir:~/Maildir/new$ ls -l | + | |
- | total 4 | + | |
- | -rw------- 1 bob bob 603 Dec 14 23:11 1323897107.V1aI277M588830.mjolnir | + | |
- | + | ||
- | bob@mjolnir:~/Maildir/new$ cat 1323897107.V1aI277M588830.mjolnir | + | |
- | Return-Path: <alice@gsr.ro> | + | |
- | X-Original-To: bob@gsr.ro | + | |
- | Delivered-To: bob@gsr.ro | + | |
- | Received: from [127.0.0.1] (localhost [127.0.0.1]) | + | |
- | by gsr.ro (Postfix) with ESMTPSA id 8B3686F | + | |
- | for <bob@gsr.ro>; Wed, 14 Dec 2011 23:11:47 +0200 (EET) | + | |
- | Message-ID: <4EE9110F.1010104@gsr.ro> | + | |
- | Date: Wed, 14 Dec 2011 23:11:43 +0200 | + | |
- | From: Alice <alice@gsr.ro> | + | |
- | User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111114 Icedove/3.1.16 | + | |
- | MIME-Version: 1.0 | + | |
- | To: bob@gsr.ro | + | |
- | Subject: From alice within Thunderbird | + | |
- | Content-Type: text/plain; charset=ISO-8859-1; format=flowed | + | |
- | Content-Transfer-Encoding: 7bit | + | |
- | + | ||
- | Hello | + | |
- | </code></solution> | + | |
- | + | ||
- | + | ||
- | ==== 4.2 Configurați TLS pentru a deschide conexiuni securizate către Postfix (0.5p) ==== | + | |
- | + | ||
- | *[01]. Adaugati suport SSL pentru Courier IMAP. (Hint: ''apt-cache'') | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# apt-cache search courier | grep ssl | + | |
- | courier-imap-ssl - Courier mail server - IMAP over SSL | + | |
- | courier-mta-ssl - Courier mail server - ESMTP over SSL | + | |
- | courier-pop-ssl - Courier mail server - POP3 over SSL | + | |
- | courier-ssl - Courier mail server - SSL/TLS Support | + | |
- | + | ||
- | root@mjolnir:~# apt-get install courier-imap-ssl | + | |
- | </code></solution> | + | |
- | + | ||
- | *[02]. Configurați Thunderbird pentru a folosi configura conexiunea criptată către serverul de IMAP. | + | |
- | *[02].a. Edit -> Account Settings -> Server Settings -> Connection security | + | |
- | <solution -hidden -en><code> | + | |
- | *Edit -> Account Settings -> Server Settings -> Connection security -> SSL/TLS | + | |
- | </code></solution> | + | |
- | + | ||
- | *[03]. Verificați configurarea anterioară trimițând un email de la bob către alice@gsr.ro. Email-ul trebuie să sosească în Thunderbird. | + | |
- | <solution -hidden -en><code> | + | |
- | bob@mjolnir:~$ echo "Mesaj de la bob catre alice@gsr.ro - SSL" | mail -s "Test Thunderbird" alice@gsr.ro | + | |
- | </code></solution> | + | |
- | + | ||
- | + | ||
- | ===== 5. Maildrop (1.5p) ===== | + | |
- | + | ||
- | *Comenzi/concepte/fișiere | + | |
- | *N/A | + | |
- | + | ||
- | ==== Tutorial ==== | + | |
- | + | ||
- | *http://www.courier-mta.org/maildropex.html | + | |
- | + | ||
- | ==== Exerciții ==== | + | |
- | + | ||
- | *[01]. Instalați pachetul ''maildrop''. | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# apt-get install maildrop | + | |
- | </code></solution> | + | |
- | + | ||
- | *[02]. Configurați Postfix pentru a folosi Maildrop. (Hint: http://www.postfix.org/MAILDROP_README.html#indirect; curs, slide-ul 27; ''whereis maildrop'') | + | |
- | <solution -hidden -en><code> | + | |
- | root@mjolnir:~# postconf -e 'mailbox_command = /usr/bin/maildrop -d $USER' | + | |
- | + | ||
- | root@mjolnir:~# /etc/init.d/postfix restart | + | |
- | Stopping Postfix Mail Transport Agent: postfix. | + | |
- | Starting Postfix Mail Transport Agent: postfix. | + | |
- | </code></solution> | + | |
- | + | ||
- | *[03]. Adăugați contul ''bob'' în Thunderbird asociat utilizatorului ''bob'' de pe stația locală. Setările sunt aceleași cu ale contului lui alice (imap STARTTLS, postfix SSL/TLS) | + | |
- | <solution -hidden -en><code> | + | |
- | File -> New -> Mail Account | + | |
- | </code></solution> | + | |
- | + | ||
- | *[04]. Configurați fișierul ''~/.mailfilter'' din home-ul utilizatorului ''bob'' pentru ca: | + | |
- | *[04].a. mesajele care au mai mult de 3 linii să fie livrate în directorul ''Maildir/.big''. | + | |
- | *[04].b. mesajele care vin de la ''alice@gsr.ro'' (From: Alice <alice@gsr.ro>) să fie livrate în directorul ''Maildir/.alice''. | + | |
- | *[04].c. mesajele care conțin în subiect șirul ''test'' să fie livrate în directorul ''Maildir/.test''. | + | |
- | *[04].d. **Hint**: Curs, slide 28 | + | |
- | *[04].e. **Hint**: Creați directoarele ''big'', ''alice'' și ''test'' ca subdirectoare ale ''Inbox'' în interfața Thunderbird. Consecința este crearea (folosind IMAP) a directoarelor ''.big'', ''.alice'' și ''.test'' în ''Maildir/''. | + | |
- | *[04].f. **Hint**: Urmăriți log-urile (''/var/log/mail.log'') pentru descoperirea problemelor. | + | |
- | <solution -hidden -en><code> | + | |
- | bob@mjolnir:~$ cat .mailfilter | + | |
- | MAILDIR=$HOME/Maildir | + | |
- | + | ||
- | + | ||
- | if ( /^From: Alice <alice@gsr.ro>/ ) | + | |
- | { | + | |
- | to $MAILDIR/.alice | + | |
- | } | + | |
- | if ( $LINES > 3 ) | + | |
- | { | + | |
- | to $MAILDIR/.big | + | |
- | } | + | |
- | + | ||
- | if ( /^Subject: .*test.* /) | + | |
- | { | + | |
- | to $MAILDIR/.test | + | |
- | } | + | |
- | + | ||
- | to $MAILDIR/ | + | |
- | </code></solution> | + | |
- | + | ||
- | + | ||
- | ===== Bonus ===== | + | |
- | + | ||
- | *[01]. Alias-uri avansate: Configurați domeniile virtuale ''gsr-cs.ro'' și ''gsr-upb.ro'' și alias-urile (curs, slide 21): | + | |
*[01].a. ''contact@gsr-cs.ro -> alice'' | *[01].a. ''contact@gsr-cs.ro -> alice'' | ||
*[01].b. ''info@gsr-cs.ro -> bob'' | *[01].b. ''info@gsr-cs.ro -> bob'' | ||
Line 751: | Line 434: | ||
</code></solution> | </code></solution> | ||
- | *[03]. Configurați suport de căsuțe poștale virtuale în Courier pentru căsuțele poștale create mai sus. (Hint: curs, slide 25) | + | *[03]. Configurați suport de căsuțe poștale virtuale în Courier pentru căsuțele poștale create mai sus. |
<solution -hidden -en><code> | <solution -hidden -en><code> | ||
root@mjolnir:~# cat /etc/courier/authdaemonrc | grep "authmodulelist=" | root@mjolnir:~# cat /etc/courier/authdaemonrc | grep "authmodulelist=" |