TODO dringend überarbeiten!
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.
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.
# cd /usr/ports/mail/postfix # make install clean
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.
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
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"
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"