POP-before-SMTP Mini-HowTo
Stand: 23. Januar 2001
Diese Dokument erläutert die Konfiguration eines Mailsystems mit dynamischer Relay-Authorisation.
Das Verwahren wird für das folgende Softwarepaket erläutert:
- Postfix (Mailserver)
- QPopper (POP3-Deamon)
- DRACd (Dynamic Relay Authorization Control deamon)
Prinzip
Bei der Konfiguration eines Mailservers, über den Nutzer mit dynamischen IP-Adressen Mails versenden wollen, steht man vor dem Problem, wie man diese (und nur diese) Nutzer authorisiert. Das ursprüngliche SMTP-Protokoll sieht keine individuelle Authentifizierung vor, deshalb greift man oft auf den POP-before-SMTP-Trick zurück. Hierbei Authentifiziert sich der Nutzer zuerst dadurch, daß er per POP3-Protokoll seine Mail abfragt. Dabei muß einen gültigen Nutzernamen und ein passendes Passwort verwenden. Ist diese Authentifizierung erfolgreich, so erhält er für eine begrenzte Dauer die Erlaubnis, von seiner IP-Adresse aus EMails über den Server zu versenden.
Funktionsweise
Um die Funktionsweise des Systems zu verstehen, soll das Zusammenspiel der einzelnen Komponenten näher betrachtet werden. An erster Stelle der Kette steht der POP-Deamon. In unserem Beispiel wird der QPopper von Qualcomm verwendet. Aber auch alle anderen im Sourcecode vorhandenen POP-Server lassen sich leicht erweitern. Ist die DRAC-Unterstützung aktiviert, so versucht der Daemon nach jeder erfolgreichen Authentifizierung einen RPC-Request an den DRAC-Daemon zu schicken, um ihm die authentifizierte IP mitzuteilen. Der DRAC-Daemon nimmt die übergebene IP-Adresseund trägt sie in eine Datenbank ein, die dann vom SMTP-Server verwendet werden kann, um autorisierte Clients zu bestimmen. Gleichzeitig sorgt er dafür, daß die IP nach Ablauf einer festgelegten Zeitdauer aus der Datenbank entfernt wird.
Konfiguration
DRACd
- (RPM-)Paket herunterladen
Die Verwendung eines RPM-Pakets ist in diesem Fall empfehlenswert, da es Distributions-unabhängig ist. - Installationspfad der Datenbank ermitteln
rpm -qlp dracd-<version>.rpm
In der Ausgabe sollte die Dateidracd.allowerscheinen. Der Daemon legt die Datenbankdracd.dbin das selbe Verzeichnis (meist/etc/mail).
- Paket installieren (
rpm -i dracd-<version>.rpm). - Starten:
Zum Starten des Daemons sollte ein passender Link in das entsprechenderc.d-Verzeichnis eingetragen werden.
QPopper
- Sourcen herunterladen und entpacken.
Die Verwendung fertiger (RPM-)Pakete ist nicht zu empfehlen, da meist keine DRAC-Unterstützung aktiviert ist. - Übersetzen:
./configure --enable-shy --enable-specialauth --enable-dracmake
- Installieren:
cp ./popper/popper /usr/sbin/popper
- Konfiguration:
- inetd: Eintrag in die inetd.conf
pop3 tcp /usr/local/lib/popper qpopper -s
- xinetd: Erzeugen einer qpop3-Datei im xinetd-Verzeichnis mit dem
Inhalt
service pop3 { socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/popper server_args = qpopper -s port = 110 }
- inetd: Eintrag in die inetd.conf
Postfix
Zur Nutzung der durch den DRACd erzeugten Datenbank muß in der
/etc/postfix/main.cf folgende Eintragung enthalten sein:
smtpd_recipient_restrictions = btree:/etc/mail/dracd,
check_relay_domains
Sollte der DRACd die Datenbank an anderer Stelle ablegen, so ist der Pfad
entsprechend anzupassen. Zu beachten ist, daß der Name der
Datenbank keine .db-Endung tragen darf, diese wird automatisch
angehangen. In der Praxis werden an dieser Stelle noch weitere
smtpd_recipient_restrictions vorhanden sein, diese sollte man
unverändert lassen (wenn man nicht weiß, was man tut).