Avanti Indietro Indice

3. Usarla con il vostro software di posta.

Questa sezione descrive come impostare il software del vostro client POP per usare la connessione SSH inoltrata. Il suo obiettivo principale è fetchmail (un'eccellente utility ESR per l'inoltro e la consegna), poiché è il software più flessibile che ho trovato per la distribuzione con il POP. Fetchmail può essere trovato su http://www.tuxedo.org/~esr/fetchmail/. Questo vi darà l'occasione per leggere l'eccellente documentazione distribuita con fetchmail.

3.1 Impostare fetchmail

Il seguente è il mio .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;

Molto semplice, vero? fetchmail è ricco di comandi, ma quelli più importanti sono la riga preconnect e l'opzione poll.

Non ci connettiamo direttamente con il server POP, ma con l'host locale (localhost) e la porta 11110. La preconnect da l'inoltro ogni volta che si avvia fetchmail, lasciando aperta la connessione per 5 secondi, così fetchmail può instaurare la sua connessione. Il resto lo fa fetchmail stesso.

Ogni volta che avviate fetchmail, siete incitati a dare la vostra password per l'autenticazione SSH. Se avviate fetchmail in background (come ho fatto io), avrete l'inconveniente di dover fare questo. Questo ci porta alla prossima sezione.

3.2 Automatizzare il tutto

SSH può autenticare usando molti metodi. Uno di questi è l'utilizzo di una coppia di chiavi pubblica/privata RSA. Potete generare una chiave d'autenticazione per il vostro account usando ssh-keygen. Una chiave d'autenticazione può avere una passphrase (frase password) associata ad essa, oppure la passphrase può essere vuota. Il volere o no una passphrase dipende da quanto pensiate che sia sicuro l'account che state usando localmente.

Se voi pensate che la vostra macchina sia sicura, proseguite e avrete una passphrase vuota. Poi il su riportato .fetchmailrc lavora appena avviate fetchmail. In seguito potete far funzionare fetchmail in modalità demone quando voi chiamate e la posta è consegnata automaticamente. Avete fatto.

Tuttavia, se pensate di aver bisogno di una passphrase, le cose diventano più complicate. SSH può funzionare sotto il controllo di un agente, il quale può registrare le chiavi e autenticare qualsiasi connessione SSH fatta sotto di esso. Per questo motivo io ho questo script getmail.sh:


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

Quando chiamo, io avvio:

$ ssh-agent getmail.sh

Mi chiede la password una volta sola, poi controlla la posta ogni 5 minuti. Quando la connessione dialup viene chiusa, termino ssh-agent. (Questo è automatico nei miei script ip-up e ip-down)

3.3 Non usare fetchmail

E se non posso o non voglio usare fetchmail? Pine, Netscape e molti altri client hanno il loro proprio meccanismo POP. Primo, prendete in considerazione l'utilizzo di fetchmail! Esso è di gran lunga più flessibile e i client di posta non possono fare ogni volta tutte queste cose. Sia Pine che Netscape possono essere configurati per usare il sistema di posta locale.

Ma se proprio dovete farlo, a meno che il vostro client abbia una caratteristica di preconnessione come fetchmail, state andando nella direzione di dover mantenere attivo l'SSH port forwarding per l'intero tempo che state connessi. Questo significa usare sleep 100000000 per mantenere attiva la connessione. Questo potrebbe non farvi andare troppo d'accordo con il vostro amministratore di rete.

Secondariamente, alcuni client (come Netscape) hanno il numero della porta preimpostato a 110, così avrete bisogno di essere root per fare il port forwarding da porte privilegiate. Questo è anche irritante. Ma dovrebbe funzionare.


Avanti Indietro Indice