RSS-Feed  E-Mail

Sie erreichen mich auf Skype unter dem Benutzernamen DL8KDL. Zur Zeit bin ich offline.

TeamDrive ist verfügbar für Windows, Mac OS X und Linux und ganz auf Datenschutz optimiert: Alle Dateien werden mit AES verschlüsselt. Über ein Partnerprogramm kann man seine 2GB kostenlosen Speicherplatz auf bis zu 8GB erweitern, ähnlich wie bei Dropbox. Auf TeamDrive "Spaces" kann außerdem von mehreren Benutzern gleichzeitig zugegriffen werden.

TeamDrive kann auch auf dem eigenen Server installiert werden oder WebDAV-Server nutzen. Es trägt das Datenschutzsiegel des unabhängigen Landeszentrums für Datenschutz Schleswig-Holstein. Sie können sich hier kostenlos anmelden...

Postfix: Smarthost-Einstellungen für lokale Benutzer

Datum:  18. Februar 2011

Kommentare:  Noch keine Kommentare

Jeder, der einen eigenen Heimserver an einem Internet-Anschluss mit dynamischer IP-Adresse betreibt, musste wahrscheinlich bereits schmerzlich feststellen, dass viele Mailserver so konfiguriert sind, dass sie E-Mails von dynamischen Adressen ablehnen. Außerdem verbieten es viele der großen Provider, ihre Systeme ohne Authentifizierung als Mail-Relays zu verwenden. Der Mailserver Postfix kann dies umgehen, indem er angewiesen wird, einen anderen Mailserver als “Smarthost” zu verwenden. Postfix sendet dann über den Smarthost, an dem er sich vorher per Benutzername und Passwort angemeldet hat. Die lokale E-Mailadresse wird vorher in eine zum Smarthost passende “öffentliche” E-Mailadresse umgewandelt. Auf Mehrbenutzersystemen haben die verschiedenen Benutzer aber in der Regel verschiedene öffentliche E-Mailadressen bei unterschiedlichen Smarthost-Anbietern. Die Verwendung eines einzelnen Smarthosts ist in diesem Fall also nicht anwendbar. Postfix kann jedoch in Abhängigkeit des lokalen Benutzers unterschiedliche Mailserver als Smarthost ansprechen. Zur Konfiguration sind aber leider Administratorrechte notwendig. Mit dem hier vorgestellten einfachen Skript kann jeder Benutzer seine Smarthost-Einstellungen in seinem Heimatverzeichnis selber vornehmen, ohne dass ein Administrator von Hand eingreifen muss.

Hinweis

Die hier vorgestellte (Behelfs-) Lösung erfordert es, dass Ihre lokalen Benutzer E-Mailadresse sowie Benutzername und Passwort für das eigene E-Mail-Konto hinterlegen. Somit muss klar sein, dass diese Umsetzung nur in vertrauenswürdigen Umgebungen (Familien- oder Heimserver sowie in kleineren Büros) ernsthaft in Frage kommt.

Postfix mit senderabhängigem Smarthost

Die Grundlegende Konfiguration von Postfix mit Smarthost ist ausführlich im Wiki auf ubuntuusers.de beschrieben. Da diese Beschreibung sehr einfach und ausführlich gehalten ist, werde ich hierauf nicht weiter eingehen. Diese Anleitung gilt für Postfix unter allen Linux-Distributionen. Größere Probleme sollte die Einrichtung eines Smarthosts nicht bereiten, bei einzelnen Anbietern kann es aber nötig sein, die Parameter von “smtp_sasl_security_options” anzupassen (GMX erlaubt z.B. kein “noanonymous”). Diese Ausgangskonfiguration können Sie nun erweitern, indem Sie der Anleitung zur erweiterten Konfiguration im ubuntuusers-Wiki folgen.

Damit haben Sie Postfix so konfiguriert, dass für jeden lokalen Benutzer ein eigener Smarthost mit eigener öffentlicher E-Mailadresse und individuellen Logindaten verwendet werden. Von Ihrem Heimserver können nun also E-Mails nach außen gesendet werden. Wenn nun aber einer Ihrer Benutzer seine E-Mailadresse gewechselt hat, oder wenn Sie einen neuen Benutzer einrichten willen, müssen sie als root die Postfix-Konfigurationsdateien anpassen. Ihre Benutzer müssen also warten, bis Sie mal wieder Zeit haben, sich darum zu kümmern.

Konfiguration für lokale Benutzer vereinfachen

Einfacher wäre es, wenn Sie es Ihren Benutzern erlauben würden, die eigenen Einstellungen in einer Datei im Heimatverzeichnis vornehmen zu können. Diese Dateien könnten Sie von einem Skript einsammeln lassen, welches bei Veränderungen die Postfix-Konfiguration neu erstellt. Das Vorgehen ist im Ansatz ähnlich zum Mail-Forwarding: Dieses kann jeder lokale Benutzer einstellen, indem er die E-Mailadresse, an die an ihn gerichtete E-Mails weitergeleitet werden sollen, in der Datei .forward in seinem Heimatverzeichnis einträgt. Seine Smarthost-Informationen soll er nun auch in einer Datei im Heimatverzeichnis angeben können. Diese Datei soll den Namen .relay tragen und folgenden Inhalt haben:

