Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
— |
postfix_als_lokalen_mta_einsetzen [2017/10/02 13:40] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | 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 ====== | ||
+ | <code> | ||
+ | # cd /usr/ports/mail/postfix | ||
+ | # make install clean | ||
+ | </code> | ||
+ | |||
+ | ===== Optionen ===== | ||
+ | Als Optionen werden folgende Punkte angewählt: | ||
+ | <code> | ||
+ | [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 | ||
+ | </code> | ||
+ | Auf die Frage | ||
+ | <code> | ||
+ | You need user "postfix" added to group "mail". | ||
+ | Would you like me to add it [y]? | ||
+ | </code> | ||
+ | wird mit **y** geantwortet | ||
+ | und | ||
+ | <code> | ||
+ | Would you like to activate Postfix in /etc/mail/mailer.conf [n]? | ||
+ | </code> | ||
+ | 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. | ||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | 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. | ||
+ | <code> | ||
+ | smtp.1und1.de BENUTZERNAME:PASSWORT | ||
+ | </code> | ||
+ | |||
+ | Anschliessend wird als **root** folgender Befehl abgesetzt um die Passwortdatenbank für SASL zu generieren. | ||
+ | <code> | ||
+ | # postmap /usr/local/etc/postfix/saslpasswd | ||
+ | </code> | ||
+ | |||
+ | 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: | ||
+ | <code> | ||
+ | # chmod 600 /usr/local/etc/postfix/saslpasswd | ||
+ | </code> | ||
+ | |||
+ | Als nächstes wird die Alias-Datenbank neu angelegt und an die für **postfix** richtige Stelle verlinkt. | ||
+ | <code> | ||
+ | # postalias /etc/mail/aliases | ||
+ | # ln -s /etc/mail/aliases.db /etc/aliases.db | ||
+ | # newaliases | ||
+ | </code> | ||
+ | |||
+ | Die Datei **/usr/local/etc/postfix/generic_map** wird angelegt und mit folgendem Inhalt gefüllt: | ||
+ | <code> | ||
+ | lokaler_benutzername@deine.locale.domain deinName@Maildomain.de | ||
+ | </code> | ||
+ | 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// | ||
+ | <code> | ||
+ | @deine.locale.domain deinName@Maildomain.de | ||
+ | </code> | ||
+ | Hiermit werden alle Mails mit der Absendeadresse **deinName@Maildomain.de** versendet. | ||
+ | |||
+ | Anschließend wird eine Datenbankdatei daraus erzeugt mit | ||
+ | <code> | ||
+ | # postmap /usr/local/etc/postfix/generic_map | ||
+ | </code> | ||
+ | |||
+ | ====== 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: | ||
+ | <code> | ||
+ | # Postfix statt Sendmail | ||
+ | postfix_enable="YES" | ||
+ | sendmail_enable="NO" | ||
+ | sendmail_submit_enable="NO" | ||
+ | sendmail_outbound_enable="NO" | ||
+ | sendmail_msp_queue_enable="NO" | ||
+ | </code> | ||
+ | |||
+ | ====== 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. | ||
+ | <code> | ||
+ | daily_clean_hoststat_enable="NO" | ||
+ | daily_status_mail_rejects_enable="NO" | ||
+ | daily_status_include_submit_mailq="NO" | ||
+ | daily_submit_queuerun="NO" | ||
+ | </code> | ||