Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
it:linux:mail_server [2016/02/06 09:40]
kourim [Nastavení Postfix]
it:linux:mail_server [2016/02/07 19:28] (aktuální)
kourim [Nastavení Dovecot]
Řádek 66: Řádek 66:
  
 ==== Nastavení Postfix ==== ==== Nastavení Postfix ====
-  - vytvoříme zálohu všech konfiguračních souborů, kde budeme něco editovat<​sxh bash>cp /​etc/​postfix/​main.cf /​etc/​postfix/​main.cf.orig</​sxh>​+  - vytvoříme zálohu všech konfiguračních souborů, kde budeme něco editovat<​sxh bash>cp /​etc/​postfix/​main.cf /​etc/​postfix/​main.cf.orig 
 +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
-  - vytvoříme konfigurační soubory pro připojení na databázi, vyplníme uživatelské jméno a heslo zadané dříve<​sxh bash; title: /​etc/​postfix/​mysql-virtual-mailbox-domains.cf>​+  - vytvoříme konfigurační soubory pro připojení na databázi, vyplníme uživatelské jméno a heslo zadané dříve<​sxh bash; title: /​etc/​postfix/​pgsql-virtual-mailbox-domains.cf>​
 user = mailuser user = mailuser
 password = mailuserpass password = mailuserpass
Řádek 77: Řádek 91:
 dbname = mailserver dbname = mailserver
 query = SELECT 1 FROM virtual_domains WHERE domain_name='​%s'​ query = SELECT 1 FROM virtual_domains WHERE domain_name='​%s'​
-</​sxh>​ +</​sxh><​sxh bash; title: /​etc/​postfix/​pgsql-virtual-mailbox-maps.cf>​
-<sxh bash; title: /​etc/​postfix/​mysql-virtual-mailbox-maps.cf>​+
 user = mailuser user = mailuser
 password = mailuserpass password = mailuserpass
Řádek 84: Řádek 97:
 dbname = mailserver dbname = mailserver
 query = SELECT 1 FROM virtual_users WHERE email='​%s'​ query = SELECT 1 FROM virtual_users WHERE email='​%s'​
-</​sxh>​ +</​sxh><​sxh bash; title: /​etc/​postfix/​pgsql-virtual-alias-maps.cf>​
-<sxh bash; title: /​etc/​postfix/​mysql-virtual-alias-maps.cf>​+
 user = mailuser user = mailuser
 password = mailuserpass password = mailuserpass
Řádek 91: Řádek 103:
 dbname = mailserver dbname = mailserver
 query = SELECT destination FROM virtual_aliases WHERE source='​%s'​ query = SELECT destination FROM virtual_aliases WHERE source='​%s'​
-</​sxh>​ +</​sxh><​sxh bash; title: /​etc/​postfix/​pgsql-virtual-email2email.cf>​
-<sxh bash; title: /​etc/​postfix/​mysql-virtual-email2email.cf>​+
 user = mailuser user = mailuser
 password = mailuserpass password = mailuserpass
Řádek 99: Řádek 110:
 query = SELECT email FROM virtual_users WHERE email='​%s'​ query = SELECT email FROM virtual_users WHERE email='​%s'​
 </​sxh>​ </​sxh>​
 +  - restartujeme postfix<​sxh bash>​service postfix restart</​sxh>​
 +  - nyní můžeme otestovat to, jestli postfix na nové konektory reaguje správně<​sxh bash>​postmap -q example.com pgsql:/​etc/​postfix/​pgsql-virtual-mailbox-domains.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>​
 +  - 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>​
  • it/linux/mail_server.1454748000.txt.gz
  • Poslední úprava: 2016/02/06 09:40
  • autor: kourim