[From nobody Sat Aug 10 21:38:52 2019 Return-Path: <owner-linux-users@rrz.uni-koeln.de> Received: by hoshi.in-berlin.de (Smail3.1.29.1 #3) from methan.in-berlin.de (160.45.10.13) with smtp id m0yX3gS-000gd3a; Wed, 6 May 98 14:52 MET DST Received: by methan.in-berlin.de (Smail3.2.0.98) from mail1.rrz.Uni-Koeln.DE (134.95.80.223) with esmtp id <m0yX3aW-0000ofa>; Wed, 6 May 1998 14:46:20 +0200 (MET DST) Received: (from daemon@localhost) by mail1.rrz.Uni-Koeln.DE (8.8.8/8.8.6) id OAA00066 for linux-users-out; Wed, 6 May 1998 14:32:47 +0200 (MET DST) Received: from thorin.middleearth.home (as5200-1-c33.rrz.Uni-Koeln.DE [134.95.124.161]) by mail1.rrz.Uni-Koeln.DE (8.8.8/8.8.6) with ESMTP id OAA00052 for <linux-users@rrz.uni-koeln.de>; Wed, 6 May 1998 14:32:44 +0200 (MET DST) Received: (from flimm@localhost) by thorin.middleearth.home (8.8.5/8.8.5) id OAA02845; Wed, 6 May 1998 14:31:14 +0200 From: Oliver Flimm <flimm@ph-cip.uni-koeln.de> Date: Wed, 6 May 1998 14:31:14 +0200 (MET DST) To: Linux Liste Koeln <linux-users@rrz.uni-koeln.de> Subject: POP via SSH X-Mailer: VM 6.43 under 20.4 "Emerald" XEmacs Lucid Message-ID: <13648.22188.694764.730671@thorin.middleearth.home> Reply-To: flimm@ph-cip.uni-koeln.de X-URL: http://www.ph-cip.uni-koeln.de/~flimm X-PGP-Key: finger flimm@jupiter.ph-cip.uni-koeln.de X-PGP-Fingerprint: E5 FA 1F 7C F4 71 C6 E0 6A 3F B8 A7 85 A8 4D B0 X-Face: 2"oEc=1eRte%^**c0+#}~"[c%cbZ-(z^J482`Z@Rn:K<QWzpJ7'kStXb*19`FnoH.yKUhZ?u6+jjW9h,XwkAniu7%Ogqdk]G@nl[<T}8n+nrbRn,yOgCc.->YA$d\fv78cw|j_\*}O$Z[[a4$_:v=-c>hdBhP%K7dj'd0H; UDU"E@R=R~Z~A([ Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=mutt-hoshi-28495-4 Hallo, aufgrund einiger Anfragen gestern Abend beim Treffen des K"olner Linuxworkshops habe ich hier einmal zusammengefa"st, wie man POP via SSH machen kann. Vielleicht besteht ja auch hier Interesse daran. Die beiden vorgestellten L"osungen haben keinen Anspruch auf Eleganz (oder Richtigkeit ;-) - bei mir funktionieren sie jedoch sehr gut. Falls das alles schon altbekannt ist, dann empfehle ich diese Mail einfach sofort zu l"oschen ;-) Der gro"se Nachteil von POP ist, da"s bei der Authentifizierung Username und Passwort im Klartext "uber das Netz gehen, von den "ubertragenen Mails einmal ganz zu schweigen. Mit geeigneten Snifferprogrammen, wie z.B. dem Juggernaut ist es trivial, diese Daten aus dem Netz zu fischen, zu sammeln und sp"ater eventuell mi"sbr"auchlich zu verwenden. Da die Secure Shell (SSH) "uber kryptographische Methoden sowohl eine sichere Authentifizierung erm"oglicht (kein Passwort wird im Klartext daf"ur "ubertragen), sowie alle Daten verschl"usselt "ubertragen werden, bietet sie sich f"ur die Verwendung mit POP geradezu an. Ein weiterer Vorteil der SSH ist, da"s neben der Verschl"usselung auf Wunsch auch eine Komprimierung der Daten erfolgen kann. Das geschieht mit dem gleichen Algorithmus wie 'gzip', so da"s selbst auf langsamen Modemleitungen (und nat"urlich auch auf schnellen Leitungen, wie ISDN ;-) beim 'poppen' der Daten von zuhause ein deutlicher Geschwindigkeitszuwachs zu bemerken ist. Um POP via SSH zu machen, mu"s man sich auf einem Rechner mit der SSH authentifizieren k"onnen. Das mu"s nicht zwangsl"aufig der Rechner mit dem POP-Server sein, obwohl sie meistens die selben sind. Prinzipiell geht man folgenderma"sen vor: 1) Man authentifiziert sich auf einem Rechner <sshhost> via SSH. 2) Man erzeugt eine Art kryptographischer Pipeline "uber das Netz zwischen dem POP-Port (bei POP3 ist das 110) auf dem POP-Rechner <pophost> und einem frei gew"ahlten Port auf dem lokalen Rechner <localhost>, z.B. 1234. Dabei ist zu bedenken, da"s bei lokalen Ports mit einer Portnummer < 1024 root-Rechte notwendig sind. 3) Man holt - wie immer - seine Mails via POP ab, z.B. mit fetchmail. Nur nicht von dem "ublichen <pophost>, sondern von dem gew"ahlten Port auf <localhost>. Das ist eigentlich schon alles. Nun zu den daf"ur notwendigen Konfigurationsarbeiten. M"oglichkeit a) fetchmail-only-Konfiguration (Dank an Markus Dickebohm f"ur einen Verweis auf eine Mail von Manoj Srivastava <srivasta@datasync.com>) Hierbei mu"s man folgendes in seine .fetchmailrc schreiben: poll localhost port 1234 proto pop3 user <username> password "<passwort>" preconnect "ssh -C -f -L 1234:<pophost>:110 <sshhost> sleep 20 </dev/null >/dev/null"; Dabei sind die fehlenden Informationen in den <> (einschlie"slich der <>) entsprechend zu ersetzen. Es reicht nun ein einfacher Aufruf von 'fetchmail'. Nachdem dann das SSH-Passwort f"ur <sshhost> eingegeben wurde, werden die Mails via POP geholt. Nat"urlich kann man auf den Eintrag 'password "<passwort>"' verzichen um zus"atzliche Sicherheit zu erhalten, allerdings mu"s man dann zwei Mal beim Aufruf von 'fetchmail' ein Passwort eingeben. Einmal das POP-Passwort und dann das SSH-Passwort. Letztendlich ist es immer die Wahl zwischen noch mehr Sicherheit und Bequemlichkeit. Nun noch ein Paar Anmerkungen zu dem Aufruf von ssh: -C : Hiermit wird die Komprimierung aktiviert. -f : Schickt SSH in den Hintergrund nachdem die Authentifizierung erfolgte und die Verbindung steht. -L 1234:<pophost>:110 : Verbindet den lokalen Port 1234 mit dem Port 110 auf <pophost> "uber eine kryptographische Pipeline. sleep 20 : 20 Sekunden nach Ende der POP-"Ubertragung wird die SSH-Pipeline gekappt. Falls der Name des lokalen Users von dem auf <sshhost> verschieden ist, mu"s ssh noch die Option '-l <sshusername>' mitgegeben werden. M"oglichkeit b) Automatisch/Tempor"are-Konfiguration Hierbei verwende ich ein kleines expect-Skript 'ssh-pop.tcl', da"s automatisch die Pipeline zwischen Port 110 auf <localhost> (auf dem nat"urlich kein POP3-Server laufen darf) und Port 110 auf <pophost> aufbaut. Diese Pipeline wird nach 600 Sekunden abgebrochen. ---schnipp--- #!/usr/bin/expect -- set timeout -1 spawn /usr/bin/ssh -l <username> -C -L110:<pophost>:110 <sshhost> sleep 600 expect "Enter passphrase*: " send "<sshpasswort>\r" sleep 600 ---schnapp--- Bei Bedarf kann man die Dauer, die die Pipeline aufrechterhalten werden soll, von 600 sec auf einen anderen Wert hochsetzen. Daf"ur sind einfach die Werte hinter den beiden sleep's zu ver"andern. Ebenso kann nat"urlich auch ein anderer lokaler Port gew"ahlt werden. Das Skript wird dann in /etc/ppp/ip-up folgenderma"sen eingetragen: ssh-pop.tcl > /dev/null 2>&1 & Dann mu"st man fetchmail, popclient, etc. nur noch so konfigurieren, da"s er die Mails von dem Rechner abholt, auf dem das expect-skript gestartet worden ist. Eine .fetchmailrc kann dann so aussehen poll <localhost> proto pop3 username <username> password "<passwort>" ACHTUNG!!! Immer dann, wenn Passworte im Klartext in eine Datei eingetragen werden, wie z.B. oben, dann sind nat"urlich die Zugriffsrechte f"ur Group und Others entsprechend zu l"oschen. So, das war's dann schon. Ich hoffe nicht zuviel Bandbreite verschwendet zu haben ;-) Gru"s Oliver -- Oliver Flimm Email: flimm@ph-cip.uni-koeln.de CipLab, Institutes of Physics flimm@ub.uni-koeln.de, flimm@guug.de Cologne, Germany WWW : http://www.ph-cip.uni-koeln.de/~flimm ]