ubuntuusers.de

Postfix, Dovecot, MySQL, saslauthd - Kritik und Anregungen

Status: Gelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

tskv

Anmeldungsdatum:
5. Oktober 2011

Beiträge: 149

Wohnort: Vaals

Hallo zusammen,

Nach einem Jahr mit einem Plesk Server arbeite ich gerade an meinem ersten, selbst-administrierten (v)Server. Entsprechende Schritte auf dem Live-Server bereite ich auf einem lokalen (KVM) Server vor und teste sie so gut als möglich, bevor der entsprechende Dienst auch auf dem Live System aktiviert wird. Der bislang deutlich mächtigste (und vorerst auch letzte) Bissen ist dabei der Komplex Email, der mich jetzt mindestens 14 Tage beschäftigt hat.

Auf dem späteren Zielsystem laufen vorwiegend eigene PHP Anwendungen (TYPO3) unter mehreren Kundendomains. Meine Kunden sind fast ausschließlich fachfremd, so dass nur ich die Administration übernehme. Für meinen eigenen Komfort gibt es eine Management Subdomain, ausschließlich ansprechbar über ssl und Basic Auth, mit Statistiken (awstats), phpmyadmin und Apache Server Status). phpmyadmin läuft mit anderer php.ini (längere Scriptlaufzeiten, anderes open_basedir etc.) als die gehosteten TYPO3 Projekte (ich nutze fcgid/suexec). Die Management Subdomain aktiviere ich nur, wenn ich sie brauche (a2ensite/a2dissite).

Ich habe mich für Postfix, Dovecot, saslauthd, MySQL entschieden. Auf dem Entwicklungsserver scheint auch alles zu funktionieren, ausser dem Versand nach aussen, der wahrscheinlich am fehlenden DNS Server bzw. reverse Mapping scheitert (ein DNS Server macht in meinem LAN keinen Sinn, da die Rechner nicht immer laufen und mein Router zu doof ist, ich arbeite also provisorisch mit /etc/hosts). Auf dem Live-System kann ich die DNS Server von Host Europe nutzen.

Selbst nach langer Beschäftigung mit dem Thema Email bleibt eine Menge an Zweifel. Ich wäre Euch also dankbar, wenn Ihr Euch meine Konfiguration einmal kritisch anschauen würdet. Ich poste alle relevanten Infos, lasse aber die 4 mysql-*_*.cf weg. Meine Konfiguration ist ein Konglomerat aus 7 ähnlichen Tutorials, wobei in fast allen irgendwelche, selbst mir ersichtliche, Schwachstellen steckten:

/etc/hostname: demokrit.example-local.eu /etc/mailname: demokrit.example-local.eu Als Zertifikat kommt ein selbstgezeichnetes (eigene CA) Wildcard Zertifikat zum Einsatz: *.example-local.eu

/etc/postfix/main.cf:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Don't be too verbose 
smtpd_banner = $myhostname ESMTP $mail_name 
biff = no 

# appending .domain is the MUA's job. 
append_dot_mydomain = no 

# Uncomment the next line to generate "delayed mail" warnings 
#delay_warning_time = 4h 

readme_directory = no 

myhostname = demokrit.example-local.eu 
alias_maps = hash:/etc/aliases 
alias_database = hash:/etc/aliases 
#myorigin = /etc/mailname
mydestination = demokrit.example-local.eu localhost localhost.localdomain 
mynetworks = 127.0.0.0/8 
relayhost = 
mailbox_command = 
mailbox_size_limit = 0 
message_size_limit = 30720000 
recipient_delimiter = + 
inet_interfaces = all 
inet_protocols = all 

# TLS parameters 
#smtpd_use_tls=yes (depreciated, use smtpd_tls_security_level) 
smtpd_tls_security_level=may 
smtp_tls_security_level=may 
smtp_tls_note_starttls_offer = yes 
smtpd_tls_cert_file=/etc/ssl/certs/wc.example-local.eu.cert.crt 
smtpd_tls_key_file=/etc/ssl/private/wc.example-local.eu.unsecure.key 
smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem 
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache 
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache 

# Logging (Production: smtpd_tls_loglevel = 0 (default) 
smtpd_tls_loglevel = 1 

# Authentication 
# dovecot is added as a service in master.cf, so do not use 
# 'smtpd_sasl_type = dovecot' here
smtpd_sasl_auth_enable = yes 
broken_sasl_auth_clients = yes 
smtpd_sasl_authenticated_header = yes 
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination 
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps 

