Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
|
it:linux:mail_server [2016/02/06 09:45] kourim [Nastavení Postfix] |
it:linux:mail_server [2016/02/07 19:28] (aktuální) kourim [Nastavení Dovecot] |
||
|---|---|---|---|
| Řádek 69: | Řádek 69: | ||
| cp /etc/postfix/master.cf /etc/postfix/master.cf.orig</sxh> | cp /etc/postfix/master.cf /etc/postfix/master.cf.orig</sxh> | ||
| - zeditujeme /etc/postfix/main.cf, aby se dostal do tohoto stavu {{:it:linux:postfix_main.txt|main.cf}} | - zeditujeme /etc/postfix/main.cf, aby se dostal do tohoto stavu {{:it:linux:postfix_main.txt|main.cf}} | ||
| - | * nastavíme všechyn smtpd_* vlastnosti podle ukázky | + | * nastavíme všechyn smtpd_* vlastnosti podle ukázky <sxh bash>smtpd_tls_cert_file=/etc/dovecot/dovecot.pem |
| + | smtpd_tls_key_file=/etc/dovecot/private/dovecot.pem | ||
| + | smtpd_use_tls=yes | ||
| + | smtpd_tls_auth_only = yes | ||
| + | |||
| + | #Enabling SMTP for authenticated users, and handing off authentication to Dovecot | ||
| + | smtpd_sasl_type = dovecot | ||
| + | smtpd_sasl_path = private/auth | ||
| + | smtpd_sasl_auth_enable = yes | ||
| + | |||
| + | smtpd_recipient_restrictions = | ||
| + | permit_sasl_authenticated, | ||
| + | permit_mynetworks, | ||
| + | reject_unauth_destination</sxh> | ||
| * všechny výskyty example.com přepíšeme na naší doménu | * všechny výskyty example.com přepíšeme na naší doménu | ||
| * na řádku 44 přepíšeme hostname na server hostname | * na řádku 44 přepíšeme hostname na server hostname | ||
| Řádek 101: | Řádek 114: | ||
| postmap -q email@example.com pgsql:/etc/postfix/pgsql-virtual-mailbox-maps.cf | postmap -q email@example.com pgsql:/etc/postfix/pgsql-virtual-mailbox-maps.cf | ||
| postmap -q alias@example.com pgsql:/etc/postfix/pgsql-virtual-alias-maps.cf</sxh> | postmap -q alias@example.com pgsql:/etc/postfix/pgsql-virtual-alias-maps.cf</sxh> | ||
| + | - nyní je potřeba upravit ještě /etc/postfix/master.cf, aby se dostal do tohoto stavu {{:it:linux:postfix_master.txt|master.cf}} | ||
| + | * je potřeba odkomentovat řádek začínající submission a všechny -o navazující | ||
| + | * je potřeba odkomentovat řádek začínající smtps a všechny -o navazující | ||
| + | - restartujeme postfix<sxh bash>service postfix restart</sxh> | ||
| ==== Nastavení Dovecot ==== | ==== Nastavení Dovecot ==== | ||
| + | - vytvoříme zálohu všech konfiguračních souborů, kde budeme něco editovat <sxh bash>cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig | ||
| + | cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.orig | ||
| + | cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.orig | ||
| + | cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.orig | ||
| + | cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.orig | ||
| + | cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.orig | ||
| + | </sxh> | ||
| + | - zeditujeme hlavní konfigurační soubor /etc/dovecot/dovecot.conf do tohoto stavu {{:it:linux:dovecot_dovecot.txt|dovecot.conf}} | ||
| + | - zeditujeme soubor /etc/dovecot/conf.d/10-mail.conf, který se stará o ukládání/získávání emailů z file systému, aby vypadal takto {{:it:linux:dovecot_10-mail.conf.txt|10-mail.conf}}<sxh bash>mail_location = maildir:/var/mail/vhosts/%d/%n | ||
| + | ... | ||
| + | mail_privileged_group = mail</sxh> | ||
| + | - ověříme, aby nám seděli práva na /var/mail<sxh bash>ls -ld /var/mail | ||
| + | drwxrwsr-x 2 root mail 4096 Mar 6 15:08 /var/mail</sxh> | ||
| + | - vytvoříme si adresáře na ukládání emailu a přidělíme je nově vytvořenému uživateli vmail<sxh bash>mkdir -p /var/mail/vhosts/example.com | ||
| + | |||
| + | groupadd -g 5000 vmail | ||
| + | useradd -g vmail -u 5000 vmail -d /var/mail | ||
| + | |||
| + | chown -R vmail:vmail /var/mail | ||
| + | </sxh> | ||
| + | - zeditujeme soubor /etc/dovecot/conf.d/10-auth.conf, který se stará authentikaci uživatelů, aby následující parametry měli tyto hodnoty<sxh bash>disable_plaintext_auth = yes | ||
| + | auth_mechanisms = plain login | ||
| + | #!include auth-system.conf.ext # zakomentovat tento řádek | ||
| + | !include auth-sql.conf.ext # odkomentovat tento řádek | ||
| + | </sxh> | ||
| + | - zeditujeme souboru /etc/dovecot/conf.d/auth.sql.conf.ext<sxh bash>passdb { | ||
| + | driver = sql | ||
| + | args = /etc/dovecot/dovecot-sql.conf.ext | ||
| + | } | ||
| + | userdb { | ||
| + | driver = static | ||
| + | args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n | ||
| + | }</sxh> | ||
| + | - zeditujeme /etc/dovecot/dovecot-sql.conf.ext, kde se drží informace o připojení na databázi, těmito hodnotami<sxh bash>driver = pgsql | ||
| + | connect = host=localhost dbname=mailserver user=mailuser password=heslo | ||
| + | default_pass_scheme = SHA512 | ||
| + | password_query = SELECT email as user, password FROM virtual_users WHERE email='%u'; | ||
| + | </sxh> | ||
| + | - změníme vlastníka a práva kolem dovecot aplikace<sxh bash>chown -R vmail:dovecot /etc/dovecot | ||
| + | chmod -R o-rwx /etc/dovecot</sxh> | ||
| + | - zeditujeme /etc/dovecot/conf.d/10-master.conf, kde se nastavují jaké protokoly a kde se používají<sxh bash>service imap-login { | ||
| + | inet_listener imap { | ||
| + | port = 0 | ||
| + | } | ||
| + | inet_listener imaps { | ||
| + | port = 993 | ||
| + | ssl = yes | ||
| + | } | ||
| + | ... | ||
| + | service pop3-login { | ||
| + | inet_listener pop3 { | ||
| + | port = 0 | ||
| + | } | ||
| + | inet_listener pop3s { | ||
| + | port = 995 | ||
| + | ssl = yes | ||
| + | } | ||
| + | ... | ||
| + | } | ||
| + | ... | ||
| + | }</sxh><sxh bash> | ||
| + | service lmtp { | ||
| + | unix_listener /var/spool/postfix/private/dovecot-lmtp { | ||
| + | mode = 0600 | ||
| + | user = postfix | ||
| + | group = postfix | ||
| + | } | ||
| + | # Create inet listener only if you can't use the above UNIX socket | ||
| + | #inet_listener lmtp { | ||
| + | # Avoid making LMTP visible for the entire internet | ||
| + | #address = | ||
| + | #port = | ||
| + | #} | ||
| + | }</sxh><sxh bash> | ||
| + | service auth { | ||
| + | # auth_socket_path points to this userdb socket by default. It's typically | ||
| + | # used by dovecot-lda, doveadm, possibly imap process, etc. Its default | ||
| + | # permissions make it readable only by root, but you may need to relax these | ||
| + | # permissions. Users that have access to this socket are able to get a list | ||
| + | # of all usernames and get results of everyone's userdb lookups. | ||
| + | unix_listener /var/spool/postfix/private/auth { | ||
| + | mode = 0666 | ||
| + | user = postfix | ||
| + | group = postfix | ||
| + | } | ||
| + | |||
| + | unix_listener auth-userdb { | ||
| + | mode = 0600 | ||
| + | user = vmail | ||
| + | #group = | ||
| + | } | ||
| + | |||
| + | # Postfix smtp-auth | ||
| + | #unix_listener /var/spool/postfix/private/auth { | ||
| + | # mode = 0666 | ||
| + | #} | ||
| + | |||
| + | # Auth process is run as this user. | ||
| + | user = dovecot | ||
| + | }</sxh><sxh bash> | ||
| + | service auth-worker { | ||
| + | # Auth worker process is run as root by default, so that it can access | ||
| + | # /etc/shadow. If this isn't necessary, the user should be changed to | ||
| + | # $default_internal_user. | ||
| + | user = vmail | ||
| + | }</sxh> | ||
| + | - zeditujeme /etc/dovecot/conf.d/10-ssl.conf, kde se reší certifikáty, těmito vlastnostmi<sxh bash>ssl_cert = </etc/dovecot/dovecot.pem | ||
| + | ssl_key = </etc/dovecot/private/dovecot.pem | ||
| + | |||
| + | ssl = required</sxh> | ||
| + | - restartujeme dovecot<sxh bash>service dovecot restart</sxh> | ||
| + | |||
| + | ==== Nastavení DKIM ==== | ||
| + | Nainstalujeme dkim | ||
| + | <sxh bash>apt-get install opendkim opendkim-tools</sxh> | ||
| + | následně přidáme postfix usera do skupiny opendkim<sxh bash>adduser postfix opendkim</sxh> | ||
| + | |||
| + | https://www.linode.com/docs/email/postfix/configure-spf-and-dkim-in-postfix-on-debian-8 | ||
| + | |||
| + | ==== Nastavení SPF ==== | ||
| + | Nastavení SPF sestává za dvou kroků. Pokud chci, aby se ověřoval můj SPF jinde, je potřeba do DNS záznamů přídat speciální záznam<sxh>example.com 1800 TXT v=spf1 a ip4:ip_serveru -all</sxh>toto nastavení ovlivní to, že pokud bude špatně nastaven, tak ostatní servery budou označovat moje emaily jako spam. | ||
| + | |||
| + | Druhý krok je kontrola SPF na vlastním serveru, aby se případně špatné emaily rovnou zahazovali. Nainstalujeme tedy doplněk na kontrolu<sxh bash>apt-get install postfix-policyd-spf-python</sxh>do souboru /etc/postfix/master.cf doplníme na konec souboru<sxh>policyd-spf unix - n n - 0 spawn | ||
| + | user=policyd-spf argv=/usr/bin/policyd-spf</sxh>přidáme do /etc/postfix/main.cf řádek<sxh>policyd-spf_time_limit = 3600</sxh>a doplníme do vlastnosti **smtpd_recipient_restrictions** na konec check_policy_service unix:private/policyd-spf<sxh>smtpd_recipient_restrictions = | ||
| + | ... | ||
| + | reject_unauth_destination, | ||
| + | check_policy_service unix:private/policyd-spf, | ||
| + | ...</sxh>Restartujeme postfix<sxh>service postfix restart</sxh> | ||