email:  adresse@email.tld
server: smtp.email.tld
login:  benutzername:passwort

Im Grunde ist der Inhalt selbsterklärend: Die öffentliche E-Mailadresse wird in die mit email: beginnende Zeile eingetragen, in einer weiteren Zeile, beginnend mit server:, wird der Smarthost angegeben und in einer mit login: beginnenden Zeile folgen Benutzername und Passwort, durch Doppelpunkt getrennt. Die Reihenfolge der Zeilen ist unbedeutend.

Postfix verwendet drei Konfigurationsdateien für die Smarthost-Authentifikation. Ich gehe (etwas abweichend von der Anleitung bei ubuntuusers) davon aus, dass die Relayhost-Maps in /etc/postfix/sender_canonical eingetragen werden, die Canonical-Maps in /etc/postfix/sender_dependent und die Passwörter in /etc/postfix/sender_password.

Neben den benutzerspezifischen Einstellungen aus den .relay-Dateien können Sie eventuell benötigte Smarthost-Angaben für Systembenutzer in den Dateien /etc/postfix/sender_canonical.system, /etc/postfix/sender_dependent.system und /etc/postfix/sender_password.system vornehmen. Diese Dateien haben das Format, wie es in ubuntuusers-Wiki beschrieben ist, nicht das der .relay-Dateien der Benutzer.

Das Skript funktioniert nun nach folgendem Schema: Zuerst werden die Dateien für die Systembenutzer (Endung .system) eingelesen. Anschließend werden die individuellen Einstellungen der lokalen Benutzer aus den .relay-Dateien geholt und der neuen Konfiguration hinzugefügt. Haben sich diese Dateien im Vergleich zu den derzeit von Postfix verwendeten Einstellungen verändert, werden die veränderten Konfigurationsdateien überschrieben und Postfix neu geladen:

Smarthost-Konfiguration für Benutzer vereinfachen

Wenn Sie dieses Skript regelmäßig mit einem Cronjob aufrufen, müssen Sie sich um die Smarthost-Einstellungen ihrer Benutzer nicht mehr von Hand kümmern. Beachten Sie nur, dass Sie eigene Smarthost-Einstellungen in den Dateien mit der Endung .system vornehmen.

Das Shellskript

Das Skript sieht folgendermaßen aus:

#!/bin/sh

# alte Relay-Listen
__sender_canonical="/etc/postfix/sender_canonical"
__sender_dependent="/etc/postfix/sender_dependent"
__sender_password="/etc/postfix/sender_password"
# neue Relay-Listen
__sender_canonical_tmp=$__sender_canonical".tmp"
__sender_dependent_tmp=$__sender_dependent".tmp"
__sender_password_tmp=$__sender_password".tmp"
# systemweite Relay-Listen
__sender_canonical_system=$__sender_canonical".system"
__sender_dependent_system=$__sender_dependent".system"
__sender_password_system=$__sender_password".system"

# Systemlisten einlesen
cat $__sender_canonical_system > $__sender_canonical_tmp
cat $__sender_dependent_system > $__sender_dependent_tmp
cat $__sender_password_system > $__sender_password_tmp