# Virtual mailboxes
virtual_mailbox_base = /home/vmail 
virtual_transport = dovecot 
virtual_alias_domains = 
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf 
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf 
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf 
virtual_uid_maps = static:5000 
virtual_gid_maps = static:5000 
virtual_create_maildirsize = yes 
virtual_maildir_extended = yes 
dovecot_destination_recipient_limit=1

/etc/default/saslauthd:

1
2
3
4
5
6
7
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

/etc/pam.d/smtp:

1
2
auth    required   pam_mysql.so user=mail_admin passwd=mySecretPw host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1 
account sufficient pam_mysql.so user=mail_admin passwd=mySecretPw host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1

/etc/postfix/sasl/smtpd.conf:

1
2
3
4
5
6
7
8
9
pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1
sql_user: mail_admin
sql_passwd: mySecretPw
sql_database: mail
sql_select: select password from users where email = '%u'

/etc/postfix/master.cf (only added/edited parts):

1
2
3
4
5
6
7
8
9
# Add submission port 587
submission inet n       -       -       -       -       smtpd
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
# Add dovecot as service
dovecot   unix  -       n       n       -       -       pipe 
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

dovecot -n

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 1.2.9: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-38-server x86_64 Ubuntu 10.04.3 LTS ext4
log_timestamp: %Y-%m-%d %H:%M:%S 
protocols: imap imaps pop3 pop3s
ssl_cert_file: /etc/ssl/certs/wc.example-local.eu.cert.crt
ssl_key_file: /etc/ssl/private/wc.example-local.eu.unsecure.key
login_dir: /var/run/dovecot/login
login_executable(default): /usr/lib/dovecot/imap-login
login_executable(imap): /usr/lib/dovecot/imap-login
login_executable(pop3): /usr/lib/dovecot/pop3-login
mail_privileged_group: mail
mail_location: maildir:/home/vmail/%d/%n/Maildir
mbox_write_locks: fcntl dotlock
mail_executable(default): /usr/lib/dovecot/imap
mail_executable(imap): /usr/lib/dovecot/imap
mail_executable(pop3): /usr/lib/dovecot/pop3
mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
mail_plugin_dir(pop3): /usr/lib/dovecot/modules/pop3
namespace:
  type: private
  separator: .
  prefix: INBOX.
  inbox: yes
  list: yes
  subscriptions: yes
lda:
  postmaster_address: postmaster@example-local.eu
  mail_plugins: sieve
  log_path: /home/vmail/dovecot-error.log
  info_log_path: /home/vmail/dovecot-info.log
  global_script_path: /home/vmail/globalsieverc
  auth_socket_path: /var/run/dovecot/auth-master
auth default:
  mechanisms: plain login
  passdb:
    driver: pam
  passdb:
    driver: sql
    args: /etc/dovecot/dovecot-sql.conf
  userdb:
    driver: passwd
  userdb:
    driver: static
    args: uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
  socket:
    type: listen
    client:
      path: /var/spool/postfix/private/auth-client
      mode: 432
      user: postfix
      group: postfix
    master:
      path: /var/run/dovecot/auth-master
      mode: 384
      user: vmail

/etc/aliases:

1
2
postmaster: root 
root: webadmin@example-local.eu # the latter is a virt. dom account

Tests:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 demokrit.example-local.eu ESMTP Postfix
ehlo localhost
250-demokrit.example-local.eu
250-PIPELINING
250-SIZE 30720000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

(auch telnet Mailversand klappt)

Versand vom Client an virtuelle Domain oder Systemuser klappt und erzeugt folgende Logeinträge:

