Dovecot (Ubuntu 16.04): Unterschied zwischen den Versionen

Aus Tutorials
Zur Navigation springen Zur Suche springen
 
(24 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{note|Noch in Bearbeitung}}
== Installation ==
== Installation ==
<pre>
<pre>
sudo apt-get install -y dovecot-core dovecot-imapd dovecot-pop3d dovecot-mysql
sudo apt-get install -y dovecot-core dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-lmtpd
</pre>
</pre>


Zeile 64: Zeile 61:
mail_location = maildir:/var/vmail/%d/%n
mail_location = maildir:/var/vmail/%d/%n
mail_privileged_group = vmail
mail_privileged_group = vmail
# 109 = uid of user vmail
# 126 = uid of user vmail
first_valid_uid = 109
first_valid_uid = 126
</pre>
</pre>


Zeile 71: Zeile 68:


''%d'' wird dann im laufenden Betrieb durch die Damain und ''%n'' durch den Benutzernamen ersetzt.
''%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)
<pre>
sudo mkdir /home/vmail/
sudo chown vmail:vmail /home/vmail/
</pre>
Datei <code>/etc/dovecot/conf.d/10-auth.conf</code>:
<pre>
sudo vi /etc/dovecot/conf.d/10-auth.conf
</pre>
<pre>
disable_plaintext_auth = yes
auth_mechanisms = plain login
# Folgende Zeile auskommentieren:
# !include auth-system.conf.ext
# Folgende Zeile einkommentieren:
!include auth-sql.conf.ext
</pre>
In der Datei <code>/etc/dovecot/conf.d/auth-sql.conf.ext</code> folgende Zeile ausbessern / einkommentieren:
<pre>
sudo vi /etc/dovecot/conf.d/auth-sql.conf.ext
</pre>
<pre>
# Database driver: mysql, pgsql, sqlite
userdb {
  driver = static
  args = uid=vmail gid=vmail home=/home/vmail/%u
}
</pre>
Datei <code>/etc/dovecot/dovecot-sql.conf.ext</code>:
<pre>
sudo vi /etc/dovecot/dovecot-sql.conf.ext
</pre>
{{note|'126' is 'gid' and 'uid' of user 'vmail'}}
<pre>
# Database driver: mysql, pgsql, sqlite
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=<password>
default_pass_scheme = SHA512-CRYPT
password_query = SELECT local_part, domain, password FROM mailbox WHERE local_part = '%n' AND domain = '%d'
user_query = SELECT ('126') as 'uid', ('126') as 'gid'
</pre>
=== SASL / LMTP ===
Datei <code>/etc/dovecot/conf.d/10-master.conf</code>:
<pre>
sudo vi /etc/dovecot/conf.d/10-master.conf
</pre>
<pre>
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
  }
}
</pre>
=== Mail-Ordner automatisch erstellen ===
Standardmäßig werden Ordner nict automatisch angelegt. Dazu muss die Datei ''/etc/dovecot/conf.d/15-mailboxes.conf'' angepaßt werden:
<pre>
sudo vi /etc/dovecot/conf.d/15-mailboxes.conf
</pre>
Bei allen Ordnern ''auto=create'' hinzufügen:
<pre>
namespace inbox {
  # These mailboxes are widely used and could perhaps be created automatically:
  mailbox Drafts {
    special_use = \Drafts
    auto=create
  }
  mailbox Junk {
    special_use = \Junk
    auto=create
  }
  mailbox Trash {
    special_use = \Trash
    auto=create
  }
  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.
  mailbox Sent {
    special_use = \Sent
    auto=create
  }
  mailbox "Sent Messages" {
    special_use = \Sent
    auto=create
  }
}
</pre>
=== Allgemein ===
Datei <code>/etc/dovecot/dovecot.conf</code>:
<pre>
sudo vi /etc/dovecot/dovecot.conf
</pre>
<pre>
# 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>
# PassDB SQL
passdb {
    driver = sql
    args = /etc/dovecot/dovecot-sql.conf.ext
}
</pre>
== Dovecot neustarten ==
<pre>
sudo service dovecot restart
</pre>
== Probleme ==
=== [private/dovecot-lmtp]: No such file or directory) ===
Das Paket <code>dovecot-lmtpd</code> war nicht installiert:
<pre>
sudo apt-get install dovecot-lmtpd
</pre>


== Links ==
== Links ==
Zeile 76: Zeile 247:
[https://wiki.ubuntuusers.de/Dovecot_2/ https://wiki.ubuntuusers.de/Dovecot_2/]
[https://wiki.ubuntuusers.de/Dovecot_2/ https://wiki.ubuntuusers.de/Dovecot_2/]


Weiter zu [[Postfix (Ubuntu 16.04)|Postfix]]


Zurück zu [[Mailserver einrichten (Ubuntu 16.04)|Mailserver einrichten]]
Zurück zu [[Mailserver einrichten (Ubuntu 16.04)|Mailserver einrichten]]

Aktuelle Version vom 20. März 2018, 23:53 Uhr

Installation

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

Virtuellen Benutzer anlegen

sudo addgroup --system --no-create-home --disabled-login --gid 126 vmail
sudo adduser --system --no-create-home --disabled-login --uid 126 --ingroup vmail vmail

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.

sudo vi /etc/dovecot/conf.d/10-ssl.conf
ssl = required
ssl_cert = </etc/ssl/certs/dovecot.crt
ssl_key = </etc/ssl/private/apache.key

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

sudo chmod a+r /etc/ssl/certs/dovecot.crt
sudo chmod a+r /etc/ssl/private/apache.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 vmail 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:

sudo vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/var/vmail/%d/%n
mail_privileged_group = vmail
# 126 = uid of user vmail
first_valid_uid = 126

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 mkdir /home/vmail/
sudo chown vmail:vmail /home/vmail/

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

sudo vi /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:

sudo vi /etc/dovecot/conf.d/auth-sql.conf.ext
# Database driver: mysql, pgsql, sqlite
userdb {
  driver = static
  args = uid=vmail gid=vmail home=/home/vmail/%u
}

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

sudo vi /etc/dovecot/dovecot-sql.conf.ext

'126' is 'gid' and 'uid' of user 'vmail'

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

connect = host=localhost dbname=postfix user=postfix password=<password>

default_pass_scheme = SHA512-CRYPT

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

user_query = SELECT ('126') as 'uid', ('126') as 'gid'

SASL / LMTP

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

sudo vi /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
  }
}

Mail-Ordner automatisch erstellen

Standardmäßig werden Ordner nict automatisch angelegt. Dazu muss die Datei /etc/dovecot/conf.d/15-mailboxes.conf angepaßt werden:

sudo vi /etc/dovecot/conf.d/15-mailboxes.conf

Bei allen Ordnern auto=create hinzufügen:

namespace inbox {
  # These mailboxes are widely used and could perhaps be created automatically:
  mailbox Drafts {
    special_use = \Drafts
    auto=create
  }
  mailbox Junk {
    special_use = \Junk
    auto=create
  }
  mailbox Trash {
    special_use = \Trash
    auto=create
  }

  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.
  mailbox Sent {
    special_use = \Sent
    auto=create
  }
  mailbox "Sent Messages" {
    special_use = \Sent
    auto=create
  }
}

Allgemein

Datei /etc/dovecot/dovecot.conf:

sudo vi /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>

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

Dovecot neustarten

sudo service dovecot restart

Probleme

[private/dovecot-lmtp]: No such file or directory)

Das Paket dovecot-lmtpd war nicht installiert:

sudo apt-get install dovecot-lmtpd

Links

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


Weiter zu Postfix

Zurück zu Mailserver einrichten