Next Previous Contents

3. Bruke dette sammen med e-post programmene dine

Denne delen beskriver hvordan du kan få dine POP-klienter til å bruke ssh vidersendingsforbindelsen. Primært fokusere det på fetchmail (ESR's glimrende nedlastings- og videresendings-program for e-post), siden det er det mest fleksible programmet jeg har funnet for å håndtere POP. Fetchmail kan en finne på http://www.tuxedo.org/~esr/fetchmail/. Du kan gjøre deg selv en stor tjeneste ved å lese den glimrende dokumentasjonen som følger med fetchmail.

3.1 Sette opp fetchmail

Følgende er innholdet i min .fetchmailrc


defaults
        user msingh is manish
        no rewrite

poll localhost with protocol pop3 and port 11110:
        preconnect "ssh -C -f msingh@popserver -L 11110:popserver:110 sleep 5"
        password foobar;

Ganske enkelt, eller hva? fetchmail har et utall av kommandoer, men de viktigste i denne forbindelse er preconnect linja og funksjonsvalget poll.

Vi er ikke forbundet direkte til POP-tjeneren, men istedet til localhost og port 11110. Preconnect-delen sørger for videresending hver gang fetchmail kjører. Den holder forbindelsen oppe i 5 sekund, slik at fetchmail kan få tid til å opprette en egen forbindelse. Resten sørger fetchmail for selv.

Så hver gang du kjører fetchmail blir du bedt om å skrive inn ssh passordet ditt for pålitelighetskontroll. Hvis du kjører fetchmail i bakgrunnen (slik jeg gjør), er dette tungvint. Dette bringer oss over til neste del.

3.2 Automatisere det hele

ssh kan bruke mange metoder for pålitelighetskontroll. En av disse er å bruke et RSA offentlig/privat nøkkel-par. Du kan lage en pålitelighetskontrollnøkkel for din konto ved å bruke ssh-keygen. En pålitelighetskontrollnøkkel kan ha en assosiert pass-setning, eller en tom pass-setning. Om du ønsker en pass-setning avhenger av hvor sikker du tror kontoen du bruker lokalt er.

Hvis du tror maskinen din er sikker, er det bare å gå i gang med en tom pass-setning. I det tilfellet virker .fetchmailrc over ved bare å kjøre fetchmail. Du kan deretter kjøre fetchmail i daemon modus når du ringer opp og e-posten din vil bli henta automatisk. Det er det hele.

Men hvis du tror du trenger en pass-setning, blir ting straks mer kompliserte. ssh kan bli styrt av en agent når det kjører, og denne kan registrere nøkler og utføre pålitelighetskontroll for de ssh-forbindelsene som den styrer. Så jeg har dette skallmanuset getmail.sh:


#!/bin/sh
ssh-add
while true; do fetchmail --syslog --invisible; sleep 5m; done

Når jeg ringer opp kjører jeg:

$ ssh-agent getmail.sh

Jeg blir bedt om å skrive inn pass-setningen en gang, og det blir hentet eventuell e-post hvert femte minutt. Når oppringtforbindelsen lukkes stopper jeg ssh-agent. (Dette blir automatisert i mine ip-up og ip-down skallmanus.)

3.3 Uten å bruke fetchmail

Hva hvis jeg ikke kan eller vil bruke fetchmail? Pine, Netscape og noen andre klienter har egne POP-mekanismer. Først, vurder å bruke fetchmail! Det er mye mer fleksibelt. Dessuten burde ikke e-postklienter holde på med slike ting uansett.

Men hvis du må, og ikke klienten din har mulighet for å opprette en forhåndsforbindelse slik som fetchmail, blir du nødt til å holde ssh's viderekobling av porten aktiv under hele oppkoblingstida. Det betyr at du må bruke sleep 100000000 for å opprettholde forbindelsen. Dette er noe nettverksadministratoren din kanskje ikke er glad for.

Dessuten, hos noen klienter (slik som Netscape) er portnummeret hardkodet til 110. Du blir da nødt til å være root for å gjøre videresending av en port fra privilegerte porter. Dette er i tillegg irriterende, men det burde fungere.


Next Previous Contents