/var/log/mail.log:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Feb 12 11:02:05 demokrit postfix/smtpd[1455]: connect from unknown[192.168.2.10]
Feb 12 11:02:05 demokrit postfix/smtpd[1455]: setting up TLS connection from unknown[192.168.2.10]
Feb 12 11:02:05 demokrit postfix/smtpd[1455]: Anonymous TLS connection established from unknown[192.168.2.10]: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)
Feb 12 11:02:05 demokrit postfix/smtpd[1455]: 3724E2A01B0: client=unknown[192.168.2.10], sasl_method=PLAIN, sasl_username=webadmin@example-local.eu
Feb 12 11:02:05 demokrit postfix/cleanup[1458]: 3724E2A01B0: message-id=<4F378E1C.2050605@example-local.eu>
Feb 12 11:02:05 demokrit postfix/qmgr[809]: 3724E2A01B0: from=<webadmin@example-local.eu>, size=702, nrcpt=1 (queue active)
Feb 12 11:02:05 demokrit postfix/smtpd[1455]: disconnect from unknown[192.168.2.10]
Feb 12 11:02:05 demokrit postfix/pipe[1460]: 3724E2A01B0: to=<tsk@example-local.eu>, relay=dovecot, delay=0.66, delays=0.21/0.04/0/0.41, dsn=2.0.0, status=sent (delivered via dovecot service)
Feb 12 11:02:05 demokrit postfix/qmgr[809]: 3724E2A01B0: removed
Feb 12 11:02:21 demokrit postfix/smtpd[1448]: disconnect from unknown[::1]

Soviel zur Konfiguration. Jetzt zu meinen Fragen:

1. Kann ich mich mit diesem Konzept trauen, auf den Live-Server zu wechseln, oder habe ich wichtige, sicherheitsrelevante Dinge übersehen? Dies ist meine wichtigste Frage an die Experten.

2. Eine Verständnisfrage zu den Zertifikaten: Ich habe in der main.cf mein Wildcard Zertifikat über smtpd_tls_cert_file/smtpd_tls_key_file verlinkt, nutze aber dovecot, wo die Zertifikate erneut verlinkt werden. Brauche ich tatsächlich beide Einträge? Ich möchte auch die Kommunikation zwischen Mailservern verschlüsseln, zumindest falls möglich (smtp_tls_security_level=may). Sehe ich das richtig, dass der fremde Mailserver das Zertifikat nicht prüft, aber dennoch als Voraussetzung für eine TLS Verbindung erfordert? Macht in diesem Fall der Eintrag meines eigenen Root CA's (smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem) überhaupt Sinn?

3. Sehe ich das richtig, dass der Submission Port 587 nur von Client-Seite genutzt wird, dass man also zusätzlich den Port 25 für Server-to-Server offen lassen muss? Oder kann/sollte man Port 25 schließen? In meiner jetzigen Konfiguration ist lediglich der Port 587 in der master.cf konfiguriert, aber nicht weiter fine-getuned. Sehe ich das richtig, dass dies Dovecot/saslauthd übernimmt und es deshalb so bleiben kann?

4. Wenn die Basics laufen, möchte ich Virenschutz und Black/Greylisting und Webmail hinzufügen. Spamhouse darf ich aber nur unkommerziell nutzen. Mein tägliches Mail-Aufkommen ist winzig (<50 für alle gehosteten Domains pro Tag). Kennt Ihr andere, empfehlenswerte Blacklists, die man auch kleingewerblich nutzen darf? Welches (vorzugsweise php-basierenden) Webmail würdet Ihr empfehlen?

5. Vom Bauchgefühl her benötige ich kein Postfixadmin, da ich phpmyadmin habe. Gibt es dennoch Gründe dafür?

6. In meiner aktuellen Konfiguration ist eine virtuelle Mail Domain namentlich identisch mit der Domain gem. FQDN. Schickt jetzt ein Systemuser von der Konsole eine Mail, so kommt diese beim Empfänger unter root@demokrit.example-local.eu an, während die virtuellen Domain user unter ihrer korrekten Domain kommunizieren (webadmin@example-local.eu). In dieser Konfiguration klappt ein Reply immer. Setze ich über myorigin auf mydomain, so geht eine Mail von root raus unter root@example-local.eu (also im identischen Namespace wie die virtuellen Domainuser), dafür geht ein Reply in die Hose. Kann man dies irgendwie beheben, bzw. sollte man dies überhaupt? Der FQDN macht ja bei Systemusern sogar Sinn, um sie von gleichlautenden Usern anderer Server zu unterscheiden.

7. Gibt es heute noch Gründe für pop3, oder schenkt man sich dies besser?

Mehr Fragen habe ich derzeit nicht. Bitte entschuldigt den vielen Text, aber ohne Konfiguration wären meine Fragen zu akademisch. Bin natürlich auch für jede Teilantwort dankbar.

Beste Grüße,

Thomas

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Moin, Mischungen aus 7 verschiedenen Tuts sind immer übel. Entweder man versteht die Doku und baut nach dieser alles auf oder man haltet sich an ein Tutorial, bspw. http://wiki.nefarius.at/linux/der_perfekte_mail-server

