1. Požadavky
2. Odkazy
- Dovecot
- Dovecot2 WiKi
- Howto Setup a Mail Server with Virtual Users and Domains
- Heronovo - Dovecot (pouze v češtině)
- Sieve filtry na serveru v režii Dovecotu a Roundcube (pouze v češtině)
3. Instalace Dovecot
Připojte se pomocí SSH k FreeBSD serveru, připojte se k vytvořenému jail, kde je nainstalován postfix server (jexec mail tcsh), a nainstalujte Dovecot pomocí portsnap. Je to z důvodu nutnosti konfigurace podpory PostgreSQL, která není nastavena v rámci pkg balíčku.
portsnap extract
cd /usr/ports/mail/dovecot2/
make config
# při konfiguraci dovecot2 nastavte:
# set PGSQL=on: PostgreSQL maps (uses DEFAULT_PGSQL_VER)
# set SSL=on: SSL protocol support
make install clean
- Poznámka: Pokud je již postfix server nainstalován pomocí instalačního návodu, potom mužete tento krok přeskočit a nainstalujte pouze pigeonhole.
make install clean
Automatické spouštění dovecot serveru se provede aktualizací souboru '/etc/rc.conf'.
- Poznámka: Pro spuštění více instancí dovecot serveru nastavte proměnnou 'dovecot_config' obsahující názvy konfiguračních souborů oddělených mezerami.
4. Konfigurace Dovecot
Vytvořte a zabezpečte IMAPS SSL/TLS certifikáty pro dovecot (nebo použijte existující, které umístěte do vytvořeného adresáře).
cd /etc/ssl/dovecot
openssl req -new -x509 -nodes -out imap.example.com.cert -keyout imap.example.com.key -days 3650
chmod 640 /etc/ssl/dovecot/*
chgrp -R dovecot /etc/ssl/dovecot
Konfigurace Dovecot2 je umístěna v adresáři '/usr/local/etc/dovecot/conf.d'. Nejprve nakopírujte soubory a adresáře z '/usr/local/etc/dovecot/example-config/' do adresáře '/usr/local/etc/dovecot/' a poté upravte následující konfigurační soubory.
#remove '#' from the line !include conf.d/*.conf
protocols = imap sieve
listen = <ip_address>
#remove '#' from the line !auth-sql.conf.ext
#comment the line !include auth-system.conf.ext
disable_plaintext_auth = yes
auth_default_realm = example.com
Nastavení adresáře Maildir pro ukládání přijatých zpráv.
mail_location = maildir:/mnt/mail/%d/%n
mail_gid = mail
mail_uid = mailnull
mail_privileged_group = mail
first_valid_uid = 26
last_valid_uid = 26
first_valid_gid = 6
last_valid_gid = 6
maildir_copy_with_hardlinks = yes
auth_socket_path = /var/run/dovecot/auth-userdb
- Poznámka: 'mail_location = maildir:/mnt/mail/%d/%n' by měla obsahovat stejný adresář, který je definován proměnnou 'virtual_mailbox_base = /mnt/mail' v konfiguračním souboru '/usr/local/etc/postfix/main.cf' pro postfix. Stejné parametry musí obsahovat i proměnné 'uid' a 'gid'.
Zakázání IMAP protokolu bez SSL a nastavení SASL verifikace smtp-auth pro postfix.
service imap-login {
inet_listener imap {
port = 0
}
}
service auth {
unix_listener auth-userdb {
#mode = 0666
#user =
#group =
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
# Auth process is run as this user.
#user = $default_internal_user
}
Nastavení vygenerovaných SSL certifikátů.
# SSL certificates
ssl = yes
ssl_cert = </etc/ssl/dovecot/example.com.crt
ssl_key = </etc/ssl/dovecot/example.com.key
# SSL certificates for specific domain
#local_name test.example.com {
# ssl_cert = </etc/ssl/dovecot/imap.test.example.com.cert
# ssl_key = </etc/ssl/dovecot/imap.test.example.com.key
#}
Aktivace sieve pluginu.
protocol lda {
# Space separated list of plugins to load (default is global mail_plugins).
postmaster_address = postmaster@example.com
mail_plugins = $mail_plugins sieve
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
# log_path = /var/log/dovecot-lda-errors.log
# info_log_path = /var/log/dovecot-lda.log
}
nastavení ManageSieve protocolu.
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
service managesieve {
# Max. number of ManageSieve processes (connections)
#process_limit = 1024
}
protocol sieve {
mail_max_userip_connections = 10
# Explicitly specify the SIEVE and NOTIFY capability reported by the server before
# login. If left unassigned these will be reported dynamically according to what
# the Sieve interpreter supports by default (after login this may differ depending
# on the user).
# managesieve_sieve_capability =
# managesieve_notify_capability =
# log_path = /var/log/dovecot-sieve-errors.log
# info_log_path = /var/log/dovecot-sieve.log
}
Nastavení sieve pluginu.
plugin {
# Used by both the Sieve plugin and the ManageSieve protocol
sieve = /mnt/mail/%d/%n/.dovecot.sieve
sieve_dir = /mnt/mail/%d/%n/.sieve
sieve_extensions = +notify +imapflags
recipient_delimiter = +
}
Nastavení autorizace uživatelů pomocí PostgreSQL databáze.
passdb {
driver = sql
args = /usr/local/etc/dovecot/dovecot-sql.conf
}
userdb {
driver = static
args = /usr/local/etc/dovecot/dovecot-sql.conf
}
Abychom mohli provádět SQL dotazy v databázi (např. pro lokální doručování nebo autorizaci uživatelů), musíme povolit přistup do databáze 'mail', kterou požívá postfix. Proto po připojení k PostgreSQL instalaci spusťte následující příkazy.
createuser --pwprompt --encrypted --no-createrole --no-createdb dovecot
psql mail
GRANT SELECT ON mailbox,alias TO dovecot;
- Poznámka: Nezapomeňte nastavit autentizační soubor '/mnt/sql/pgsql/data/pg_hba.conf' pro uživatele 'dovecot' a znovu načíst konfiguraci PostgreSQL.
Vytvořte soubor s SQL dotazy pro autorizaci uživatelů.
driver = pgsql
connect = host= postgresql_ip_address_or_fqdn dbname=mail user=dovecot password=dovecot_sql_password
default_pass_scheme = BLF-CRYPT
password_query = \
SELECT username as user, password \
FROM mailbox WHERE username = '%u' AND active = true
user_query = \
SELECT concat('/mnt/mail/', mailbox.domain, '/', mailbox.local_part) as home, '26' as uid, '6' as gid \
FROM alias, mailbox WHERE alias.address='%u' and alias.goto=mailbox.username
5. Spuštění a kotrola dovecot serveru
Spuštění dovecot serveru
SSL IMAP spojeni se může otestovat pomocí příkazu:
Komentáře