Ein eigener Mailserver – Teil1: postfix

Nachdem ich mich kürzlich entschieden habe, cbjck.de in Zukunft auf einem eigenen virtuellen Server zu betreiben (zu den genauen Gründen schreibe ich vielleicht noch mal einen Teil 0), habe ich gestern angefangen, diesen Server auf debian 6 „squeeze“ einzurichten.

Bevor die Domain umziehen kann, muss aber ein funktionsfähiger Mailserver eingerichtet sein, da mit dem Umzug auch der hosted-Mailserver abgeschaltet wird.  Also musste ich – zum ersten Mal – einen Mailserver einrichten, was ich im Folgenden, auch zur Dokumentation für mich selber erklären möchte. Die Wahl fiel auf  eine Kombination aus postfix und dovecot.

  1. allgemeine Einstellungen
  2. Hostname und Netzwerk
  3. virtuelle Domains und Mailboxes
  4. Mapping der Adressen auf die Mailboxes
  5. Authentifizierung
  6. Übersicht
  7. Links

 
Nach der Installation von postfix

aptitude install postfix

kann die Konfiguration in /etc/postfix beginnen. Die Hauptarbeit ist in der main.cf zu leisten.

allgemeine Einstellungen

Zuerst setzten wir den sog. SMTP-BAnner, mit dessen Hilfe jeder Client beim Verbinden mit dem Server einige Informationen über den Server erhalten. Um nicht mehr als nötig zu verraten, soll unser Server nur den Hostname und das verwendete Protokoll ausgeben:

smtpd_banner = $myhostname ESMTP (Debian/GNU)

Als nächstes deaktivieren wir biff, einen Dienst, der lokale Benutzer über neue Mails informiert. Da es keine Verknüpfung der lokalen Accounts mit den Mail-Accounts geben wird, ist er überflüssig.

biff = no

Postfix könnte unvollständige Mailadressen durch den eignen Hostname vervollständigen, wir wollen das aber nicht, da Spammer gerne versuchen unvollständige Mail-Adressen zu verwenden und sich so hinter dem SMTP-Server verstecken können. Also:

append_dot_mydomain = no
recipient_delimiter = +
readme_directory = no

Die beiden anderen Parameter sind allgemeinerer Natur und hier von keiner großen Wichtigkeit.

Hostname und Netzwerk

Als nächstes setzten wir den Hostname des Servers und die Domains für die er sich zuständig fühlen soll. Unser Server soll später einmal den Fully-Qualified-Hostname (FQHN) server.cbjck.de tragen, solange diese Domain aber noch dem alten Hostingpaket zugewiesen ist, bleiben wir bei dem generischen Namen, den uns Hosteurope zugewiesen hat. Dieser kann allerdings nicht dauerhaft bleiben, da er die IP-Adresse enthält und viele Mailhoster dies als Indiz für Spamaktivitäten (Bot auf einem infizierten Rechner mit dynamischer Adresse) sehen.

myhostname = lvpsxxx.-xxx.-xxx-xxx.dedicated.hosteurope.de
mydomain = lvpsxxx-xxx-xxx-xxx.dedicated.hosteurope.de
myorigin = $mydomain

myorigin wird als Hostname verwendet, wenn ein (authorisierter) Benutzer Mails ohne Domain versendet oder empfängt.

mydestination = $mydomain, localhost

Der Server soll nur an den Hostname bzw. localhost adressierte Mails annehmen. Alle weiteren Mail-Domains fügen wir erst später als „virtuelle Domains“ hinzu.

Aus den folgenden Netzwerken soll der Server Mails annehmen und versenden, ohne dass sich der Benutzer authentifizieren muss, wir nehmen nur localhost.

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

Da der Server ja ein echter Mailserver sein soll, der mit allen möglichen Rechnern Mails austauschen können soll, lassen wir ihn auf allen Ports lauschen:

inet_interfaces = all

virtuelle Domains und Mailboxes

Die Verwendung virtueller Mailboxen bietet zwei grundlegende Vorteile: einerseits ist man bei der Einrichtung von Domain, Accounts, Mailboxen und Aliasen sehr flexibel, andererseits gewinnt man an Sicherheit, da lediglich ein einziger (wenig privilegierter) Systembenutzer alle Mails verwalteten, anstelle eines shell-Benutzers für jeden Mailaccount.

