UUCP over SSL (over TCP/IP) mit PING |
Diese Anleitung beschreibt wie man unter Unix/Linux seine Mails und News über einen mit TLS (Transport Layer Security) betriebenen Kryptotunnel als UUCP-Packages mit Taylor UUCP von PINGs Server beziehen kann.
Achtung: Im Jahr 2022 stellen wir auf Let's encrypt um. Das ändert alles!
Wer schon alles richtig konfiguriert hat, und sein System nun nur noch auf PINGs neues Zertifikat umstellen will, sollte erstmal die Datei cacert.pem herunterladen und in sein UUCP Konfigurationsverzeichnis kopieren. Eine Anpassung der stunnel.conf ist diesmal aber auch notwendig (siehe unten).Warum sollte ich UUCP über SSL machen wollen?
Dafür kann es viele Gründe geben:- Ich will UUCP über ein unsicheres Netzwerk (sowie das Internet) betreiben und Vertraulichkeit für mein UUCP-Passwort bewahren. (Das ist der Fall, wenn ich mich beispielsweise über einen anderen Provider einwähle als PING und UUCP over TCP/IP verwende.)
- Ich will ebenfalls nicht, daß Unbefugte im Internet, die Mails lesen oder verändern, die ich von anderen Pingels erhalten und via UUCP over TCP/IP empfangen habe.
- Es ist mir peinlich, daß ich Newsgruppen wie alt.binaries.bestiality.hamsters.abuse und de.comp.os.ms-windows.programmer beziehe und ich will, daß das ein kleines, schmutziges Geheimnis zwischen mir und PINGs Newsserver bleibt, obwohl ich die Mails mit UUCP over TCP/IP beziehe.
- Paranaoia ist mir zur zweiten Natur geworden: Ich misstraue selbst meinem Telekommunikationsprovider, über den ich mich direkt bei PING einwähle. Ich will verhindern, daß die dort angestellten Schlapphüte meine UUCP-Pakete inspizieren und mein UUCP-Passwort in ihr kleines, schwarzes Buch schreiben.
- Bevor ich mein UUCP-Passwort für den Login abschicke (was ja meistens automatisch ohne mein Zutun geschieht), möchte ich sicher sein, daß die Gegenstelle ein Server von PING ist und nicht irgendein anderer Server, der nur so tut, um mein UUCP-Passwort zu stehlen.
Wie kann SSL mir dabei helfen?
Nun, jedes der obigen Probleme lässt sich durch die beiden Konzepte Vertraulichkeit und Authentifikation lösen. Man kann TCP/IP transparent für den User um beide ergänzen, indem man zwischen Transport und Application Layer eine zusaetzliche Layer mit SSL einfügt.
Vertraulichkeit wird durch die (manche :-) in der SSL-Spezifikation definierten Verschlüsselungsverfahren erreicht. Zertifikate werden bei SSL dazu verwendet, den Austausch eines Sitzungsschlüssels über ein asymmetrisches Kryptoverfahren zu bewerkstelligen. Dieser Sitzungsschlüssel wird dann für die symmetrischen Verfahren zur Verschlüsselung der Daten im Kryptotunnel verwendet.
Desweiteren kann SSL sicherstellen, daß der Server zu dem die Verbindung aufgebaut wird, tatsächlich derjenige ist, als der er sich ausgibt, d. h. daß er authentisch ist. Dafür werden ebenfalls Zertifikate verwendet. Der Server muß dafür über ein von einer CA (Certificate Authority) signiertes Zertifikat verfügen. Der Client kann die Rechtmäßigkeit dieses Zertifikat mithilfe von Zertifikaten der CAs überprüfen, nachdem die Verbindung aufgebaut wurde.
Wenn man nach dieser Anleitung vorgeht, wird nur ein Server-Zertifikat akzeptiert, daß der User vorher als vertrauenswürdig abgespeichert hat. Das ist damit zu vergleichen, daß man ein Zertifikat beim Surfen auf einen bestimmten Webserver akzeptiert, der Browser sorgt dann für das Einfügen in die entsprechende Zertifikatdatenbank. Die für den SSL-Tunnel benötigten Zertifikate lassen sich weiter unten sicher herunterladen und abspeichern, nachdem man im Browser PINGs Server-Zertifikat akzeptiert hat.
Ok, das hört sich interessant an. Was muss ich tun?
Zuerst ist es nötig, stunnel zu installieren, welches zum Aufbau eines SSL-Tunnels zu PINGs Server lilly.ping.de dienen soll. Ich werde dabei die Konfiguration der stunnel Version 4.x behandeln.
Im folgenden wird angenommen, daß sich die UUCP-Konfiguration im Verzeichnis /etc/uucp/ befindet.
-
Die beiden Files call
lilly SITENAME UUCPPASSWORD
und config
hostname SITENAME
unterscheiden sich nicht von einer normalen UUCP-Installation (SITENAME und UUCPPASSWORD sind entsprechend zu ersetzen).
-
Im File port muss ein neuer Port SSL vom Typ "pipe" eingetragen werden, welcher dann beim UUCP-Poll stunnel aufruft. Da bei stunnel 4.x die Konfiguration hautpsächlich über eigene Konfigurationsfiles läuft, wird das port File etwas simpler:
port SSL type pipe command /usr/sbin/stunnel /etc/uucp/stunnel.conf
Stattdessen gibt es jetzt ein zusätzliches stunnel.conf File in /etc/uucp in dem alles etwas übersichtlicher steht.
client=yes connect=uucp.ping.de:541 CAfile=/etc/uucp/cacert.pem verifyChain=yes checkHost=uucp.ping.de
Der Pfad zum Programm stunnel muß u.U. jeweils noch an die Installation im eigenen System angepasst werden.
-
Im File sys muss nun der neue Port SSL noch unter dem System lilly referenziert werden. Hier ein Beispiel dafür:
system lilly alias lilly.ping.de call-login * call-password * time any success-wait 0 max-retries 1440 #phone 979131 # In the good old days we used phones, yeah... ;) #call-timegrade Z Any0600-2100 protocol te chat-timeout 120 chat ogin: \L word: \P commands rmail rnews rcsmtp rfsmtp rgsmtp rsmtp rzsmtp port SSL
- Nun müssen noch die Zertifikate der CAs in der Datei cacert.pem (Neu!) unter /etc/uucp/ abgespeichert werden. Diese Datei haben wir von der Zertifizierungsstelle erhalten.
-
Dann sollte sich eine UUCP-Poll ganz normal mit
uucico -S lilly
durchführen lassen.
(c) Florian Frank <flori@ping.de> |