# Benutzerlisten einlesen
for __userdir in /home/* ; do
  if [ -d $__userdir ] ; then
    __username=`echo $__userdir | sed -ne 's/\/home\/\(.\+\)/\1/p'`
    __relayfile=$__userdir/.relay
    if [ -e $__relayfile ] ; then
      __user_email=`sed -ne 's/^email: *\(.*\)/\1/p' $__relayfile`
      __user_server=`sed -ne 's/^server: *\(.*\)/\1/p' $__relayfile`
      __user_login=`sed -ne 's/^login: *\(.*\)/\1/p' $__relayfile`
      echo $__username" "$__user_email >> $__sender_canonical_tmp
      echo $__user_email" "$__user_server >> $__sender_dependent_tmp
      echo $__user_email" "$__user_login >> $__sender_password_tmp
    fi;
  fi;
done

# Listen vergleichen
__reload=false;
if ! diff -q $__sender_canonical_tmp $__sender_canonical > /dev/null ; then
  mv $__sender_canonical_tmp $__sender_canonical
  /usr/sbin/postmap $__sender_canonical
  __reload=true
else
  rm $__sender_canonical_tmp
fi
if ! diff -q $__sender_dependent_tmp $__sender_dependent > /dev/null ; then
  mv $__sender_dependent_new $__sender_dependent
  /usr/sbin/postmap $__sender_dependent
  __reload=true
else
  rm $__sender_dependent_tmp
fi
if ! diff -q $__sender_password_tmp $__sender_password > /dev/null ; then
  mv $__sender_password_new $__sender_password
  /usr/sbin/postmap $__sender_password
  __reload=true
else
  rm $__sender_password_tmp
fi

# Wenn verändert, Postfix-Konfiguration neu laden
if $__reload; then
  /etc/init.d/postfix reload
fi

Geschrieben von DL8KDL in der Kategorie Computer.

Lesezeichen hinzufügen:

Facebook Twitter Google-Bookmarks Delicious Mister-Wong Digg Stumble-Upon

Trackback-URL für diesen Artikel

 

Mein Blog lebt von Ihren Rückmeldungen! Gerne möchte ich meine Artikel verbessern und nicht hier digital verstauben lassen. Nutzen Sie daher die Gelegenheit, Ihre Kommentare, Anmerkungen und Fragen zu meinen Artikeln zu hinterlassen. Außerdem steht Ihnen mein Kontaktformular zur Verfügung.

Die Kommentare geben nicht die Meinung des Autors wieder. Ich behalte mir vor, sie zu kürzen oder zu löschen. Dies gilt besonders bei Kommentaren, die zu sehr vom Thema des Artikels abweichen oder die gegen die etablierten Umgangsformen oder das Gesetz verstoßen.

Über mein Kontaktformular können Sie anstößige Inhalte melden.

Bitte beachten Sie die Richtlinien zur Abgabe eines Kommentars. Ein Anspruch auf Nutzung der Kommentarfunktion meiner Webseite besteht nicht. Daher behalte ich mir ebenfalls vor, einzelne Kommentatoren unter Moderation zu stellen oder zu sperren.

Die Interessengemeinschaft der Funkamateure Siebengebirge e.V. (kurz: IGFS) betreut seit Oktober 2009 die analogen und digitalen 70 cm- und 23 cm-Amateurfunkrelais DB0SG und DB0DBN auf dem Großen Ölberg im Siebengebirge. Um diesen wichtigen Knotenpunkt, der die Standorte im Ruhrgebiet und auf dem Großen Feldberg im Tauns miteinander verbindet, erhalten zu können, benötigt dieser Verein jede Spende. Wenn Ihnen die Inhalte dieser Webseite gefallen, freue ich mich, wenn Sie diesen als gemeinnützig anerkannten Verein mit einer Spende berücksichtigen. Informationen erhalten Sie auf der Webseite der IGFS:

www.ig-funk-siebengebirge.de

Noch kein Kommentar zu "Postfix: Smarthost-Einstellungen für lokale Benutzer"

Kommentieren Sie diesen Beitrag

Bitte füllen Sie das Spamschutz-Feld aus. Alle übrigen Angaben sind freiwillig!

 
DX-Spot von KE1F: 1824.7 WO5A CQ 
DX-Spot von JI1OWY 28480 9Z4DZ sry 
DX-Spot von W3LPL 28026 E51NJB 
DX-Spot von KP3G 7009 EX8MLE 
DX-Spot von PY2RDZ 28483 PU2SDX swl 59 
DX-Spot von PY2ZY 144200 PY2ZY cq all 
DX-Spot von UT1FG/MM-@ 50105 PP5KR CQ 599 IN FJ13 
DX-Spot von K2GSJ-@ 18138 P7TM cq CQ 
DX-Spot von K5MV: 50101.9 ZP5SNA 
DX-Spot von JI1OWY 28400 9Z4DZ 
DX-Spot von JG3UVN 18138 PJ7TM CQ 
DX-Spot von PT7CQ: 50110.2 VP2ETE 59 in HI06re 
DX-Spot von VK8AS: 18101.5 N7UVH PSK31 
DX-Spot von SP5GRM: 10112.5 8P9NX 
DX-Spot von PY2REK 50110 K5RK 57 
DX-Spot von PU5VTO 144300 PY5XH 73 5/9 
DX-Spot von PU9GBM-@ 144200 PU9GBM GH40jh, cq dx pol. vert. 
DX-Spot von UR5WH: 7001.9 SV0XCA/5 
DX-Spot von PY5XH 144300 PU5VTO Tnx Israel: . Fb qso. 
DX-Spot von LW9DYQ: 21071.2 YY8HBO BPSK31 
DX-Spot von WB1S 3789 LZ1JY Nick 
DX-Spot von N6HY 14014 HI3DX qsx up 1 kc 
DX-Spot von AA6RE: 18070.8 P4/WJ2O Up 1-2, 
DX-Spot von VE3AXW 7157 DB2RR 
DX-Spot von PY4AQA-@ 50110 UT1FG/MM 559 in GG88DS 

2m 70cm Aktivantenne Antenne APRS Bausatz Bluetooth Debian Funkbetrieb HF Hybriddoppelquad iso-Datei J-Antenne Koaxialmonopol Kurzwelle Linux Mobil Notebook OpenWRT Packet Radio Selbstbau Server TinyTrak Ubuntu UHF