Table of Contents

Laborator 05: Serviciul de e-mail

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

Show solution
Hide solution
Show solution
root@mjolnir:~# apt-get install postfix
Show solution
Hide solution
Show solution
root@mjolnir:~# netstat -lntp | grep ":25"
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      10866/master 
Show solution
Hide solution
Show solution
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
Show solution
Hide solution
Show solution
alice@mjolnir:~$ echo "Mesaj de la alice catre bob" | mail -s "Hello" bob
Show solution
Hide solution
Show solution
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

& 
Show solution
Hide solution
Show solution
& 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

&
Show solution
Hide solution
Show solution
root@mjolnir:~# tail -n 1 /etc/aliases
contact:alice

root@mjolnir:~# newaliases
Show solution
Hide solution
Show solution
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

&
Show solution
Hide solution
Show solution
student@mjolnir:~$ cat .forward 
bob
Show solution
Hide solution
Show solution
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)

Toate configurările de Postfix vor fi realizate folosind postconf

Show solution
Hide solution
Show solution
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
Show solution
Hide solution
Show solution
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

& 
Show solution
Hide solution
Show solution
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.
Show solution
Hide solution
Show solution
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.
Show solution
Hide solution
Show solution
alice@mjolnir:~$ echo "Mesaj de la alice catre bob@gsr.ro" | mail -s "Catre bob@gsr.ro" bob@gsr.ro
Show solution
Hide solution
Show solution
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)

Show solution
Hide solution
Show solution
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
Show solution
Hide solution
Show solution
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 = 
Show solution
Hide solution
Show solution
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.
Show solution
Hide solution
Show solution
root@mjolnir:~# netstat -lntp | grep courier
tcp6       0      0 :::143                  :::*                    LISTEN      14373/couriertcpd

root@mjolnir:~# getent services imap
imap2                 143/tcp imap
Show solution
Hide solution
Show solution
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
Show solution
Hide solution
Show solution
root@mjolnir:~# apt-get install thunderbird
Show solution
Hide solution
Show solution
  *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
Show solution
Hide solution
Show solution
bob@mjolnir:~$ echo "Mesaj de la bob catre alice@gsr.ro" | mail -s "Test Thunderbird" alice@gsr.ro

Thunderbird -> Get Mail.

4. Configurari avansate

Show solution
Hide solution
Show solution
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 
Show solution
Hide solution
Show solution
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
Show solution
Hide solution
Show solution
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