P.S.: wenn Postfix und Dovecot direkt den mysql befragen, braucht man keinen saslauthd, wie gesagt, Tut-Mischmüll...

P.P.S.: Du möchtest dich mit der Dokumentation dieser Dienste beschäftigen und nicht blind C&P tippseln.

tskv

(Themenstarter)

Anmeldungsdatum:
5. Oktober 2011

Beiträge: 149

Wohnort: Vaals

Natürlich gebe ich Dir vollkommen recht. Verständnis ist immer besser als C&P. Aber irgendwie muss man einen Einstieg finden – und folgt deshalb zuerst einmal einem Tutorial. Bei mir waren es mehrere (nacheinander), und ich stellte erst mit wachsendem Verständnis fest, dass viele auf meine Problematik gar nicht passten (etwa 80% der Tuts beschäftigen sich mit System-usern). Schließlich bin ich nach einem auf Linode vorgegangen, diesem hier:

http://library.linode.com/email/postfix/dovecot-mysql-ubuntu-10.04-lucid

Es enthält m.E. zwei Fehler, die ich auch den Autoren (als Mutmaßung) mitgeteilt habe. Da (nach eigener Korrektur) alles funktionierte, habe ich die tatsächliche Doku primär unter Aspekten dieses Tuts gelesen. Speziell den Betrieb von Dovecot als Service (Eintrag über master.cf) habe ich in keiner offiziellen Doku gefunden. Da es aber funktionierte (und in einem weiteren, ähnlichen Tut auch genutzt wurde), habe ich es als weitere, legitime Methode angesehen.

Wenn ich Dich richtig verstehe, könnte ich mir saslauthd sparen. Gehe ich recht in der Annahme, dass dazu dann der bei mir nicht genutzte Eintrag 'smtpd_sasl_type = dovecot' gehören würde? Ich werde mir nochmal das von Dir zitierte Tut anschauen. Hatte ich auch schon mal quer drüber gelesen, war aber an dem rot hervorgehobenen Bereich zu „myorigin“ kleben geblieben (was ja bei mir wider Erwarten läuft).

Der Mail Bereich ist für mich der erste im NIX Umfeld, der durch „Über“dokumentation und exzessive Parametrierungsmöglichkeiten in einem grauen Nebel bleibt. Speziell der Ubuntu Server Guide, an vielen Stellen hervorragend, versagt hier total.

tskv

(Themenstarter)

Anmeldungsdatum:
5. Oktober 2011

Beiträge: 149

Wohnort: Vaals

Hmm...nach erster Durchsicht der beiden Tuts wäre eine Umstellung wohl recht einfach. Ein wesentlicher Unterschied scheint der Ablageort der vmail und das Logging (bei mir beides derzeit unter /home/vmail/). Logging unter /var/log/dovecot.log wäre zwar deutlich konsistenter, aber der vmail user würde dann Schreibrechte im Logverzeichnis benötigen, oder sehe ich das falsch? Derzeit habe ich da root:root 750. Oder loggt Dovecot bei Betrieb ohne saslauthd unter root?

Sehr ich das richtig, das Dovecot eigene Authentifizierungsmechanismen mitbringt, die aus Sicht von Postfix wie saslauth gesehen werden?

Könnte ich somit folgende Pakete wieder rausschmeißen?

1
libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql

käme mir sehr gelegen, denn ich möchte einen ultraschlanken Server. Bleibt schwierig, aber das Verständnis wächst.

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Ja genau, es verwaltet dann alles Dovecot mit seinem LDA. Dovecot verhält sich nicht nur wie der saslauthd, sondern bringt eben eine eigene SASL Implementierung mit.

tskv

(Themenstarter)

Anmeldungsdatum:
5. Oktober 2011

Beiträge: 149

Wohnort: Vaals

Cool, dann stelle ich das morgen um. Kannst Du zum Logging etwas sagen?

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Wo ist dein Problem?

chmod 666 /var/log/dovecot.log

tskv

(Themenstarter)

Anmeldungsdatum:
5. Oktober 2011

Beiträge: 149

Wohnort: Vaals

Äh, nein, Du hast mich missverstanden. Derzeit hat nur root Schreibrechte in meinem /var/log Verzeichnis (root:root, 755). Das Dovecot log wird (zumindest in meiner derzeitigen Konfiguration) unter User/Gruppe vmail:vmail geschrieben. Möchte ich jetzt das Dovecot Log unter /var/log, so müsste ich nach meinem Verständnis die Rechte auf das Log Verzeichnis üppig ausdehnen. oder sehe ich das falsch?

