Gestiunea Serviciilor de Rețea

Laborator 08 - E-mail

IMPORTANT Dacă un pachet nu este instalat iar un exercițiu face referire la acesta, instalați-l.

1. Trimiterea și citirea e-mail-urilor local (2p)

  • Comenzi/concepte/fișiere
    • postfix
    • mail
    • /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.
root@mjolnir:~# echo "Hello" | mail -s hello student
  • Verificați căsuța poștală implicită a utilizatorului student (/var/mail/student).
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

Exerciții

  • [01]. Instalați MTA-ul postfix. Alegți opțiunile implicite în timpul asistentului de instalare.
Rezolvare
root@mjolnir:~# apt-get install postfix
  • [02]. Inspectând conexiunile TCP active, aflați portul pe care ascultă serverul de mail conexiuni. (Hint: netstat)
  • [02].a Cum se numește executabilul asociat?
Rezolvare
root@mjolnir:~# netstat -lntp | grep ":25"
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      10866/master 
  • [03]. Adăugați utilizatorii alice, bob și charlie pe mașina fizică (adăugați utilizatorii în grupuri omonime, crețile-le directoare home și specificați /bin/bash ca shell implicit).
Rezolvare
root@mjolnir:~# groupadd alice

root@mjolnir:~# useradd -d /home/alice -m -g alice -s /bin/bash alice

root@mjolnir:~# echo "alice:alice" | chpasswd

root@mjolnir:~# groupadd bob

root@mjolnir:~# useradd -d /home/bob -m -g bob -s /bin/bash bob

root@mjolnir:~# echo "bob:bob" | chpasswd

root@mjolnir:~# groupadd charlie

root@mjolnir:~# useradd -d /home/charlie -m -g charlie -s /bin/bash charlie

root@mjolnir:~# echo "charlie:charlie" | chpasswd
  • [04]. Din contul utilizatorului alice, trimiteți un mail catre bob cu subiectul salutare (Hint: mail, curs slide 19)
Rezolvare
alice@mjolnir:~$ echo "Mesaj de la alice catre bob" | mail -s "Hello" bob
  • [05]. Din contul utlizatorului bob, verificați casuța de mesaje e-mail. (Hint: mail)
Rezolvare
bob@mjolnir:~$ mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/bob": 1 message 1 new
>N  1 alice@mjolnir.lab  Wed Dec 14 21:02   14/494   Hello
& 1
Message 1:
From alice@mjolnir.labs.cs.pub.ro  Wed Dec 14 21:02:52 2011
X-Original-To: bob
To: bob@mjolnir.labs.cs.pub.ro
Subject: Hello
Date: Wed, 14 Dec 2011 21:02:52 +0200 (EET)
From: alice@mjolnir.labs.cs.pub.ro

Mesaj de la alice catre bob

& 
  • [06]. Răspundeți (reply) la mesaj. Verificați că reply-ul a ajuns în contul lui alice. (Folosiți ? - semnul întrebării - pentru un ecran de ajutor)
Rezolvare
& r 1
To: alice@mjolnir.labs.cs.pub.ro bob@mjolnir.labs.cs.pub.ro
Subject: Re: Hello

Reply de la bob catre alice

.
Cc: 
&

alice@mjolnir:~$ mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/alice": 1 message 1 new
>N  1 bob@mjolnir.labs.  Wed Dec 14 21:04   16/611   Re: Hello
& 1
Message 1:
From bob@mjolnir.labs.cs.pub.ro  Wed Dec 14 21:04:31 2011
X-Original-To: alice@mjolnir.labs.cs.pub.ro
To: alice@mjolnir.labs.cs.pub.ro, bob@mjolnir.labs.cs.pub.ro
Subject: Re: Hello
In-Reply-To: <20111214190252.EB4346A@mjolnir.labs.cs.pub.ro>
Date: Wed, 14 Dec 2011 21:04:31 +0200 (EET)
From: bob@mjolnir.labs.cs.pub.ro

Reply de la bob catre alice

& 
  • [07]. Configurați un alias denumit contact care să redirecteze toate mesajele trimise pe adresa sa către utilizatorul alice. (Hint: /etc/aliases, newaliases)
Rezolvare
root@mjolnir:~# tail -n 1 /etc/aliases
contact:alice

root@mjolnir:~# newaliases
  • [08]. Trimiteți un e-mail de la bob la contact și verificați că mesajul a ajuns la alice. (Hint: mail)
Rezolvare
bob@mjolnir:~$ echo "Mesaj de la bob catre contact" | mail -s "Test alias contact" contact

