Postfix installieren

Betrifft OS:
FreeBSD

Auch wenn sehr viele der Meinung sind, dass sendmail besser ist, so finde ich postfix etwas einfacher und leicher zu konfigurieren. Es ist sicherlich nicht so, dass ich mich ausreichend mit sendmail beschäftigt habe, um es abzulehnen. Die Installation von Postfix hat aber auch einige Tücken, zu deren Umschiffung ich beitragen möchte. Nachdem ein FreeBSD 6.1 installiert wurde kann es losgehen.

Installation

Editiere die Datei /etc/make.conf und stelle folgende Optionen ein:

.if${.CURDIR:M*/ports/mail/postfix23}
POSTFIX_OPTIONS=TLS BDB SASL2
.endif

Installiere Postfix 2.3

# cd /usr/ports/mail/postfix23
# make install clean
  • Stimme zu den user postfix anzulegen und der Gruppe mail zuzuordnen.
  • Lehne es ab Postfix in der Datei /etc/mail/mailer.conf zu aktivieren.
  • Folgende Meldung wird bei der Installation von cyrus-sasl2 ausgegeben:
      You can use sasldb2 for authentication, to add users use:

        saslpasswd2 -c username

      If you want to enable SMTP AUTH with the system Sendmail, read Sendmail.README

      NOTE: This port has been compiled with a default pwcheck_method of
      auxprop.  If you want to authenticate your user by /etc/passwd,
      PAM or LDAP, install ports/security/cyrus-sasl2-saslauthd and
      set sasl_pwcheck_method to saslauthd after installing the
      Cyrus-IMAPd 2.X port.  You should also check the
      /usr/local/lib/sasl2/*.conf files for the correct
      pwcheck_method.

Aktiviere Postfix in /etc/rc.conf

postfix_enable="YES"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

Deaktiviere eingige der Sendmail spezifischen Aufgaben in der Datei /etc/periodic.conf. Die Datei muss wahrscheinlich erst noch angelegt werden. Eine Beispieldatei findet sich unter /usr/share/examples/etc/defaults/periodic.conf.

daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

Stelle sicher, dass Postfix die SASLDB Dateien lesen kann.

  • Addiere den Postfix User zur Gruppe mail (/etc/groups).
  • Ändere die Gruppenzugehörigkeit der SASLDB. Prüfe zuerst, ob das nicht schon erledigt ist.
# chgrp mail /usr/local/etc/sasldb*
  • Postfix kann über die Datei /usr/local/etc/rc.d/postfix.sh start gestartet werden. Sollte aber erst noch konfiguriert werden.

Konfiguration

Als erstes sollte die Aliasdatenbank neu gebaut werden und an die richtige Stelle gelinkt werden:

# postalias /etc/mail/aliases

Dabei wird die Datei /etc/mail/aliases.db erzeugt. Diese muss dann in der Regel an die Stelle /etc/aliases.db verlinkt werden.

# ln -s /etc/mail/aliases.db /etc/aliases.db

Die zu wählende Position kann auch mit

# postconf | grep aliases

abgefragt werden. Es könnte auch die Datei /usr/local/etc/postfix/main.cf angepasst werden. Ich habe auch immer wieder Probleme damit, dass die Aliase nicht gelesen werden können. Da sollte das Kommando

# newaliases

helfen. Jetzt sollte der Relayhost so eingestellt werden, dass die Emails beim ISP abgeliefert werden. Dazu muss die Datei /usr/local/etc/postfix/main.cf verändert werden:

relayhost = [post.myisp.xx]
smtp_sasl_auth_enable = YES
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/saslpasswd

Erzeuge die Datei /usr/local/etc/postfix/saslpasswd

post.myisp.xx    user@domain.xx:GeheimesPasswort

Erzeuge die Datenbank mit

# postmap /usr/local/etc/postfix/saslpasswd
# chmod 600 /usr/local/etc/postfix/saslpasswd

Wenn gewünscht, so sollte der Absender Host verändert werden, umen hostnamen des Mailservers nicht im Absender zu haben. Dazu wird in der Datei /usr/local/etc/postfix/main.cf folgender Eintrag gemacht:

masquerade_domains = <hostname>.mydoma.in mydoma.in

Wenn nur authentisierte Benutzer Email über die Postfix Instanz versenden sollen so addiere folgende Zeilen

# SASL Authentication for Email clients
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous, noplaintext
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Starte den postfix Server neu

# postfix reload

Reboote das System. Sonst habe ich immer Probleme, dass es nicht klappt. Ich schäme mich ja auch, aber sonst geht es halt nicht.

Teste Email

  mail ich@meinedoma.in
  • Ctrl-D beendet die Email in einer neuen Zeile.

Schaue nach was der Log sagt

# tail /var/log/maillog