Ich habe aber derzeit noch ein größeres Verständnisproblem. Es betrifft die Separierung zwischen lokalen und virtuellen Domains (den rot hervorgehobenen Bereich im Tutorial).

1
myhostname = demokrit.example.com # Der muss so heißen

Ich benötige aber zwingend example.com als virtuelle Domain, da ich nur einen System-user, aber >40 virtuelle Nutzer habe.

Verhindere ich eine Verwirrung von Postfix, wenn ich mit folgenden Werten arbeite:

1
2
3
4
myhostname = demokrit.example.com
mydomain = demokrit.local
myorigin = $mydomain
mydestination = demokrit.local, localhost.localdomain, localhost

Dann ginge eine Mail vom System unter z.B. root@demokrit.local raus, und könnte über /etc/aliases an einen virtuellen Domain User umgeleitet werden. Sehe ich das so richtig? Falls ja, so wäre der Hinweis im Tut., dass der reale Domainname nicht im myhostname auftauchen darf, zumindest grenzwertig.

Sorry für meine Verwirrung - aber das IST verwirrend. Und danke für Deine Geduld.

tskv

(Themenstarter)

Anmeldungsdatum:
5. Oktober 2011

Beiträge: 149

Wohnort: Vaals

Sodelle, und nur um mir selbst zu antworten.

ich habe jetzt eine Konfiguration gemäß "Der perfekte Mail-Server", und alles scheint (in meiner Entwicklungsumgebung) zu laufen. Webmail habe ich noch nicht - aber das sind Peanuts. Im Tut habe ich eine Ungereimtheit festgestellt (mysql bei Dovecot Setup, mysqli in dovecot.conf). Entsprechende Korrekturvorschläge habe ich unter dem Tut als Kommentar gepostet.

Meine Verwirrung hinsichtlich des Dovecot Logfiles beruhte auf der Annahme, dass es automatisch angelegt würde (was es nicht kann). Ein touch und 666 ist eine Lösung, aber noch keine, die mich dauerhaft glücklich macht.

Zu meinen Fragen aus dem ersten Beitrag:

add 1) Ja, nach weiteren Tests hinsichtlich des Dovecot Loggings.

add 2) Beide sind erforderlich, können aber auf das gleiche (Wildcard) Zertifikat verweisen.

add 3) Ich denke, beide Ports sind erforderlich (Betonung auf "ich denke")

add 4) Die Frage ist leider weiterhin offen - bekomm ich aber auch noch raus

add 5) Postfixadmin macht deutlich Sinn, auch parallel zu phpmyadmin

add 6) Es läuft wie in meinem vorhergehenden Beitrag skizziert.

add 7) Ich kenne keinen

Glückauf

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

tskv schrieb:

Meine Verwirrung hinsichtlich des Dovecot Logfiles beruhte auf der Annahme, dass es automatisch angelegt würde (was es nicht kann). Ein touch und 666 ist eine Lösung, aber noch keine, die mich dauerhaft glücklich macht.

Himmel Arsch und Zwirn, wo ist dein Problem mit dem Logging?

Der Rest → Doku

Nefarius

Avatar von Nefarius

Anmeldungsdatum:
11. Dezember 2008

Beiträge: 1275

Hallo tskv,

danke für das Feedback, ich antworte aber lieber hier, da Disqus wenige/keine Formatierungsmöglichkeiten hat und der Text umständlich zu lesen ist. Also:

tskv schrieb:

1) Der unter „Vorbereitung“ aufgeführte Teil mit diversen zusätzlichen Paketquellen ist bei halbwegs aktuellen Distributionen (z.B. Ubuntu 10.04LTS) nicht mehr wirklich relevant.

Das HowTo wurde auf und für Debian "Lenny" 5.0 geschrieben, dass es auch auf Ubuntu funktioniert ist eher ein netter Nebeneffekt, da ich persönlich mit Ubuntu Server recht wenig am Hut habe und es auch nicht für ein ernst zu nehmendes Server-OS halte. Vielleicht schreibe ich es mal neu und lasse die Erkenntnisse der Jahre einfließen.

2) Die Beispiele wären vielleicht verständlicher, wenn zwischen zwei Beispielsdomänen unterschieden würde. Eine für die local delivery (z.B. example.local, muss nur lokal auflösbar sein), und eine beispielhafte virtuelle Domain (z.B. example.com).

