Server - Postfix a Dovecot

29. 2. 2008 21:47 (aktualizováno) Jan Hrach

V (asi) předposledním dílu seriálu o serveru si nakonfigurujeme SMTP server a stahování pošty přes POP3. Nakonec si ještě převedeme schránky z mboxů na maildiry.

Instalace

Potřebné programy nainstalujeme jednoduše:

 # apt-get install postfix dovecot

Dpkg se zeptá na typ nastavení a doménové jméno. Necháme Internetový server a jméno server.crapola.com.

Postfix

Otevřeme si /etc/postfix/main.cf a nastavíme si banner:

 smtpd_banner = $myhostname ESMTP $mail_name (Debian)

domény, pro které chceme přijímat maily

 mydestination = server.crapola.com, server, localhost.localdomain,
localhost, crapola.com, users.crapola.com

a nakonec IP adresy, pro které chceme relayovat do celého internetu

 mynetworks = 192.168.0.0/24
 # /etc/init.d/postfix reload


Tak a teď ho vyzkoušíme.

 jenda@HLAVNI:~$ telnet server.crapola.com 25
Trying 84.42.202.191...
Connected to yakumo.hrach.eu.
Escape character is '^]'.
220 CRAPOLA ESMTP Postfix (Debian)
HELO CRAPOLA
250 CRAPOLA
MAIL FROM: test@testovic.ru
250 2.1.0 Ok
RCPT TO: jenda@server.crapola.com
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: test
From: test@testovic.ru
To: jenda@server.crapola.com

Ahoj, blablabla
.
250 2.0.0 Ok: queued as CF1D1EFEE
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

Přihlásíme se na server a už bychom měli vidět You have new mail. Přečteme si ho a vymažeme ho.

 $ mail
"/var/mail/jenda": 1 message
>R 1 Jan Hrach Pá říj 12 20: 17/431 Ahoj
& t1
To: <jenda@server.crapola.com>
Subject: test
Date: Fri, 12 Oct 2007 20:58:18 +0200 (CEST)
From: test@testovic.ru

Ahoj, blablabla
& d1
& ^D
Held 0 messages in /var/mail/jenda

Takže to nám funguje. Teď vyřešit vybírání přes POP3.

Dovecot

Dovecot se konfiguruje překvapivě v /etc/dovecot/dovecot.conf. Takže nejdřív si vybereme protokoly

 protocols = pop3

dáme mu za úkol poslouchat vždy a všude

 listen = *

a povolíme nešifrovanou komunikaci

 disable_plaintext_auth = no
 # /etc/init.d/dovecot restart

(neumí reload)
No a teď si v Thunderbirdu vyrobíme nový účet a zadáme do něj patřičné údaje. A když se ujistíme, že to funguje, sebereme nepovolaným osobám shell.

 # chsh -s /bin/false jenda

Maildiry

Teď se nám všechny maily pro jednoho uživatele ukládají do jednoho velikého souboru /var/mail/uživatel. To má některé nevýhody, třeba když se k tomu souboru pokusí přistupovat více programů naráz. Proto se používají IMHO lepší maildiry, což jsou adresáře, kde má každá zpráva svůj vlastní soubor.

Musíme změnit v konfiguráku Postfixu

 mailbox_command = /usr/bin/procmail DEFAULT=/var/mail/$USER/maildir/ MAILDIR=/var/mail/$USER/maildir/
 mail_spool_directory = /var/mail/

a Dovecotu

 mail_location = maildir:/var/mail/%u/maildir/

Teď když uděláme

 # /etc/init.d/postfix reload
# /etc/init.d/dovecot restart

…tak zjistíme, že maily nechodí. Musíme vytvořit ten adresář

 # mkdir /var/mail/jenda

a nastavit mu vlastníka

 # chown jenda:skupina /var/mail/jenda

Teď máme funkční maildiry. Hurá!

V příštím a asi posledním díle nám bude skript posílat SMS, když se něco nového objeví v dmesgu a generovat jednoduché statistiky na web (příklad tady).

Sdílet