Zur Einrichtung der virtuellen Postfächer fügen wir folgendes zur /etc/postfix/main.cf hinzu:

#Einstellungen für die virtuellen Mailboxen
virtual_mailbox_domains = /etc/postfix/virtual_domains

Damit legen wir eine Datei fest, in der wir zeilenweise die Domains eintragen, für die unser Server zuständig sein soll.

virtual_mailbox_base = /var/mail/vhosts

Unter dem Pfad /var/mail/vhosts sollen die Domains liegen.

virtual_mailbox_maps =hash:/etc/postfix/vmailbox

In der Datei /etc/postfix/vmailbox legen wir die Zuordnung der Mail-Adressen zu den einzelnen Accounts fest. Allerdings erwartet postfix eine Datenbank, dazu später mehr.

virtual_alias_maps = hash:/etc/postfix/virtual_alias

Hier legen wir – ebenfalls in einer Datenbank – Aliase zu den Mail-Adressen an.

virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

Dies sind die Einstellungen für den Systembenutzer, der die Verwaltung der Postfächer übernehmen soll. Diesen legen wir später als vmail an.

virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

Den Transport von postfix zum Postfach soll dovecot übernehmen. Zwar könnte postfix_virtual dies auch erledigen, aber da wir dovecot sowieso als IMAP-Server verwenden wollen und es darüber hinaus noch über weitere Möglichkeiten etwa zur Filterung von Mails verfügt, bietet es sich an dovecot zu verwenden.

mailbox_size_limit = 0

Wir geben keine Größenbeschränkung vor, da vermutlich nur einige wenige Postfächer existieren werden. Bei mehr böte es sich auch an die Zuordnung der virtual_mailboxes in einer „echten“ Datenbank (mySQL, postgreSQL) zu organisieren.

Nun legen wir den Systembenutzer und die Gruppe vmail an, die die Verwaltung der Mailboxes übernehmen soll. Dazu braucht er aber keinen login. Wie oben schon angekündigt soll der User vmail die UID 5000 und die Gruppe vmail die GID 5000 haben.

groupadd -g 5000 vmail
useradd -s /usr/bin/nologin -u 5000 -g 5000 vmail

Zur Sicherheit überprüfen wir, ob das geklappt hat:

id vmail

sollte folgende Ausgabe liefern:

uid=5000(vmail) gid=5000(vmail) groups=5000(vmail)

Fehlt noch das Mailbox-Verzeichnis in /var/mail. Wir erzeugen es und ordnen es dem Benutzer vmail zu.

mkdir -p /var/mail/vhosts/example.com
chown -R vmail:vmail /var/mail/vhosts

Jetzt fehlen eigentlich nur noch die Mailadressen und ihre Zuordnungen.

Mapping der Adressen auf die Mailboxes

Wie oben erwähnt geschieht das Mapping (also die Zuordnung) in drei Dateien, virtual_domains, vmailboxes, virtual_aliases.

In virtual_domains stehen Zeienweise die Domein, für die vhosts vorgehalten werden. Die Zuordnung der Domains zum Server geschieht über die mX-Records des DNS-Servers und soll hier nicht weiter interessieren. Die Datei könnte zum Besipiel so aussehen:

example.com
beispiel.de

vmailboxes ordnet die Mail-Adressen einem Postfach zu, z.B.

test@example.com               example.com/test/
muster@beispiel.de             beispiel.de/muster/

Den Basispfad der vhosts hatten wir ja schon gesetzt. Der abschließende Slash sorgt für die Verwendung von Maildir (jede Mail = eine Datei), ohne würde mbox verwendet (ein Postfach = eine Datei) was im Zweifel langsamer wäre.

virtual_aliases erzeugt für Aliase auf die Mail-Adressen, z.B, sorgt

max.muster@beispiel.de    muster@beispiel.de

dafür, dass Mails an max.muster@beispiel.de auf muster@beispiel.de weitergeleitet werden.