Dieses Verständnis setze ich voraus, was ein Fehler war wie ich im Laufe der Zeit festgestellt habe, zu viele 0815-Admins trauen sich drüber obwohl sie von der Materie nur soviel verstehen, um erfolgreich Strg-C und Strg-V zu drücken. Darum fällt es mir schwer, zu unterscheiden, welche Information jetzt relevant und welche nur für Deppen weniger versierte Nutzer drin stehen muss.

myhostname = mymail.example.com mydomain = example.local myorigin = $mydomain mydestination = $mydomain, localhost.localdomain, localhost

Mit dieser Darstellung klappen bei mir sowohl die local- als auch die virtual delivery. Bei der derzeitigen Formulierung kann der Eindruck entstehen, dass die virtuelle Domain (example.com) nicht Teil des Hostnamens sein darf.

Wer diesen Eindruck bekommt hat nicht verstanden, wie DNS funktioniert. Auch das habe ich vorausgesetzt (Subdomain != Domain).

3) Dovecot setup: Bei der Installation wird, nach Beantwortung der Fragen, ein 'dovecot-sql.conf' mit den (sicherheitskritischen) datenbankrelevanten Settings erzeugt. Wählt man hier nicht mysql (wie im Tut), sondern mysqli, so kann der default Eintrag $CONF['database_type'] = $dbtype; in der dovecot.conf bleiben, und muss nicht überschrieben werden. Macht man es so, wie im Tut, sollte bei Installation und Parametrierung der gleiche Eintrag „mysqli“ gewählt werden, sonst klappt's nicht.

Keine Ahnung wovon du da redest. Mag sein, dass das debconf von Ubuntu anders gefüttert wird als bei Debian.

4) Dovecot Logging: log_path = /var/log/dovecot.log info_log_path = /var/log/dovecot.log Die zweite Angabe ist lt. Doku nicht erforderlich. Falls weggelassen, gilt automatisch der log_path auch für Infos und Warnings. Gibt man beide an, so sollten die Logfiles unterschiedlich sein (eines für Warnings/Errors, ein zweites für die Erfolge – und damit bestens geeignet z.B. für fail2ban).

Ok werde ich ändern.

Da Dovecot unter eigenem User loggt (der unter /var/log/ i.d.R. keine Schreibrechte hat, muss man den Logfile händisch anlegen (touch dovecot.log) und world writable (666) machen. Ohne dies klappte (bei mir) die Kommunikation mit dem Client nicht, und es wurde auch nicht geloggt. Allerdings ist mir mit 666 nicht besonders wohl.

Deliver loggt mit den Rechten des Benutzers dem die Mailbox gehört, also entweder für alle schreibbar machen oder deine eigene Rechte-Struktur ausdenken. Oder Delivers logging abdrehen.

5) Postfix TLS Parameter: smtpd_use_tls = yes scheint depreciated, aber noch funktionierend. Statt dessen wird smtpd_tls_security_level=may empfohlen. In wie weit auch ein „smtp_tls_security_level=may“ erforderlich/sinnvoll ist, kann ich noch nicht beurteilen. Dito bei „smtp_tls_note_starttls_offer = yes“

Weiß ich, und solange man noch Lenny verwendet wird es mit diesen Parametern auch funktionieren. Nochmal: ich schreibe für Debian.

Alles, was ich schreibe unter dem Vorbehalt, dass ich es bislang nur auf einem Entwicklungssystem im LAN betreibe/getestet habe.

Brav.

Mit beste Grüßen und Dank für die tolle Arbeit,

Danke

Thomas

Nefarius

tskv

(Themenstarter)

Anmeldungsdatum:
5. Oktober 2011

Beiträge: 149

Wohnort: Vaals

Das HowTo wurde auf und für Debian "Lenny" 5.0 geschrieben, dass es auch auf Ubuntu funktioniert ist eher ein netter Nebeneffekt

Ja, das steht klar und deutlich im Header. Mein Kommentar betrifft eher die anderen Kommentare, bei denen einige darauf hinweisen, das dies nicht alle verstanden haben.

Dieses Verständnis setze ich voraus, was ein Fehler war wie ich im Laufe der Zeit festgestellt habe, zu viele 0815-Admins trauen sich drüber obwohl sie von der Materie nur soviel verstehen, um erfolgreich Strg-C und Strg-V zu drücken. Darum fällt es mir schwer, zu unterscheiden, welche Information jetzt relevant und welche nur für Deppen weniger versierte Nutzer drin stehen muss.>

