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"