Nächste Seite: Konfiguration des Webserver
Aufwärts: Konfiguration des Betriebsystems
Vorherige Seite: Konfiguration des DNS-Systems
  Inhalt
  Index
Konfiguration des Mail-Systems
Als Mailsystem wurde qmail 4.5 gewählt und
nicht das standard Unixmailsystem sendmail. Qmail ist wesentlich einfacher zu
konfigurieren als sendmail und es ist sicher: die Entwickler von qmail haben einen Preis von 1000 US$
ausgesetzt für denjenigen, der ein Sicherheitsloch in den Qmailprogrammen findet.
Das Qmailsystem wurde so konfiguriert, daß keine Systemaccounts angelegt werden müssen. Damit ist
die Forderung, daß auf einem Bastion keine Useraccounts vorhanden sein sollen (siehe 3.2.4.5)
erfüllt.
Um diese Konfiguration zu realisieren, sind folgende Schritte notwendig:
- Mailaccount anlegen
Zur Bestimmung des Empfängers bzw. des Mail-Verzeichnises durchsucht qmail zuerst /etc/passwd. Wird qmail
dort nicht fündig, schaut es in ./users/assign nach. Das ./users/assign-File ist im Installationsverzeichnis
von qmail zu finden, unter FreeBSD: /var/qmail.
Das assign-File hat folgendes Format:
=local:user:uid:gid:homedir:dash:ext:
Die einzelnen Felder haben folgende Bedeutungen:
- =local
Durch das ,,=``-Zeichen wird qmail angewiesen, bei der Überprüfung des Empfängers nur exakte Übereinstimmungen
mit dem String, der nach dem ,,=``-Zeichen steht, als gültig zu akzeptieren. Qmail läßt statt des ,,=``-Zeichens auch
ein ,,+`` zu. Das hat dann zur Folge, daß alle Mails, die als Empfänger den String hinter dem ,,+``-Zeichen
enthalten, akzeptiert werden.
- user
User muß in /etc/passwd eingetragen sein. Mit diesem account kann man sich aber nicht einloggen.
- uid
Die Userid des Users ,,user``.
- gid
Die Gruppennummer des Users ,,user``.
- homedir
In dieses Verzeichnis werden die Mails ausgeliefert. Dieses Directory wird mit den Rechten 0700
und uid und gid des Users ,,user`` angelegt.
- dash,ext
Mail an ,,local`` werden durch das File homedir/.qmaildashext kontrolliert und z.B. an eine andere
Adresse weitergeleitet.
Ein konkreter Eintrag im assign-File sieht z.B wie folgt aus:
=test:popuser:76:72:/var/qmail/popboxes/camelot-intern.de/test:::
Das bedeutet: Qmail akzeptiert Mails an den User test und liefert diese in das Verzeichnis
/var/qmail/popboxes/camelot-intern.de/test aus.
- POP3-Account anlegen
Damit der User test seine Mails per POP auch abholen kann, muß er einen POP3-Zugang haben.
Normalerweise wird dazu ein Useraccount in /etc/passwd angelegt und ein POP-Server verwendet, der
die Benutzer mit Hilfe des passwd-Eintrages authentifiziert.
Das qmail-POP-System ist dreistufig aufgebaut:
- qmail-popup
Nimmt Username und Paßwort entgegen.
- checkpasswd
Überprüft Username und Paßwort. Bei erfolgreicher Authentifizierung werden die
Environmentvariablen USER, SHELL und HOME gesetzt.
- qmail-pop3d
Qmail POP-Server.
Durch diesen Aufbau kann man jede beliebige Authentifizierungsmethode (Einmalpaßworte, MD5-Paßworte) verwenden,
da man das Programm checkpasswd durch jedes beliebige Program ersetzen kann.
Ich habe ein checkpasswd-Programm ausgewählt, das in einem eigenen File (poppasswd) die Benutzerdaten überprüft.
Das File hat folgendes Format:
pop3login:verschlüsseltes Passwort:popuser:home
Alle POP3-Accounts werden in dieses File eingetragen. Wichtig dabei ist, daß home des POP-Accounts dasselbe Verzeichnis ist, wie das
im users/assign-File für die zugehörige EMailadresse angegebene.
Um das Anlegen von EMail-Accounts mit zugehörigen POP3-Accounts zu vereinfachen, habe ich ein Perl-Programm entwickelt. Das Programm
frägt nach den Benutzerdaten (Vorname, Nachname, Mailadresse usw.) und macht dann automatisch alle notwendigen Eintragungen.
Zum Starten der Serverprozesse wird nicht inetd verwendet, sondern tcpserver. Tcpserver ist Bestandteil des
ucspi-tcp-Softwarepacketes und im Internet unter ftp://koobera.math.uic.edu/www/ucspi-tcp.html zu finden.
Tcpserver beinhaltet ein Zugangskontrollsystem, ähnlich wie das tcp-wrapper/tcpd-hosts.allow-File, durch das man Verbindungen
an Hand von IP-Adressen zulassen oder abweisen kann. Zusätzlich protokolliert tcpserver jede Verbindung.
Zum automatischen Start des Mailsystems beim Systemstart habe ich ein Shellskript geschrieben, das diese Aufgabe übernimmt. Das
Skript startet das QMail-System unter ,,Aufsicht`` eines ,,supervise``-Programms
4.6. Dadurch wird die Administration deutlich vereinfacht.
Um sich vor denial of service Angriffen auf den SMTP-Server zu schützen,
wird in dem Skript die Größe des virtuellen Speichers, den Qmail nutzen darf, beschränkt.
Auch für das Starten des qmail-POP3-Servers habe ich ein Shell-Skript geschrieben, das beim Systemstart den POP3-Server automatisch hochfährt.
Nächste Seite: Konfiguration des Webserver
Aufwärts: Konfiguration des Betriebsystems
Vorherige Seite: Konfiguration des DNS-Systems
  Inhalt
  Index
Klaus Bauer
1999-10-20