alice@mjolnir:~$ mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/alice": 1 message 1 new
>N  1 bob@mjolnir.labs.  Wed Dec 14 21:11   14/515   Test alias contact
& 1
Message 1:
From bob@mjolnir.labs.cs.pub.ro  Wed Dec 14 21:11:30 2011
X-Original-To: contact
To: contact@mjolnir.labs.cs.pub.ro
Subject: Test alias contact
Date: Wed, 14 Dec 2011 21:11:30 +0200 (EET)
From: bob@mjolnir.labs.cs.pub.ro

Mesaj de la bob catre contact

&
  • [09]. Realizați un forward local (configurat din home-ul utilizatorului) astfel încât toate mesajele care sunt destinate utilzatorului student să ajungă la utilizatorul bob. (Hint: ~/.forward)
Rezolvare
student@mjolnir:~$ cat .forward 
bob
  • [10]. Trimiteți un e-mail de la alice către student, având la CC pe charlie. Verificați conturile de mail ale utilizatorilor student, bob și charlie.
Rezolvare
alice@mjolnir:~$ echo "Mesaj de la alice catre student si charlie" | mail -s "Test forward" -c charlie student

student@mjolnir:~$ mail
No mail for student

bob@mjolnir:~$ mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/bob": 1 message 1 unread
>U  1 alice@mjolnir.lab  Wed Dec 14 21:14   19/711   Test forward
& 1
Message 1:
From alice@mjolnir.labs.cs.pub.ro  Wed Dec 14 21:14:46 2011
X-Original-To: student
To: student@mjolnir.labs.cs.pub.ro
Subject: Test forward
Cc: charlie@mjolnir.labs.cs.pub.ro
Date: Wed, 14 Dec 2011 21:14:46 +0200 (EET)
From: alice@mjolnir.labs.cs.pub.ro

Mesaj de la alice catre student si charlie

& 

charlie@mjolnir:~$ mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/charlie": 1 message 1 new
>N  1 alice@mjolnir.lab  Wed Dec 14 21:14   15/563   Test forward
& 1
Message 1:
From alice@mjolnir.labs.cs.pub.ro  Wed Dec 14 21:14:46 2011
X-Original-To: charlie
To: student@mjolnir.labs.cs.pub.ro
Subject: Test forward
Cc: charlie@mjolnir.labs.cs.pub.ro
Date: Wed, 14 Dec 2011 21:14:46 +0200 (EET)
From: alice@mjolnir.labs.cs.pub.ro

Mesaj de la alice catre student si charlie

& 

2. Configurări Postfix (2p)

  • Comenzi/concepte/fișiere
    • postconf

Tutorial

  • N/A

Exerciții

Toate configurările de Postfix vor fi realizate folosind postconf (Hint: curs, slide 17)

  • [01]. Configurați Postfix astfel încât mesajele către gsr.ro să fie stocate local (Hint: mydestination). Mapați gsr.ro și mail.gsr.ro pe adresa ip 127.0.0.1.
Rezolvare
root@mjolnir:~# postconf | grep "mydestination ="
mydestination = mjolnir.labs.cs.pub.ro, localhost.labs.cs.pub.ro, , localhost

root@mjolnir:~# postconf -e 'mydestination = mjolnir.labs.cs.pub.ro, localhost.labs.cs.pub.ro, , localhost, gsr.ro'

root@mjolnir:~# /etc/init.d/postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.

root@mjolnir:~# head -n 3 /etc/hosts
127.0.0.1	localhost
127.0.1.1	mjolnir.labs.cs.pub.ro	mjolnir
127.0.0.1	gsr.ro mail.gsr.ro
  • [02]. Testați funcționarea directivei trimițând un email de la student către alice@gsr.ro. Verificați în contul lui alice mesajul primit de la student.
Rezolvare
student@mjolnir:~$ echo "Mesaj de la student catre alice@gsr.ro" | mail -s "Mesaj catre alice@gsr.ro" alice@gsr.ro

alice@mjolnir:~$ mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/alice": 1 message 1 new
>N  1 student@mjolnir.l  Wed Dec 14 21:26   14/524   Mesaj catre alice@gsr.ro
& 1
Message 1:
From student@mjolnir.labs.cs.pub.ro  Wed Dec 14 21:26:45 2011
X-Original-To: alice@gsr.ro
To: alice@gsr.ro
Subject: Mesaj catre alice@gsr.ro
Date: Wed, 14 Dec 2011 21:26:45 +0200 (EET)
From: student@mjolnir.labs.cs.pub.ro (Student CS)