Damit postfix die Dateien vmailboxes und virtual_aliases lesen kann, müssen noch die gehashten Datenbanken erzeugt werden. Dies erledigt postmap.

postmap vmboxes
postmap virtual_aliases

Dies müssen wir nach jeder Änderung von vmailboxes und virtual_aliases machen.

Nun müssen wir nur noch postfix dovecot-delivery als LDA (local distritubtion agent) zuordnen. Dies geschieht, in dem wir am Ende der /etc/potfix/master.cf folgende Zeilen hinzufügen:

dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}

Damit die Zustellung der Mails auch wirklich funktioniert, benötigt dovecot noch einige Informationen. Dazu mehr aber mehr in Teil 2.

Authentifizierung

Das SMTP-Protokoll an sich biete keine Authentifizierungsmöglichkeiten. Damit aber nicht jeder von unserem Server aus MAils verschicken kann (und wir so zu Spam-Schleuder werden, Stichwort open relay) benötigen wir eine Authentifizierung der Benutzer. Dies kann über die SASL-Bibliotheken geschehen, die SMTP zu SMTP AUTH erweitern. In unserem Fall nutzen wir die SASL-Schnittstelle von Dovecot.

Dazu fügen wir folgendes zur /etc/postfix/main.cf hinzu:

smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $mydomain

Damit ist die Authentifizierung via SASL aktiviert und als SASL-Typ dovecot eingestellt. Die Schnittstelle in /private/auth muss noch von dovecot aus bereitgestellt werden (siehe Teil 2). Für die Schnittstelle wird keine absoluter Pfad (wie /var/spool/postfix) verwendet, damit postfix auch problemlos in einer chroot-Umgebung laufen kann.

Zwar verlangen wir nun bereits eine Authentifizierung, dazu wird allerdings das Passwort quasi im Klartext übermittelt (base64-codiert). Damit keiner mitlesen kann sollte die Verbindung per SSL/TLS verschlüsselt werden. Dazu verwenden wir ein selbst signiertes Zertifikat (Anleitung).

smtpd_use_tls=yes
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtpd_tls_cert_file=/etc/ssl/certs/cert.pem
smtpd_tls_key_file=/etc/ssl/private/key.pem
smtpd_tls_session_cache_database = \
 btree:${data_directory}/smtpd_scache

smtpd_tls_received_header = yes
tls_random_source = dev:/dev/urandom

Der (passwortlose) private Schlüssel in /etc/ssl/private sollte natürlich nur von root lesbar sein.

Damit die Konfiguration auch eingelesen wird sollten wir postfix noch neu starten:

/etc/init.d/postfix restart

Eventuell auftretende Fehler laufen im Standardlog /var/log/mail.log auf, log-leven und -file lassen sich natürlich anpassen.

Übersicht

Zur Übersicht noch einmal die ganze /etc/postfix/main.cf:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
recipient_delimiter = +
readme_directory = no
myhostname = lvpsxxx-xxx-xxx-xxx.dedicated.hosteurope.de
mydomain = lvpsxxx-xxx-xxx-xxx.dedicated.hosteurope.de
myorigin = $mydomain
#Domains, für die der Server zuständndig sein soll
mydestination = $mydomain, localhost
#Was ist lokal
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
#Interfaces auf denen gelauscht wird:
inet_interfaces = all
##Einstellungen für die virtuellen Mailboxen
virtual_mailbox_domains = /etc/postfix/virtual_domains
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps =hash:/etc/postfix/vmailbox
virtual_alias_maps = hash:/etc/postfix/virtual_alias
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
mailbox_size_limit = 0
###SASL für gesichrten SMTP-Login
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $mydomain
smtpd_use_tls=yes
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtpd_tls_cert_file=/etc/ssl/certs/cert.pem
smtpd_tls_key_file=/etc/ssl/private/key.pem
smtpd_tls_session_cache_database =
 btree:${data_directory}/smtpd_scache

smtpd_tls_received_header = yes
tls_random_source = dev:/dev/urandom

Links

