Inhaltsverzeichnis

TODO dringend überarbeiten!

Allgemein

FreeBSD wird mit dem MTA sendmail ausgeliefert. Dieser ist, so mächtig er auch sein mag, nicht jedermanns Sache. Die Konfiguration von sendmail ist recht umfangreich und kompliziert.

Ein moderner MTA ist postfix. Nachfolgend soll postfix installiert und konfiguriert werden, so dass er sendmail gänzlich ersetzt.

Voraussetzung

Ein aktueller Port-Tree und root-Rechte sind Voraussetzung für die Installation von postfix. Zudem sollten die SMTP-Daten eines Mailservers zur Verfügung stehen um mit postfix E-Mails ins Internet senden zu können.

Installation

# cd /usr/ports/mail/postfix
# make install clean

Optionen

Als Optionen werden folgende Punkte angewählt:

 
[X] PCRE      Perl Compatible Regular Expressions
[X] SASL2     Cyrus SASLv2 (Simple Auth. and Sec. Layer)
[ ] DOVECOT   Dovecot SASL authentication method
[ ] SASLKRB   If your SASL req. Kerberos select this option
[ ] SASLKRB5  If your SASL req. Kerberos5 select this option
[ ] SASLKMIT  If your SASL req. MIT Kerberos5 select this option
[X] TLS       Enable SSL and TLS support
[ ] BDB       Berkeley DB (choose version with WITH_BDB_VER)
[ ] MYSQL     MySQL maps (choose version with WITH_MYSQL_VER)
[ ] PGSQL     PostgreSQL maps (choose with DEFAULT_PGSQL_VER)
[ ] OPENLDAP  OpenLDAP maps (choose ver. with WITH_OPENLDAP_VER)
[ ] CDB       CDB maps lookups
[ ] NIS       NIS maps lookups
[ ] VDA       VDA (Virtual Delivery Agent 32Bit)
[ ] TEST      SMTP/LMTP test server and generator

Auf die Frage

You need user "postfix" added to group "mail".
Would you like me to add it [y]?

wird mit y geantwortet und

Would you like to activate Postfix in /etc/mail/mailer.conf [n]?

wird auch mit y bestätigt.

Postfix konfigurieren

Die Datei /usr/local/etc/postfix/main.cf enthält die Konfiguration von postfix. Die folgenden Zeilen werden in hier ergänzt, bzw angepasst.

relayhost = smtp.1und1.de
smtp_sasl_auth_enable = YES
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/saslpasswd
smtp_generic_maps = hash:/usr/local/etc/postfix/generic_map

Die Datei /usr/local/etc/postfix/saslpasswd wird mit folgendem Inhalt (Beispiel eines 1und1-Zugangs) angelegt. BENUTZERNAME und PASSWORT sind die Logindaten zum entsprechenden SMTP-Server.

smtp.1und1.de   BENUTZERNAME:PASSWORT

Anschliessend wird als root folgender Befehl abgesetzt um die Passwortdatenbank für SASL zu generieren.

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

Da das Passwort hier lesbar in der Datei steht sollten die Rechte entsprechend restriktiv sein. Mit folgendem Befehlt werden allen anderen Benutzern außer root die Leserechte entzogen:

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

Als nächstes wird die Alias-Datenbank neu angelegt und an die für postfix richtige Stelle verlinkt.

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

Die Datei /usr/local/etc/postfix/generic_map wird angelegt und mit folgendem Inhalt gefüllt:

lokaler_benutzername@deine.locale.domain deinName@Maildomain.de

Damit wird dem SMTP-Server mitgeteilt wer der eigentliche Absender sein soll. Sollen auch die Mails von root an eine Mailadresse gesendet werden so ist hier auch ein Eintrag vorzunehmen.

Hinweis: Wenn alle ausgehenden Mails mit einem einzigen bestimmten Useraccount des SMTP-Servers verschickt werden sollen ist folgende Vereinfachung möglich

@deine.locale.domain deinName@Maildomain.de

Hiermit werden alle Mails mit der Absendeadresse deinName@Maildomain.de versendet.

Anschließend wird eine Datenbankdatei daraus erzeugt mit

# postmap /usr/local/etc/postfix/generic_map

Postfix starten

Damit postfix beim nächsten Start geladen wird und sendmail nicht weiter für den Mailverkehr genutzt wird muss die /etc/rc.conf um folgende Zeilen erweitert werden:

# Postfix statt Sendmail
postfix_enable="YES"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

Sendmail Wartung deaktivieren

Anschliessend wird die Datei /etc/periodic.conf erzeugt und folgende Zeilen in selbige eingefügt um keine Wartungsarbeiten mehr an sendmail vorzunehmen.

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