Mesaj de la student catre alice@gsr.ro

& 
  • [03]. Configurați Postfix astfel încât directiva myhostname să fie gsr.ro.
Rezolvare
root@mjolnir:~# postconf | grep "myhostname ="
myhostname = mjolnir.labs.cs.pub.ro

root@mjolnir:~# postconf -e 'myhostname = gsr.ro'

root@mjolnir:~# /etc/init.d/postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
  • [04]. Configurați Postfix astfel încât directiva myorigin să aibă valoarea directivei myhostname. (Hint: $myhostname)
Rezolvare
root@mjolnir:~# postconf | grep "myorigin ="
append_at_myorigin = yes
myorigin = /etc/mailname

root@mjolnir:~# postconf -e 'myorigin = $myhostname'

root@mjolnir:~# /etc/init.d/postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
  • [05]. Testați funcționarea configurărilor anterioare trimițând un email de la alice către bob@gsr.ro.
Rezolvare
alice@mjolnir:~$ echo "Mesaj de la alice catre bob@gsr.ro" | mail -s "Catre bob@gsr.ro" bob@gsr.ro
  • [05].a. Verificați mesajul primit de bob. Ce apare trecut în dreptul sursei?
Rezolvare
bob@mjolnir:~$ mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/bob": 1 message 1 new
>N  1 alice@gsr.ro       Wed Dec 14 21:40   14/407   Catre bob@gsr.ro
& 1
Message 1:
From alice@gsr.ro  Wed Dec 14 21:40:30 2011
X-Original-To: bob@gsr.ro
To: bob@gsr.ro
Subject: Catre bob@gsr.ro
Date: Wed, 14 Dec 2011 21:40:30 +0200 (EET)
From: alice@gsr.ro

Mesaj de la alice catre bob@gsr.ro

& 

3. Configurare Courier IMAP și Maildir (2.5p)

  • Comenzi/concepte/fișiere
    • maildirmake

Tutorial

  • N/A

Exerciții

  • [01]. Instalați un pachet care să conțină utilitarul maildirmake.
  • [01].a. Căutați toate pachetele care conțin fișierul din /bin maildirmake. (Hint: apt-file, grep)
  • [01].b. Din lista de pachete găsită instalați pachetul de bază pentru courier. Alegeți opțiunile default din asistentul de instalare.
Rezolvare
root@mjolnir:~# apt-file search maildirmake | grep /usr/bin
courier-base: /usr/bin/maildirmake.courier
dovecot-core: /usr/bin/maildirmake.dovecot
maildrop: /usr/bin/maildirmake.maildrop

root@mjolnir:~# apt-get install courier-base
  • [02]. Configurați suportul de Maildir în Postfix. (Hint: curs, slide 22)
  • [02].a. home_mailbox = Maildir/
  • [02].b. mailbox_command =
Rezolvare
root@mjolnir:~# postconf | grep "home_mailbox ="
home_mailbox = 

root@mjolnir:~# postconf | grep "mailbox_command ="
mailbox_command = procmail -a "$EXTENSION"

root@mjolnir:~# postconf -e "home_mailbox = Maildir/"

root@mjolnir:~# postconf -# mailbox_command

root@mjolnir:~# postconf | grep "mailbox_command ="
mailbox_command = 
Rezolvare
root@mjolnir:~# apt-get install courier-imap

root@mjolnir:~# apt-get install libgamin0

root@mjolnir:~# /etc/init.d/courier-imap restart
Stopping Courier IMAP server: imapd.
Starting Courier IMAP server: imapd.
  • [04]. Inspectând conexiunile active, aflați portul pe care ascultă daemonul de IMAP. (Hint: netstat)
Rezolvare
root@mjolnir:~# netstat -lntp | grep courier
tcp6       0      0 :::143                  :::*                    LISTEN      14373/couriertcpd

root@mjolnir:~# getent services imap
imap2                 143/tcp imap
  • [05]. Creați un director de tip Maildir în home-ul utilizatorului alice (calea către director va trebui să fie /home/alice/Maildir/) (Hint: maildirmake)
  • [05].a. Atenție: După creare, directorul Maildir/ trebuie să fie deținut de utilizatorul alice.
Rezolvare
alice@mjolnir:~$ maildirmake /home/alice/Maildir