16 thoughts on “Ein eigener Mailserver – Teil1: postfix

  1. Markus Reply

    Hallo zusammen!

    Ich hab da ein paar Probleme mit dem Aufsetzen des Mailservers. Hab mich exakt an die Anleitung gehalten.

    Beim Test: echo „%Dies ist ein Test..“ | mail -s „Testmail“
    > meinName@meineDomain%
    >
    >
    > Jun 20 14:03:59 n112h118 postfix/pickup[2140]: 1165D5703AE: uid=0
    > from=
    > Jun 20 14:03:59 n112h118 postfix/cleanup[2146]: 1165D5703AE:
    > message-id=
    > Jun 20 14:03:59 n112h118 postfix/qmgr[2141]: 1165D5703AE:
    > from=, size=361, nrcpt=1 (queue active)
    > Jun 20 14:03:59 n112h118 postfix/error[2148]: 1165D5703AE:
    > to=, relay=none, delay=0.11,
    > delays=0.08/0.01/0/0.02, dsn=5.1.3, status=bounced (bad address syntax)
    > Jun 20 14:03:59 n112h118 postfix/cleanup[2146]: 1E39A5703B1:
    > message-id=
    > Jun 20 14:03:59 n112h118 postfix/bounce[2149]: 1165D5703AE: sender
    > non-delivery notification: 1E39A5703B1
    > Jun 20 14:03:59 n112h118 postfix/qmgr[2141]: 1E39A5703B1: from=,
    > size=2086, nrcpt=1 (queue active)
    > Jun 20 14:03:59 n112h118 postfix/qmgr[2141]: 1165D5703AE: removed
    > Jun 20 14:03:59 n112h118 postfix/pipe[2150]: 1E39A5703B1:
    > to=, relay=dovecot, delay=0.03,
    > delays=0.01/0.01/0/0.01, dsn=5.1.1, status=bounced (user unknown)
    > Jun 20 14:03:59 n112h118 postfix/qmgr[2141]: 1E39A5703B1: removed
    > Jun 20 14:08:55 n112h118 postfix/qmgr[2141]: 516815703B0: from=,
    > size=2086, nrcpt=1 (queue active)
    > Jun 20 14:08:55 n112h118 postfix/pipe[2157]: 516815703B0:
    > to=, relay=dovecot, delay=590,
    > delays=590/0.02/0/0.34, dsn=5.1.1, status=bounced (user unknown)
    > Jun 20 14:08:55 n112h118 postfix/qmgr[2141]: 516815703B0: removed
    >

    Er sagt das der User unknown ist, aber das wundert mich weil der
    Benutzer letztendlich ja mit dem Script angelegt worden ist?

    > 2011-06-20 14:14:33 pop3-login: Info: Disconnected (auth failed, 3
    > attempts): user=, method=PLAIN, rip=xxx.xxx.xxx.xxx,
    > lip=xxx.xxx.xxx.xxx, TLS

    Hab meine richtige Domain, und Benutzername durch „meineDomain“ + „meinName“!!!

    Möglicherweise hat jemand eine Idee…?!?
    Danke

    • Jan Post authorReply

      Zunächst fällt auf, dass du versuchst eine Mail an meinName@meineDomain% zu senden, dies ist aber keine gültige Domain, was postfix ja auch anmeckert (status=bounced (bad address syntax)). Versuche mal an meinName@meineDomain.de zu senden, das müsste gehen.
      Beim Login per Thunderbird ist zu beachten, dass der gleiche Username verwendet wird wie für dovecot, wurde der Benutzer als user@meineDomain.de angelegt, muss der Login auch als user@meineDomain.de erfolgen und nicht als user!

      Was die /var/mail/vhosts/meineDomain/passwd betrifft: hier stehen die „Daten“ des Users, der Hash des Passworts sollte in der /var/mail/vhosts/meineDomain/shadow stehen. Deine Einträge wären also korrekt, wenn der User „Nutzername“ ein leeres Passwort hat.

  2. Markus Reply

    Vielleicht täusche ich mich, aber ich denke doch das in der /var/mail/vhosts/meineDomain/passwd das Passwort des Nutzers sein sollte?

    Ich hab da folgenden Eintrag: Nutzername::5000:5000::/var/mail/vhosts/meineDomain/Nutzername

    und in der /var/mail/vhosts/meineDomain/shadow steht
    Nutzername:

    das kann doch eigentlich nicht sein, oder?

  3. Markus Reply

    Hallo zusammen,

    so ich bin ein Stück weiter gekommen, und dennoch bleiben einige fragen offen(leider), aber ich hoffe es hilft auch anderen die nach diesem Tutorial vorgehen.. und möglicherweise auch schwierigkeiten bekommen.

    ok.. der Befehl:

    echo „Dies ist ein Test..“ | mail -s „Testmail“ MeinName@MeineDomain.de

    brachte diesmal:

    Jun 23 14:13:35 n112h118 postfix/pickup[1683]: 33D585703AD: uid=0 from=
    Jun 23 14:13:35 n112h118 postfix/cleanup[1691]: 33D585703AD: message-id=
    Jun 23 14:13:35 n112h118 postfix/qmgr[1684]: 33D585703AD: from=, size=359, nrcpt=1 (queue active)
    Jun 23 14:13:35 n112h118 postfix/pipe[1694]: 33D585703AD: to=, relay=dovecot, delay=0.09, delays=0.06/0.01/0/0.02, dsn=5.1.1, status=bounced (user unknown)
    Jun 23 14:13:35 n112h118 postfix/cleanup[1691]: 400D85703AE: message-id=
    Jun 23 14:13:35 n112h118 postfix/bounce[1696]: 33D585703AD: sender non-delivery notification: 400D85703AE
    Jun 23 14:13:35 n112h118 postfix/qmgr[1684]: 400D85703AE: from=, size=2067, nrcpt=1 (queue active)
    Jun 23 14:13:35 n112h118 postfix/qmgr[1684]: 33D585703AD: removed
    Jun 23 14:13:35 n112h118 postfix/pipe[1694]: 400D85703AE: to=, relay=dovecot, delay=0.02, delays=0.01/0/0/0.01, dsn=5.1.1, status=bounced (user unknown)
    Jun 23 14:13:35 n112h118 postfix/qmgr[1684]: 400D85703AE: removed

    Ich denke demnach ist der Empfänger nicht vorhanden (user unknown)

    was mich aber schon etwas irritiert ist das der Angelegte Nutzer nach dem Skript zwar in der /var/mail/vhosts/MeineDomain/shadow angelegt ist aber kein Passwort vorhanden ist.
    —————————————————–
    gebe ich:
    addmailuser MeinName@MeineDomain MeinPasswort
    ein sagt er das:

    Adding Postfixuser configuration…
    Adding Dovecot user configuration…
    dovecotpw: invalid option — ‚h‘ (passwort begann mit h)
    usage: dovecotpw [-l] [-p plaintext] [-s scheme] [-u user] [-V]
    -l List known password schemes
    -p plaintext New password
    -s scheme Password scheme
    -u user Username (if scheme uses it)
    -V Internally verify the hash
    Reloading Postfix configuration…done.

    hier legt er den Nutzer an jedoch kein Passwort??
    —————————————————–
    gebe ich:
    addmailuser MeinName@MeineDomain -p MeinPasswort ein sagt er das:

    Usage : /usr/local/bin/addmailuser2 EMAIL PASSWORD [BASEDIR]
    BASSDIR must be a valid directory!
    I would have tried, /var/mail/vhosts
    —————————————————–

    gebe ich:

    addmailuser MeinName@MeineDomain -p MeinPasswort /var/mail/vhosts/MeineDomain

    Usage : /usr/local/bin/addmailuser2 EMAIL PASSWORD [BASEDIR]
    BASSDIR must be a valid directory!
    I would have tried, /var/mail/vhosts

    Also da weiß ich nicht so recht weiter??

    Danke erstmal, und vielleicht hat da noch jemand eine Idee??

  4. Jan Post authorReply

    Zwei Möglichkeiten:

    • Die Rechte stimmen nicht, sprich das Skript darf in das Basedir (angegeben in der Postfix-Conf) nicht schreiben
    • Der Ordner existiert tatsächlich nicht.

    Bei mir gehört der Ordner /var/mail/vhosts und alle Unterordner dem Benutzer vmail, Gruppe vmail, das Skript habe ich als root ausgeführt und es ging.

  5. Markus Reply

    Hallo,

    der Eintrag aus der Postfix Conf:

    virtual_mailbox_domains = /etc/postfix/virtual_domains
    virtual_mailbox_base = /var/mail/vhosts
    virtual_mailbox_maps = hash:/etc/postfix/vmailboxes
    virtual_alias_maps = hash:/etc/postfix/virtual_aliases
    virtual_minimum_uid = 100
    virtual_uid_maps = static:5000
    virtual_gid_maps = static:5000
    virtual_transport = dovecot
    dovecot_destination_recipent_limit = 1
    —————————————————–

    5693495 4 drwxrwsr-x 3 root mail 4096 19. Jun 19:22 .
    5685249 4 drwxr-xr-x 13 root root 4096 11. Jun 20:25 ..
    5693945 4 -rw——- 1 mail mail 3269 12. Jun 02:17 mail
    5694275 4 -rw——- 1 root mail 2884 19. Jun 19:22 root
    5701983 4 drwxr-sr-x 3 vmail vmail 4096 15. Jun 15:59 vhosts

    Auch hier, vmail ist Eigentümer von dem Verzeichnis /var/mail/vhosts

    Frage: Sind die Rechte von passwd & shadow so korrekt?

    5702565 4 -rw——- 1 vmail vmail 68 23. Jun 14:39 passwd
    5702567 4 -rw——- 1 vmail vmail 15 23. Jun 14:39 shadow

    Danke

  6. Markus Reply

    ok, das 1. Problem ist gelöst

    Hab in der Zeile: echo $ADDRESS“:“$(dovecotpw -p $PASSWD) >> — das -p vergessen!! 🙁

    Somit legt er die Nutzer und die Hashes korrekt in der Passwd + Shadow an!

    Allerdings bekomme ich nach der Testmail immer noch die Fehlermeldung das der Nutzer, der ja nun existiert ebend nicht existiert?!

    Jun 23 16:47:58 n112h118 postfix/pickup[1747]: D97275703AD: uid=0 from=
    Jun 23 16:47:58 n112h118 postfix/cleanup[1774]: D97275703AD: message-id=
    Jun 23 16:47:58 n112h118 postfix/qmgr[1748]: D97275703AD: from=, size=349, nrcpt=1 (queue active)
    Jun 23 16:47:58 n112h118 postfix/pipe[1776]: D97275703AD: to=, relay=dovecot, delay=0.36, delays=0.32/0.01/0/0.03, dsn=5.1.1, status=bounced (user unknown)
    Jun 23 16:47:58 n112h118 postfix/cleanup[1774]: E887D5703AE: message-id=
    Jun 23 16:47:58 n112h118 postfix/bounce[1778]: D97275703AD: sender non-delivery notification: E887D5703AE
    Jun 23 16:47:58 n112h118 postfix/qmgr[1748]: E887D5703AE: from=, size=2012, nrcpt=1 (queue active)
    Jun 23 16:47:58 n112h118 postfix/qmgr[1748]: D97275703AD: removed
    Jun 23 16:47:58 n112h118 postfix/pipe[1776]: E887D5703AE: to=, relay=dovecot, delay=0.02, delays=0.01/0/0/0.01, dsn=5.1.1, status=bounced (user unknown)

    ??

  7. Jan Post authorReply

    Ich hatte ein ähnliches Problem und deshalb die Benutzer in der Form user@meineDomain.de angelegt. In der /var/mail/vhosts/meineDomain/passwd steht ein Benutzer in der Form user@meineDomain.de::5000:5000::/var/mail/vhosts/meineDomain.de/test.
    Möglicherweise habe ich vergessen das Skript entsprechend anzupassen…

  8. Markus Reply

    Jo, supi das ist es gewesen!! Jetzt hab ich nur noch das Problem das ich keine Mails von aussen an den Server schicken kann?! Hast Du da vielleicht noch eine Idee!

    Erstmal besten Dank

  9. Jan Post authorReply

    Soll das heißen, dass Mails, die von einem anderen Server abgesendet werden, nicht bei Deinem Server ankommen, also auch im Log nicht auftauchen? Ist denn ein MX-Record gesetzt, sprich wird die Mail-Domain auf deinen Server überhaupt aufgelöst?

  10. Markus Reply

    Doch doch, der MX-Record ist auf meine Domain gesetzt, im Log taucht die Anfrage auch auf..

    Das log ist lang aber, ich denke das wichtige sind diese Einträge:

    > mout3.freenet.de[195.4.92.93]: 554 5.7.1 : Client host rejected: Access denied

    oder

    > mout3.freenet.de[195.4.92.93]: 554 5.5.1 Error: no valid recipients

    ich muss mal schauen, muss für heute leider Schluss machen werde morgen weiter machen.. Vielleicht gibt es ja noch eine Idee dazu..!?

    Danke erstmal Jan für Deine Hilfe

  11. Markus Reply

    hab in der master.cf folgendes geändert:
    smtp
    -o smtpd_client_restrictions=permit_sasl_authenticated,reject

    hier das reject entfernt, ebenfalls unter
    smtps

    -o smtpd_client_restrictions=permit_sasl_authenticated,reject

    auskommentiert und reject entfernt und dann funktionierte das annehmen der Mails!

    scheint soweit alles zu funktionieren!! Hoffe für die jenigen, die nach dem Tutorial vorgehen, das ihnen die Kommentare bei einigen Stolpersteinen weiter helfen werden!

  12. Chris Reply

    Der Kommentar von Jan ist wichtig, scheinbar hat sich das zwischen Lenny und Squeeze geändert, ich musste die Anpassungen in der passwd-datei vornehmen, um nach dem Update auf Squeeze wieder Mails empfangen zu können.

    (die recipients-bcc haben unabhängig davon funktioniert…)

  13. René Reply

    Hallo zusammen!

    Mein Rechner ist mit Debian Squeeze aufgesetzt.

    Ich hab da ein paar Probleme mit dem Aufsetzen des Mailservers. Hab mich exakt an die Anleitung gehalten.

    Beim Test: echo “Dies ist ein Test…” | mail -s “Testmail” user@meinedomain.de bekomme ich nach dem Absenden keine Rückmeldung in der Engabe aufforderung.

    In der Datei „mail.err“ habe ich folgende Aussage:
    Aug 12 17:35:40 regfish postfix/cleanup[11834]: fatal: dict_open: unsupported dictionary type: has: Is the postfix-has package installed?

    In den Dateien „mail.warn“, „mail.log“ und „mail.info“ bekomme ich folgende Aussage:
    Aug 12 17:37:42 regfish postfix/cleanup[11840]: fatal: dict_open: unsupported dictionary type: has: Is the postfix-has package installed?
    Aug 12 17:37:43 regfish postfix/master[11664]: warning: process /usr/lib/postfix/cleanup pid 11840 exit status 1
    Aug 12 17:37:43 regfish postfix/master[11664]: warning: /usr/lib/postfix/cleanup: bad command startup — throttling

    Möglicherweise hat jemand eine Idee…?!?
    Danke und Grüße
    René

    • Jan Post authorReply

      Hallo René,

      ich war gerade 3,5 Wochen im Urlaub.
      Ich schau mir das im Laufe der Woche noch mal in Ruhe an aber so ganz
      spontan:
      hast du bei
      echo "dies ist ein Test ..." | mail -s "Testmail" user@meinedomain.de
      das exakte statement verwenden? Statt user@deinedomain.de musst du
      natürlich einen auf deinem Server existierende eMail-Adresse verwenden.
      Die Logeinträge deuten allerding eher auf einen Fehler der postfix
      config hin.
      Insbesondere diese Zeile riecht nach einem Tippfehgler:
      Aug 12 17:43:48 regfish postfix/cleanup[11858]: fatal: dict_open: unsupported dictionary type: has: Is the postfix-has package installed?
      ein postfix-has package existiert nicht, wohl aber ein postfix-hash. Das
      hat mit postmap zu tun, also deine Userconfig. Da stimmt irgendwo was
      nicht.

  14. René Reply

    Problem ist mittlerweile behoben.

    Ich hatte in der main.cf statt hash: … nur has:… eingetragen.

    Man sollte halt nochmal kontrollieren bevor man es abspeichert und übernimmt. 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.