Dovecot: Unterschied zwischen den Versionen

Aus Tutorials
Zur Navigation springen Zur Suche springen
Zeile 159: Zeile 159:
</pre>
</pre>


Falls [[PostfixAdmin]] verwendet wird:
<pre>
<pre>
password_query = SELECT local_part, domain, password FROM mailbox WHERE local_part = '%n' AND domain = '%d'
password_query = SELECT local_part, domain, password FROM mailbox WHERE local_part = '%n' AND domain = '%d'
</pre>
</pre>


Falls [[PostfixAdmin]] ''nicht'' verwendet wird:
<pre>
<pre>
password_query = SELECT username, domain, password FROM users WHERE username = '%n' AND domain = '%d'
password_query = SELECT username, domain, password FROM users WHERE username = '%n' AND domain = '%d'

Version vom 13. April 2016, 22:23 Uhr

Installation

sudo apt-get install dovecot-core
sudo apt-get install dovecot-imapd dovecot-pop3d
sudo apt-get install dovecot-mysql

Datenbank erstellen

mysql -u root -p 
mysql> create database if not exists mails;
mysql> create user 'mailserver'@'%' identified by '<password>';
mysql> grant select on mails.* to 'mailserver'@'%';
mysql> flush privileges; 
mysql> use mails;

Soll nur von localhost auf die Datenbank zugegriffen werden können, dann folgenden Befehl verwenden:

mysql> create user 'mailserver'@'localhost' identified by '<password>';

Falls PostfixAdmin verwendet wird, sind wir jetzt fertig:

mysql> quit;

Falls PostfixAdmin nicht verwendet wird, müssen wir jetzt die Benutzer-Tabelle anlegen:

mysql> CREATE TABLE users (id INT UNSIGNED AUTO_INCREMENT NOT NULL, username VARCHAR(128) NOT NULL, domain VARCHAR(128) NOT NULL, password VARCHAR(128) NOT NULL, UNIQUE (id), PRIMARY KEY (username, domain));
mysql> quit;

Konfiguration

SSL Zertifikat

Hilfe zu Erstellung eines SSL-Zertifikates siehe SSL Zertifikat


Erstelltes Zertifikat in der Datei /etc/dovecot/conf.d/10-ssl.conf eintragen.

ssl = required
ssl_cert = </etc/ssl/certs/dovecot.crt
ssl_key = </etc/ssl/private/dovecot.key

Key und Zeritikat müssen für den Benutzer mail lesbar sein:

sudo chown vmail:vmail /etc/ssl/certs/dovecot.crt
sudo chown vmail:vmail /etc/ssl/private/dovecot.key

Speicherort der Mails

Für die beschriebene Installation werden virtuelle Benutzer verwendet. Virtuelle Benutzer sind Benutzer, die sich nicht am System anmelden können.

Zuerst erstellen wir ein Grundverzeichnis, das dem Benutzer mail gehört. Hier werden später in den entsprechenden Unterverzeichnissen die Mails einsortiert.

sudo mkdir /var/vmail/
sudo chown vmail:vmail /var/vmail/

Das Mailverzeichnis wird in der Datei /etc/dovecot/conf.d/10-mail.conf eingetragen:

mail_location = maildir:/var/vmail/%d/%n
mail_privileged_group = vmail
# 109 = uid of user vmail
first_valid_uid = 109

Weiters wird hier noch das empfohlene Format maildir verwendet, was durch die Voranstellung von maildir: vor dem Pfad gekennzeichnet wird.

%d wird dann im laufenden Betrieb durch die Damain und %n durch den Benutzernamen ersetzt.

Benutzer Authentifizierung

Anlegen eines Benutzergrundverzeichnisses, das dem Benutzer vmail gehört (Benutzer mail muss darauf auch Schreibrechte haben - daher zur Gruppe hinzufügen)

sudo addgroup --system --no-create-home --disabled-login --group vmail
sudo adduser --system --no-create-home --disabled-login --ingroup vmail vmail
sudo mkdir /home/vmail/
sudo chown vmail:vmail /home/vmail/

Datei /etc/dovecot/conf.d/10-auth.conf:

disable_plaintext_auth = yes
auth_mechanisms = plain login

# Folgende Zeile auskommentieren:
# !include auth-system.conf.ext

# Folgende Zeile einkommentieren:
!include auth-sql.conf.ext

In der Datei /etc/dovecot/conf.d/auth-sql.conf.ext folgende Zeile ausbessern / einkommentieren:

# Database driver: mysql, pgsql, sqlite
userdb {
  driver = static
  args = uid=vmail gid=vmail home=/home/vmail/%u
}

Datei /etc/dovecot/dovecot-sql.conf.ext:

# Database driver: mysql, pgsql, sqlite
driver = mysql

connect = host=localhost dbname=mails user=mailserver password=<password>

default_pass_scheme = SHA512-CRYPT

Falls PostfixAdmin verwendet wird:

password_query = SELECT local_part, domain, password FROM mailbox WHERE local_part = '%n' AND domain = '%d'

Falls PostfixAdmin nicht verwendet wird:

password_query = SELECT username, domain, password FROM users WHERE username = '%n' AND domain = '%d'

Benutzerdatenbank befüllen

Folgende Zeilen sind nur relevant, falls PostfixAdmin nicht verwendet wird:

Verschlüsseltes Passwort erstellen:

doveadm pw -s SHA512-CRYPT

Eintrag in Datenbank erstellen:

insert into users (username, domain, password) values ('<benutzer>', '<domain.tld>', '$6$A3ZAyqvdkl4nc8BM$bz8YAW7/0B1DcE2I37epHO/p33MbdVKb0FbGH56Ey1KVO1.m3NPL/s5v35NwFrSZMPTBkrc6DDX6rx2MCQhUa0');

SASL / LMTP

Datei /etc/dovecot/conf.d/10-master.conf:

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0660
    group = postfix
    user = postfix
  }

  user = vmail
}

service auth {
  unix_listener auth-userdb {
    mode = 0666
    user = vmail
    group = vmail
  }

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
}

Allgemein

Datei /etc/dovecot/dovecot.conf:

# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol

listen = *, ::

base_dir = /var/run/dovecot/

# Greeting message for clients
login_greeting = Dovecot ready.

!include conf.d/*.conf
!include_try local.conf

postmaster_address = <valid mail address>

# Passedb SQL
passdb {
    driver = sql
    args = /etc/dovecot/dovecot-sql.conf.ext
}

Links

http://wiki.dovecot.org/de/

https://wiki.ubuntuusers.de/Dovecot_2/

https://help.ubuntu.com/community/PostfixDovecotSASL


Weiter zu Postfix

Zurück zu Mailserver einrichten