Kategorie: Server

Jednoduchý poštovní server (POP3+IMAP)

Mailserver založený na Postfix (SMTP) a Dovecot (POP3,IMAP) s běžnými uživatelskými účty.

Postfix bude plnit funkci SMTP serveru - tj. bude emaily uživatelů posílat do internetu, ale také bude emaily přijímat z internetu pro uživatele přijímat a ukládat do adresáře mail v jejich domovských adresářích.

Dovecot bude emaily z tohoto adresáře uživatelům zpřístupňovat skze protokol POP3 a IMAP.

I pokud tedy chcete poštovní server jen pro příjem emailů, začněte Postfixem. Dokud se nedostanete přes první kontrolní bod (zkouška odeslání emailu pomocí telnetu), nebude adresář mail v domovském adresáři uživatele vůbec existovat a zkoušet nastavit Dovecot tak nebude mít smysl.

Postfix - základ

apt-get install postfix
Internetový počítač
domena.cz
/etc/postfix/main.cf
 myorigin = /etc/mailname
 myhostname = mail.domena.cz
 myhost= mail.domena.cz
 mydomain = domena.cz
 inet_interfaces = all
 mydestination = domena.cz, localhost
 home_mailbox = mail/
 
 # Jedno z nasledujicich mynetworks bude odkomentovane:
 # Lokalni aplikace muzou posilat jak chteji
 mynetworks = 127.0.0.0/8
 # Kazdy muze posilat cokoli - open-relay!
 #mynetwork = 0/0
Pro projevení změn v konfiguračním souboru Postfix restartujte:
/etc/init.d/postfix restart

Kontrolní bod: Test SMTP pomocí telnetu

Předpokládá existenci uživatele test. V jeho domovském adresáři bude automaticky vytvořena složka mail a uloží se do ní takto odeslaný email.
$ telnet domena.cz 25
Trying 10.0.0.155...
Connected to domena.cz.
Escape character is '^]'.
220 mail.domena.cz ESMTP Postfix (Debian/GNU)
helo domena.cz
250 mail.domena.cz
mail from: test@domena.cz
250 2.1.0 Ok
rcpt to: test@domena.cz
250 2.1.5 Ok
data
354 End data with .
Zpráva uživateli test
.
250 2.0.0 Ok: queued as 1923EE4F4
quit
221 2.0.0 Bye
Pokud se nyní vytvořila na správném místě schránka uživatele test, máte tímto funkční nezabezpečený SMTP server, skrze který můžete odesílat a přijímat emaily. (lokálně a pouze ručně) Z důvěryhodné sítě mynetworks lze posílat emaily i ven. (Odjinud to půjde až po přihlášení, které se dodělá později.)

Dovecot (POP3+IMAP)

Zcela nezávisle na Postfixu poběží služba Dovecot, která umožní vzdálené prohlížení obsahu emailových schránek.
apt-get install dovecot-imapd dovecot-pop3d
/etc/dovecot/dovecot.conf
 mail_location = maildir:~/mail
 protocols = imap imaps pop3 pop3s
 auth default {
  mechanisms = plain login
  passdb pam {
  }
  userdb passwd {
  }
  socket listen {
   client {
    path = /var/spool/postfix/private/auth
    mode = 0660
    user = postfix
    group = postfix
   }
  }
 }
Pro projevení změn v konfiguračním souboru Dovecot restartujte:
/etc/init.d/dovecot restart

Kontrolní bod: Test poštovním klientem

Nyní by mělo být možné poštovní server normálně používat. Jako SMTP i POP3/IMAP server použijte libovolnou adresu vašeho serveru.

Postfix - přihlášení k SMTP

/etc/postfix/main.cf
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_sender_restrictions = reject_sender_login_mismatch
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sender_login_maps = hash:/etc/postfix/sender_login_maps
touch /etc/postfix/sender_login_maps
postmap /etc/postfix/sender_login_maps
touch /etc/aliases
newaliases
/etc/init.d/postfix restart

Dovecot - SSL

Umožníme použití SSL při stahování emailů skrze POP3 nebo IMAP. V Debianu jsou potřebné SSL certifikáty generovány automaticky při instalaci, takže stačí SSL pouze povolit. Standardně je funkční STARTTLS. Nešifrovaná spojení je třeba povolit.
nano /etc/dovecot/dovecot.conf
# Povolit SSL:
ssl = yes
# Vynutit SSL:
#ssl = required
# Povolit nesifrovane prihlaseni:
disable_plaintext_auth = no
# Certifikaty, Debian generuje automaticky
ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem
Pro projevení změn v konfiguračním souboru Dovecot restartujte:
/etc/init.d/dovecot restart

Postfix - SSL (Zabezpečené SMTP - SMTPS)

Odkomentujte smtps v /etc/postfix/master.cf:
nano /etc/postfix/master.cf
smtp      inet  n       -       -       -       -       smtpd
smtps     inet  n       -       -       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
/etc/postfix/main.cf
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_security_level = may
Pro projevení změn v konfiguračním souboru Postfix restartujte:
/etc/init.d/postfix restart

Založení uživatele

adduser honza
echo "honza@hustopece.cz honza" >> /etc/postfix/sender_login_maps
postmap /etc/postfix/sender_login_maps

Založení aliasu

echo "spravce: petr" >> /etc/aliases
newaliases

Chybové stavy (anglický Thunderbird)

  • An error occurred while sending mail. The mail server responded: 5.7.1 : Sender address rejected: not owned by user test. Please check the message recipient test@domena.cz and try again.
    Snažíte se odeslat email a jako adresu odesílatele uvádíte adresu, která není přiřazená vašemu účtu. (Napravíte připsáním emailu a loginu do /etc/postfix/sender_login_maps a příkazem postmap /etc/postfix/sender_login_maps )
  • Login to server mail.domena.cz failed.
    Pokud nastane při odesílání emailu, neplatné přihlašovací údaje k SMTP serveru. (Zkontrolujte také další nastavení - mělo by být nastaveno STARTTLS a Normal password)
    Pokud nastane při příjmu emailu, neplatné přihlašovací údaje k POP3 nebo IMAP.
  • Sending of message failed. The message could not be sent because connecting to SMTP server mail.domena.cz failed. The server may be unavailable or is refusing SMTP connections. Please verify that your SMTP server settings are correct and try again, or contact the server administrator.
    SMTP server neodpovídá - nejspíše je zcela nedostupný nebo se možná pokoušíte připojit skrze SSL a server jej nepodporuje.

Komentáře


, mysql odpovědět

super len skoda, ze to nemas v kombinacii s mysql.
Ja mam uzivatelov a hesla v mysql a neviem ako by som napisal to overenie hesiel.

icon , Příště odpovědět

Příště zkusím udělat filtry jako DKIM, antispam nebo antivir...