alice@mjolnir:~$ ls -l
total 8
drwx------ 5 alice alice 4096 Dec 14 22:07 Maildir
-rw------- 1 alice alice 1683 Dec 14 21:28 mbox
alice@mjolnir:~$ ls -lR Maildir/
Maildir/:
total 12
drwx------ 2 alice alice 4096 Dec 14 22:07 cur
drwx------ 2 alice alice 4096 Dec 14 22:07 new
drwx------ 2 alice alice 4096 Dec 14 22:07 tmp

Maildir/cur:
total 0

Maildir/new:
total 0

Maildir/tmp:
total 0
  • [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.
Rezolvare
root@mjolnir:~# apt-get install icedove
  • [07]. Configurați Thunderbird pentru a se conecta la serverul de IMAP local (localhost), în contul utilizatorului alice. Mesajele vor fi trimise, de asemenea, folosind MTA-ul local (localhost).
    • [07].a. Pentru pornirea clientului folosiți meniul Applications -> Internet.
    • [07].b. În Mail Account Setup folosiți butonul Manual Setup pentru a configura contul lui alice în mod avansat
      • [07].b.1. Adresa de email folosită va fi alice@gsr.ro iar parola va fi cea a utilizatorului alice.
      • [07].b.2. Server name va fi gsr.ro
      • [07].b.3 Connection security: none
      • [07].b.4 Authentication method: Password, transmitted insecurely
Rezolvare
* Applications -> Internet -> Icedove Mail/News
* Mail Account Setup
** Your name: Alice
** Email address: alice@gsr.ro
** Password: alice
* Continue
* Manual Setup
* Server name -> gsr.ro
* Connection security -> none
* Authentication method -> Password, transmitted insecurely
  • [08]. Trimiteți un e-mail de la bob către alice@gsr.ro și verificați că mesajul a ajuns în Thunderbird, în contul lui alice.
Rezolvare
bob@mjolnir:~$ echo "Mesaj de la bob catre alice@gsr.ro" | mail -s "Test Thunderbird" alice@gsr.ro

Thunderbird -> Get Mail.

4. Configurare suport SASL/TLS în Postfix (3p)

  • 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.
Rezolvare
root@mjolnir:~# apt-get install libsasl2-2 sasl2-bin libsasl2-modules
  • [02]. Configurați Postfix (utilizând postconf) pentru a utiliza SASL:
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
Rezolvare
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.
  • [03]. În fișierul de configurare pentru SMTP (/etc/postfix/sasl/smtpd.conf - îl creați dacă nu există) configurați ca metodă de autentificare saslauthd:
    pwcheck_method: saslauthd
    mech_list: plain login
Rezolvare
root@mjolnir:~# cat /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
  • [04]. Creați directorul /var/spool/postfix/var/run/saslauthd. Creați toate componentele căii, dacă acestea nu există.
Rezolvare
root@mjolnir:~# mkdir -p /var/spool/postfix/var/run/sslauthd
  • [05]. În fișierul /etc/default/saslauthd schimbați /var/run/saslauthd în /var/spool/postfix/var/run/saslauthd.
Rezolvare
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"
  • [06]. În fișierul /etc/default/saslauthd schimbați START=no în START=yes.
Rezolvare
root@mjolnir:~# cat /etc/default/saslauthd | grep START
START=yes
  • [07]. În fișierul /etc/default/saslauthd schimbați MECHANISMS="pam" în MECHANISMS="shadow".
Rezolvare
root@mjolnir:~# cat /etc/default/saslauthd | grep MECHANISMS
# Example: MECHANISMS="pam"
MECHANISMS="shadow"
  • [08]. Reporniti daemonul de SASL (Hint: /etc/init.d/saslauthd).
Rezolvare
root@mjolnir:~# /etc/init.d/saslauthd restart
Stopping SASL Authentication Daemon: saslauthd.
Starting SASL Authentication Daemon: saslauthd.
  • [09]. Rulați comanda
dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd
Rezolvare
root@mjolnir:~# dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd
  • [10]. Adaugați utilizatorul postfix la grupul sasl.
Rezolvare
root@mjolnir:~# usermod -a -G sasl postfix

root@mjolnir:~# groups postfix
postfix : postfix sasl
  • [11]. Reporniți daemonul de SASL. (Hint: /etc/init.d/saslauthd)
Rezolvare
root@mjolnir:~# /etc/init.d/saslauthd restart
Stopping SASL Authentication Daemon: saslauthd.
Starting SASL Authentication Daemon: saslauthd.
  • [12]. Reporniți daemonul Postfix. (Hint: /etc/init.d/postfix)
Rezolvare
root@mjolnir:~# /etc/init.d/postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
  • [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
Rezolvare
* 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
  • [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.
Rezolvare
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

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)
Rezolvare
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
  • [02]. Configurați Thunderbird pentru a folosi configura conexiunea criptată către serverul de IMAP.
    • [02].a. Edit → Account Settings → Server Settings → Connection security
Rezolvare
* Edit -> Account Settings -> Server Settings -> Connection security -> SSL/TLS
  • [03]. Verificați configurarea anterioară trimițând un email de la bob către alice@gsr.ro. Email-ul trebuie să sosească în Thunderbird.
Rezolvare
bob@mjolnir:~$ echo "Mesaj de la bob catre alice@gsr.ro - SSL" | mail -s "Test Thunderbird" alice@gsr.ro

5. Maildrop (1.5p)

  • Comenzi/concepte/fișiere
    • N/A

Tutorial

Exerciții

  • [01]. Instalați pachetul maildrop.
Rezolvare
root@mjolnir:~# apt-get install maildrop
Rezolvare
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.
  • [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)
Rezolvare
File -> New -> Mail Account
  • [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.
Rezolvare
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/

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].b. info@gsr-cs.ro -> bob
  • [01].c sales@gsr-upb.ro -> alice
  • [01].d. office@gsr-upb.ro -> bob
Rezolvare
root@mjolnir:~# postconf -e 'virtual_alias_domains = gsr-cs.ro gsr-upb.ro'

root@mjolnir:~# postconf -e 'virtual_alias_maps = hash:/etc/postfix/virtual'

root@mjolnir:~# cat /etc/postfix/virtual 
contact@gsr-cs.ro	alice
info@gsr-cs.ro		bob
sales@gsr-upb.ro	alice
office@gsr-upb.ro	bob

root@mjolnir:~# postmap /etc/postfix/virtual 
  • [02]. Configurați căsuțe postale virtuale cu utilizatori non-unix pentru domeniul gsr-rules.ro.
  • [02].a. Directorul de bază pentru căsuțele poștare virtuale este /usr/local/mail/gsr-rules.ro/.
  • [02].b. Utilizatorul dorin va avea căsuța poștală, format Maildir, în directorul /usr/local/mail/gsr-rules.ro/dorin/.
Rezolvare
root@mjolnir:~# groupadd virtual

root@mjolnir:~# useradd -d /home/virtual -m -g virtual -s /bin/bash virtual

root@mjolnir:~# echo "virtual:virtual" | chpasswd

root@mjolnir:~# mkdir -p /usr/local/mail/gsr-rules.ro

root@mjolnir:~# chown -R virtual:virtual /usr/local/mail/

root@mjolnir:~# getent passwd virtual
virtual:x:1005:1005::/home/virtual:/bin/bash

root@mjolnir:~# postconf -e 'virtual_mailbox_domains = gsr-rules.ro'

root@mjolnir:~# postconf -e 'virtual_mailbox_maps = hash:/etc/postfix/vmailbox'

root@mjolnir:~# postconf -e 'virtual_mailbox_base = /usr/local/mail/gsr-rules.ro'

root@mjolnir:~# postconf -e 'virtual_uid_maps = static:1005'

root@mjolnir:~# postconf -e 'virtual_gid_maps = static:1005'

root@mjolnir:~# cat /etc/postfix/vmailbox 
dorin@gsr-rules.ro	gsr-rules/dorin/

root@mjolnir:~# postmap /etc/postfix/vmailbox
  • [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)
Rezolvare
root@mjolnir:~# cat /etc/courier/authdaemonrc | grep "authmodulelist="
authmodulelist="authuserdb"

root@mjolnir:~# userdb info set uid=1005 gid=1005 home=/usr/local/mail/gsr-rules.ro/dorin/ mail=/usr/local/mail/gsr-rules.ro/dorin/

root@mjolnir:~# cat /etc/courier/userdb
info	uid=1005|gid=1005|home=/usr/local/mail/gsr-rules.ro/dorin/|mail=/usr/local/mail/gsr-rules.ro/dorin/

root@mjolnir:~# userdbpw -md5 | userdb info set systempw
Password: 
Reenter password:

root@mjolnir:~# makeuserdb

root@mjolnir:~# cat /etc/courier/userdb
info	systempw=$1$6/NXTTBE$wioqqFuVEFXymHoMyVvfu.|uid=1005|mail=/usr/local/mail/gsr-rules.ro/dorin/|home=/usr/local/mail/gsr-rules.ro/dorin/|gid=1005
laboratoare/laborator-08.txt · Last modified: 2011/12/15 17:05 by george.milescu