Darüber lässt sich natürlich streiten. Heute vor einem Jahr waren mir Linuxserver so fremd wie pouchierte Tiefseeschranusen. Heute bin ich viele Schritte weiter, habe alles auf Linux umgestellt und komme autodidaktisch i.d.R. zum Ziel. Eine begriffliche Unterscheidung der beiden Beispielsdomain wird m.E. bei der 'vacation_domain' relevant, die, zumindest nach meinem derzeitigen Verständnis, auf eine lokale Domain (ohne MX) verweist. Da ich sie (vorerst) nicht brauche, habe ich mich noch nicht tiefer damit beschäftigt.

Wer diesen Eindruck bekommt hat nicht verstanden, wie DNS funktioniert. Auch das habe ich vorausgesetzt (Subdomain != Domain).>

Gerade wenn Du doch schreibst, dass viele Möchtegern Admins mit diesem Punkt Probleme haben, wird deutlich, dass ein tieferes Verständnis von DNS zwar wünschenswert wäre, aber nicht als gegeben angenommen werden kann/muss/darf. Es geht doch primär um Verbesserungspotential eines ansonsten bereits hervorragenden Tuts.

Keine Ahnung wovon du da redest. Mag sein, dass das debconf von Ubuntu anders gefüttert wird als bei Debian.>

Das ist möglich. Unter Ubuntu steht in der (jungfräulichen/unveränderten) dovecot.conf: $CONF['database_type'] = $dbtype; Wenn man dies gemäß Tut mit mysqli überschreibt, sollte dieser Eintrag mit dem aus der automatisch erzeugten dovecot-sql.conf übereinstimmen, da ansonsten ein Connect fehlschlägt. Mag aber Ubuntu-spezifisch sein.

Deliver loggt mit den Rechten des Benutzers dem die Mailbox gehört>

Danke, das war der entscheidende Hinweis.

Nefarius

Avatar von Nefarius

Anmeldungsdatum:
11. Dezember 2008

Beiträge: 1275

Ich denke, das beste wird sein, wenn ich mal einen separaten Artikel zum Thema DNS verfasse. Was meinst du?

tskv

(Themenstarter)

Anmeldungsdatum:
5. Oktober 2011

Beiträge: 149

Wohnort: Vaals

Also, ich würde ihn sicher lesen ☺

tskv

(Themenstarter)

Anmeldungsdatum:
5. Oktober 2011

Beiträge: 149

Wohnort: Vaals

So, Roundcube läuft jetzt auch. Unter mod_fcgid natürlich schon wieder eine kleine Herausforderung.

Eine Sache ist mir noch am Tutorial aufgefallen, könnte auch wieder eine Ubuntu Besonderheit sein, glaube ich allerdings an dieser Stelle nicht.

Es betrifft die Konfiguration des SieveRules Plugins für Roundcube. Die aus der Distributionsdatei erstelle Datei /var/www/webmail/plugins/sieverules/config.inc.php enthält im Standard Referenzen zu zwei Regelsätzen, 'default' und 'example':

1
2
3
4
5
6
$rcmail_config['sieverules_default_file'] = '/etc/dovecot/sieve/default';

$rcmail_config['sieverules_auto_load_default'] = FALSE;

// Example sieve rule file
// $rcmail_config['sieverules_example_file'] = '/etc/dovecot/sieve/example';

Durch FALSE beim Autoload (default setting) spielt es beim ersten Eintrag keine Rolle, ob 'default' existiert oder nicht. Kommentiert man aber den Eintrag mit 'example' nicht aus, so quillt das Errorlog von Roundcube über, denn 'example“ existiert nicht (automatisch). Also: Entweder auskommentieren oder eine 'example' Konfiguration anlegen, und das Log ist zufrieden.

Eine Frage bliebe noch: Wieder mal Logging. Ich finde in der Roundcube Doku viele Beispiele zum Loggen unter /var/www/webmail/logs (so läuft es bei mir derzeit). Ist dies wirklich die beste Art zu loggen? Mein Versuch, auf 'syslog' umzustellen endete zwar unter /var/logs, allerdings unter user.log statt einem aussagekräftigerem Log-Titel. In welche Richtung müsste ich da weiter graben?

Antworten |