|
zurück sendmail weitersendmail -- the Vietnam of Berkley Unix aus „Unix-Haters-Handbook“ # sendmail Die Konfiguration von sendmail gehört wohl zu den schwierigsten, die es in der Unixwelt gibt, so oder so ähnlich beginnen alle sendmail – Anleitungen, die ich im Web gesehen habe, ebenfalls beliebt ist der Hinweis, man sei kein richtiger Unix-Administrator, wenn man noch nie eine sendmail.cf editiert hat, man sei darüberhinaus verrückt, wenn man es mehr als einmal macht. Hierzu sei nur bemerkt, das man sendmail auch direkt über diese Datei konfigurieren kann, früher war das auch nur so möglich, das ist aber mehr was für die eins-unter-Gott-Senior-Unix-Administrators unter uns.
|
Grundlegendes |
|
Sendmail wurde 1980 entwickelt, und wird seitdem eingesetzt, von daher beherrscht sendmail auch (bis heute) noch Systeme aus der Zeit vor smtp/pop, wie das der fido-Mailboxen. Seit 1990 wird sendmail weiterentwickelt, und es gibt seitdem eine ganze Flut von Sicherheitspatches, böse Zungen behaupten gar, sendmail wäre der IIS der niXe. Tatsache ist, das der erste Wurm einen Buffer-Overflow des sendmail zur Verbreitung nutzte, tatsache ist auch, das es eine Vielzahl von Exploits zu älteren sendmail Versionen gibt, es empfielt sich also, für regelmäsige Updates zu sorgen (bei SuSE einfach per YaST-Online-Update). Tatsache ist auch, das bisher zu allen Sicherheitslücken auch Fixes erschienen sind, und das es möglich ist mit etwas Konfigurationsaufwand selbst ein veraltetes System relativ Sicher zu machen, aber dazu siehe unten.
|
KonfigurationsdateienDie Konfiguration von sendmail verteilt sich auf mehrere Dateien, in unterschiedlichen Formaten, was für Neulinge oft sehr verwirrend ist. Es handelt sich im wesentlichen um folgende Dateien: /var/log/mail //Das ist natürlich keine Konfigurationsdatei, sondern die Logdatei, in der die Maildaemonen ihre (Un)Taten protokollieren, um zu einem funktionierenden System zu kommen ist es aber daher gewisserweise die wichtigste Datei, daher habe ich sie hier nochmal extra herausgehoben. :-) diese Dateien habe alle etwas gemeinsam, sie werden nicht direkt editiert, sondern je nach ihrem Dateiformat aus einer ANSI Datei in dieses konvertiert. Bei SuSE kommen noch hinzu: Vor allem zur Fehlersuche ist es sinnvoll sich klarzumachen, wie diese Dateien zusammenspielen, am besten erkläre ich dies anhand eines Beispielszenarios: Eine email von bernd@mail.lan an max@mustermail.de erreicht unseren mailserver mail.lan, ehe des MSA eine authentifizierung verlangt überprüft er, ob diese Mail aus einem Netz verschickt wurde das er akzeptiert. Ein Blick in die access.db sagt unserem MSA, das Absender aus dem 10er Netz weitergeleitet werden da der Absender die IP 10.11.12.13 hat erfordert der MSA eine Authentifizierung, gegen Benutzername / Passwort des Useraccounts von Bernd an unserem Mailserver, nacdem dies ebenfalls erfolgreich war landet die mail in der Mailqueue (/var/spool/mqueue) der MTA fischt die Mail aus der Queue und stellt fest, das diese nicht an einen lokalen User gerichtet ist, anderenfalls würde er zunächst in der aliases.db nachsehen und dann ob es einen lokalen Account gibt an den diese Mail gerichtet ist. Da die Mail aber nach aussen verschickt werden soll schaut unser MTA zunächst in die virtusertable.db ob max@mustermail.de vielleict ein alias für eine andere Adresse ist, anschliessend in die genericstable.db ob die Mail (da ausgehend) maskiert werden soll, und tatsächlich in der genericstable.db steht bernd@mail.lan heisst im Internet bernd@ibm.com, also wird die Absenderadresse der mail dementsprechend geändert, damit die Rückantworten auch ankommen. Bevor die Mail nun einfach ins Internet verschickt wird (was selbstverstänlich auch geht) wirft unser MDA einen Blick in die mailertable.db und stellt fest, das alle Mail an die TLD .de per smtp über mail.maildings.net verschickt wird, da mail.maildings.net nicht jede dahergelaufene email akzeptiert, muss man sich erst dort authentifizieren, die Authentifizierungsparameter übernimmt der MDA aus der auth-info.db. Diese ganzen Abläufe protokollieren sendmail, fetchmail & Co in der /var/log/mail, die bei der Fehlersuche immer ein wertvoller Ratgeber ist! Konfigurationaccess.db aliases.db auth-info.db genericstable.db mailertable.db virtusertable.db sendmail.cfDie Dateien submit.cf sysconfig/mail sysconfig/sendmail
|
|
|