ISP-Hookup-HOWTO

Egil Kvaleberg, egil@kvaleberg.no

v1.26, 5 Marzo 1998
Questo documento descrive come usare Linux per collegarsi a un Internet Service Provider tramite una connessione TCP/IP via modem. Oltre alla procedura basilare di chiamata e attivazione del collegamento, si descrive anche la gestione della posta e delle news. Traduzione italiana e manutenzione: Jose Luis Scanferlato ( jls@acm.org).

1. Introduzione

Questa descrizione è stata fatta per rispondere alcune delle domande di coloro che intendono configurare e usare Linux per collegarsi ai rispettivi ISP (Internet Service Provider) tramite collegamento telefonico.

Per aiutare anche i meno esperti, si è tentato di coprire la maggior parte dei problemi incontrati. Questo creerà inevitabilmente un certo grado di sovrapposizione con altri documenti Howto di Linux e libri del LDP. Questi documenti dovrebbero essere consultati per un maggiore approfondimento e dettagli.

La maggior parte della documentazione esistente è diretta a utenti con una certa esperienza, e quindi i principianti avranno spesso problemi ad individuare le informazioni significative.

Per semplificare, negli esempi che seguiranno, verranno usate le seguenti informazioni:

Il nostro dirk chiamerà il suo computer roderick.

Tutti i riferimenti della tabella precedente dovrebbero naturalmente essere sostituiti con i valori adatti all'Internet Provider che si desidera usare. Spesso, un minimo di cambiamenti sarà sufficiente per quelli che hanno più Internet Provider. Mi piacerebbe essere informato sui problemi che riscontrate in merito.

1.1 Copyright

Copyright (c) 1996,1997,1998 by Egil Kvaleberg. Questo documento può essere distribuito sotto le condizioni stabilite dalla licenza LDP da http://sunsite.unc.edu/LDP/COPYRIGHT.html

1.2 Disconoscimento

L'autore non si assume nessuna responsabilità sul contenuto di questo documento. Usate i concetti, esempi e tutto quanto a vostro proprio rischio.

Una delle molte possibili configurazioni verrà descritta. Nel mondo Linux, normalmente esistono più modi di ottenere una cosa. I paragrafi contenenti suggerimenti alternativi sono contraddistinti da ALTERNATIVA: Tenete anche in considerazione che i riferimenti FTP spesso cambiano man mano che arrivano nuove versioni.

Saranno descritti soltanto programmi che sotto certe condizioni (per quanto ne so Io) possono essere usati o valutati per scopi privati. La maggior parte dei programmi sono disponibili con i rispettivi sorgenti sotto condizioni GNU o simile.

1.3 Traduzioni

Oltre a questa, sono disponibili traduzioni di questo documento nelle seguenti lingue:

Tedesco, da Cristoph Seibert: http://tech.appl-opt.physik.uni-essen.de/LinuX/german-howto/DE-ISP-Verbindung-HOWTO.html

Coreano, da Kidong Lee: http://www.postech.ac.kr/~cessi/howto/ISP-Hookup/ISP-Hookup-HOWTO.html

Francese, da Eric Jacoboni: http://www.minet.net/linux/HOWTO-fr/ISP-Hookup-HOWTO.html

Polacco, da Piotr Pogorzelski: URL TBA

Norvegese: http://www.kvaleberg.com/no-linux.html

1.4 Nuove versioni di questo documento

L'ultima versione (in italiano) di questo documento, sarà sempre reperibile nell'area WWW e FTP dell'Italian Linux Documentation Project (rispettivamente http://www.pluto.linux.it/ildp/ e ftp://ftp.pluto.linux.it/pub/ildp/ per la rete commerciale, e http://ildp.psy.unipd.it e ftp://ftp.psy.unipd.it/pub/pluto/ildp/ per la rete GARR e loro mirror elencati nel file ftp://ftp.pluto.linux.it/pub/pluto/MIRRORS.

L'ultima versione (in inglese) di Linux ISP Hookup HOWTO sarà periodicamente inviata sul newsgroup comp.os.linux.answers, ed è anche disponibile sui vari siti FTP dedicati a Linux, compreso sunsite.unc.edu.

L'ultima versione (in inglese) di questo documento è disponibile in formato HTML a http://www.kvaleberg.com/ISP-Hookup-HOWTO.html

1.5 Commenti

Ogni commento, segnalazione di errore, informazioni aggiuntive e critiche di ogni tipo possono essere indirizzati a:

egil@kvaleberg.no

http://www.kvaleberg.com/

2. Come mi collego al resto del mondo?

Si assumerà che avete installato il software essenziale di rete della vostra distribuzione Linux, e che avete definito quale porta seriale verrà usata come /dev/modem.

La configurazione predefinita normalmente permetterà l'accesso diretto a /dev/modem soltanto all'utente root.

Per collegarsi ad un Internet Provider direttamente tramite un account di tipo shell, e per sperimentare con le sequenze di connessione, potete usare il programma minicom. È molto semplice da usare.

2.1 La configurazione basilare

La configurazione del sistema da usare in rete dovrebbe essere fatta da root. Prima di continuare, assicuratevi che il file /etc/hosts.deny contenga la seguente linea:

ALL: ALL

Ma normalmente vorreste autorizzare voi stessi, quindi aggiungete la seguente linea al file /etc/hosts.allow:

ALL: LOCAL
Oppure:
ALL: 127.0.0.1

Notate che quanto segue è valido solo per un collegamento PPP con indirizzo IP dinamico. Nel caso abbiate una connessione fissa, ci saranno alcune differenze.

È carino avere un nome associato al sistema, un nome che l'utente può scegliere a piacere. Scrivete questo nome nel file /etc/HOSTNAME:

roderick

Il passo successivo è specificare il name server in /etc/resolv.conf:

search .
nameserver 193.212.1.0

Il name server deve essere specificato con un indirizzo IP numerico, e sarà diverso per ogni ISP. Se necessario, potete avere fino a tre server, uno per linea. I server verranno interrogati nella sequenza in cui sono elencati.

Se volete utilizzare nomi come miosistema come abbreviazione di miosistema.acme.xz, dovete sostituire la prima linea con:

search acme.xz

Un minimo di configurazione è anche richiesto nel file /etc/hosts. Normalmente dovrebbe bastare così:

127.0.0.1   localhost
0.0.0.0     roderick

Ovviamente, quelli che hanno un indirizzo IP fisso, dovranno sostituire 0.0.0.0 con l'indirizzo reale.

Allo stesso modo, un /etc/networks minimale è:

loopback    127.0.0.0
localnet    0.0.0.0

Dovreste anche impostare il vostro dominio esterno in /etc/mailname:

acme.xz

Il nome utente e la password dell'account presso l'Internet Provider si deve specificare in /etc/ppp/pap-secrets

dirk * PrettySecret

Per i provider che usano CHAP invece di PAP il file da modificare è /etc/ppp/chap-secrets.

Finalmente, la parte fondamentale riguardante la procedura stessa di connessione deve essere specificata prima che PPP possa essere iniziato. Questo viene fatto nello script /etc/ppp/chatscript:

TIMEOUT 5
"" ATZ
OK ATDT12345678
ABORT "NO CARRIER"
ABORT BUSY
ABORT "NO DIALTONE"
ABORT WAITING
TIMEOUT 45
CONNECT ""
TIMEOUT 5
"name:" ppp

Alcuni dettagli devono essere in qualche maniera tarati. Ovviamente, il primo da modificare è il numero telefonico indicato sulla terza linea. Altri dovranno sostituire la stringa di inizializzazione del modem ATZ con qualcosa di più adatto al modem che stanno utilizzando. L'ultima linea indica che ci si aspetta un prompt che finisce per name:, e che la risposta dovrebbe essere ppp quando arriva. Altri sistemi possono richiedere altre procedure di login.

La composizione del numero telefonico e l'avvio del protocollo PPP vengono eseguiti con il seguente comando:

exec pppd connect \
     'chat -v -f /etc/ppp/chatscript' \
      -detach crtscts modem defaultroute \
      user dirk \
      /dev/modem 38400
A questo punto, dovremmo essere online, e rimanere collegati fino a quando il processo viene terminato tramite ctrl-C. Tutti i messaggi riguardanti la connessione verranno aggiunti ai log di sistema. Per leggerli, digitate:

tail /var/adm/messages
oppure
dmesg

Mentre PPP è su, avrete accesso diretto a Internet e potete usare programmi come ftp, ncftp, rlogin, telnet, finger ecc. Tutti questi programmi sono parte del software standard di rete.

Altre informazioni riguardanti PPP sono disponibili da:

/usr/lib/ppp/README.linux

/usr/lib/ppp/README.linux-chat

Per concludere, qualche parola aggiuntiva sulla sicurezza. Il file /etc/inetd.conf elenca tutti i servizi che il vostro sistema offre all'esterno. Con il file /etc/hosts.deny che abbiamo descritto, nessun tipo di accesso esterno sarà permesso. Per coloro che ne avranno bisogno, l'accesso deve essere esplicitamente autorizzato nel file /etc/hosts.allow. Il traffico locale può essere permesso da:

ALL: LOCAL
Guardate anche man 5 hosts_access.

Un piccolo particolare: esiste una certa confusione sui nomi dei protocolli POP. Una definizione in /etc/services compatibile con praticamente tutto è:

pop2            109/tcp         pop-2           # PostOffice V.2
pop3            110/tcp         pop-3 pop       # PostOffice V.3

ALTERNATIVA: Invece di chatscript, si potrebbe utilizzare dip, che è molto più flessibile. Ma non insieme a diald.

ALTERNATIVA: Quei fortunati che hanno una connessione TCP/IP permanente, per esempio tramite Ethernet possono tranquillamente ignorare tutto su PPP e piuttosto concentrarsi sulla configurazione della scheda di rete.

ALTERNATIVA: Altri che non hanno la possibilità di usare PPP, ma possono invece utilizzare SLIP, per il quale esiste un supporto simile a quello di PPP. Un'altra possibilità è UUCP. Altri ancora potrebbero dover affidare lo scambio della posta e delle news tramite SOUP. Una descrizione di quest'ultimo può essere trovata a: ftp://ftp.sol.no/user/bjorn/Linux-offline.tgz

Il programma TERM è un'altra opzione. Fate riferimento al documento Term-HOWTO.

3. Come faccio a navigare?

Se pensate che il testo è la cosa più importante potreste usare il browser Lynx. È disponibile da:

ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/lynx-2.3.bin2.tar.gz

Se avete installato X potete anche usare uno dei vari browser grafici. Chimera può essere trovato a:

ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/chimera-1.65.bin.ELF.tar.gz

http://www.unlv.edu/chimera/

Mosaic

ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/Mosaic-2.7b1-aout.tgz

ftp://ftp.NCSA.uiuc.edu/Web/Mosaic/Unix/binaries/2.6

Netscape (aka. Mozilla)

ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/netscape-v11b3.tar.gz

ftp://ftp.cs.uit.no/pub/www/netscape

Questi browser sono costantemente disponibili in nuove ed in vari modi eccitanti versioni.

L'uso e valutazione di questi programmi è soggetto a certe condizioni. Siete pregati di osservarle.

4. Come faccio a inviare e ricevere posta elettronica?

Prima di tutto, verificate che sendmail sia installato. Sendmail smista la posta interna ed esterna, bufferizzando la posta in uscita fino al momento in cui è possibile inoltrarla.

Sendmail si basa sulla configurazione che trova in /etc/sendmail.cf. Un esempio adatto per gli utenti di un Internet Provider può essere trovato a: ftp://ftp.sol.no/user/egilk/sendmail.cf. Questo esempio è basato su procmail come agente di consegna, ma può essere modificato facilmente per usare deliver.

È certamente necessario avere un indirizzo di dominio ufficiale per la posta in uscita, cosa che viene specificata in sendmail.cf:

# come chi mi maschero (null per non mascherarsi)
DMacme.xz
Questo suppone che il nome utente in locale è lo stesso che avete presso l'Internet Provider. Se avete un nome differente, basta specificare il nome completo:
DMdick@acme.xz

Sendmail è adesso configurato per spedire direttamente al destinatario. Per evitare lunghi e ripetuti collegamenti in quei casi dove la connessione presso il destinatario è lenta e irregolare, è di solito conveniente usare il vostro Internet Provider come ritrasmettitore (relay host). Questo può essere specificato da DS:

# "Smart" relay host (può essere null)
DSmail.acme.xz

Ricordatevi che sendmail è un po' permaloso con i caratteri di tabulazione presenti in sendmail.cf. Potete usare l'editor vi per assicurarvi che i tabulatori rimangano intatti.

La ricezione della posta elettronica può essere effettuata con il protocollo POP3, che può essere lanciato ogni volta che si stabilisce la connessione. Uno script per testare questo è

sendmail -q
popclient -3 -v mail.acme.xz -u dirk -p "PrettySecret" \
       -k -o /usr/spool/mail/dirk

Questo script può essere lanciato dopo che la connessione PPP è stata attivata. Ricordatevi che questo script è solo di prova, quindi conviene assicurarsi che la mailbox non venga toccata durante la sua esecuzione. L'opzione -k, che sta per kept, indica che la posta rimane disponibile nella mailbox del vostro Internet Provider, e della quale voi ne ricevete una copia. Certamente, conviene disabilitare questa opzione una volta che avete la certezza che funziona correttamente.

State attenti che la password verrà mostrata sulla linea di comando. Notate anche che popclient sta diventando obsoleto, e che dovreste considerare invece l'uso di fetchmail.

Una versione migliore e più sicura di questo script può essere prelevata da: ftp://ftp.sol.no/user/egilk/pop-script.tar.gz

Questa versione dello script richiede che venga isntallato anche procmail, ma questo è qualcosa di cui non vi pentirete mai. È già compreso nelle maggiori distribuzioni, altrimenti potete prelevarlo da: ftp://sunsite.unc.edu/pub/Linux/system/Mail/mailhandlers/procmail-3.10-2.tar.gz

Procmail è uno strumento semplice e flessibile che può gestire la posta elettronica in ingresso in base ad una grande varietà di criteri. Inoltre, è in grado di effettuare certe operazioni automaticamente come per esempio messaggi di risposta durante le vacanze.

Notate che quando usate procmail direttamente come in questo caso la situazione è leggermente diversa da come viene descritta nella documentazione di procmail. Il .forward non è richiesto, e non avete neanche bisogno di .procmailrc. Quest'ultimo è necessario solo se volete ordinare la posta.

Come interfaccia utente per leggere e spedire posta elettronica potete adottare programmi come pine oppure elm.

ALTERNATIVA: Fetchmail è diventato recentemente una alternativa migliorata di popclient. L'ultima versione è disponibile da: ftp://ftp.ccil.org/pub/esr/fetchmail/fetchmail-3.3.tar.gz

ALTERNATIVA: Per un normale utente con accesso telefonico ad un Internet Provider, non è realmente necessario avere il demone sendmail attivo. Per ridurre le richieste di risorse, e altri possibili problemi, conviene commentare il lancio di sendmail, che di solito si trova nel file /etc/rc.d/rc.M (varia a seconda della distribuzione che state usando).

ALTERNATIVA: Al posto di sendmail potete usare il più semplice smail. Troverete una buona descrizione di questo programma (come di tante altre cose menzionate in questo documento) nella Linux Network Administrator's Guide.

ALTERNATIVA: Esiste anche un pacchetto di macro m4 per costruire un file /etc/sendmail.cf. Per una installazione semplice potrebbe essere sufficiente modificare una configurazione già esistente.

ALTERNATIVA: Ci sono altri programmi più semplici ma meno flessibili per gestire la posta. Pine, per esempio, può funzionare in modo standalone se configurato adeguatamente. Può anche essere possibile usare nuove versioni di alcuni browser Web.

ALTERNATIVA: Tanti sono molto entusiasti di utilizzare Emacs anche per la gestione della posta e delle news. Ulteriori informazioni possono essere trovate a: http://www.ifi.uio.no/~larsi/

ALTERNATIVA: Un sostituto di popclient è pop-perl5. È disponibile da: ftp://sunsite.unc.edu/pub/Linux/System/Mail/pop-perl5-1.1.tar.gz

5. News

5.1 Come faccio a configurare un news-reader online?

Mentre il collegamento PPP è attivo, sarà possibile leggere le news online. Ci sono diversi programmi disponibili, due delle alternative semplici sono rtin e trn.

Per iniziare a leggere le news, il più delle volte l'unica cosa necessaria in termini di configurazione è impostare NNTPSERVER (di solito una volta e tutte nel file .profile):

export NNTPSERVER=news.acme.xz 

Per avere l'indirizzo del mittente (campo From), alcuni programmi possono richiedere:

export NNTP_INEWS_DOMAIN=acme.xz

5.2 Come faccio a configurare un news-reader offline?

Per essere in grado di leggere le news offline e quindi risparmiare sulla bolletta del telefono e ottenere una maggiore flessibilità, è necessario predisporre in qualche modo un news-spool locale. Questo richiede un po' di configurazione ed anche una certa quantità di spazio disco dedicata. Dopo l'installazione iniziale, le cose dovrebbero più o meno girare da sole, con qualche intervento ogni tanto.

In seguito verranno descritte due diverse soluzioni.

5.3 Come faccio a configurare C News?

Questa soluzione è basata sul server delle news C News ed il protocollo NNTP. C News è stato originariamente progettato per una configurazione diversa, ma è abbastanza flessibile di adattarsi anche alla nostra situazione. Si potrebbe anche usare il più recente INN come server delle news, ma potrebbe richiedere un po' più di risorse. In ogni caso, fate attenzione a non installare entrambi, dato che non convivono facilmente.

È cruciale che tutta la gestione delle news venga fatta dall'utente news, e che tutti i file di configurazione si trovino nella cartella /usr/lib/news. Se avete già effettuato il login come root, potete digitare su news; cd.

I file di configurazione più importanti sono:

Dirk Gently's Holistic Detective Agency

ME:all/all::
acme/acme.xz:all,!junk/all:FL:

mkdir /var/spool/news/out.going/acme

C News necessita di un certo grado di manutenzione giornaliera, ma questo può essere indicato una volta per tutte tramite il comando crontab -e eseguito dall'utente news. La seguente impostazione può essere modificata secondo le esigenze:

# mantieni i batch entrante e uscente
10,40 *  * * * /usr/lib/newsbin/input/newsrun

# scadenza delle news, una volta al giorno
30 0  * * * /usr/lib/newsbin/expire/doexpire

# monitoraggio ed eventuali report
00 2  * * sat /usr/lib/newsbin/maint/addmissing
40 3  * * * /usr/lib/newsbin/maint/newswatch
50 3  * * * /usr/lib/newsbin/maint/newsdaily

newsrun sposta gli articoli in ingresso e uscita (ogni mezz'ora), doexpire cancellerà gli articoli man mano che scadono (ogni notte alle 00:30), mentre gli ultimi tre comandi eseguono varie procedure di supervisione e correzione di errori.

Occorre anche effettuare un po' di pulizia in caso di riavvio del sistema. Come utente root, aggiungete la seguente linea al file /etc/rc.d/rc.local:

su news -c /usr/lib/newsbin/maint/newsboot

Le news possono essere raccolte da un server NNTP tramite il programma NewsX, che può essere prelevato da ftp://sunsite.unc.edu/pub/Linux/system/news/transport/newsx-0.9.tar.gz oppure da ftp://ftp.sol.no/user/egilk/newsx-0.9.tar.gz

Configurare NewsX è abbastanza semplice. L'installazione è un caso classico di:

make
su
make install
exit

Con le impostazioni appena descritte, tutto quello che resta da fare è creare i gruppi che desiderate leggere usando il comando addgroup.

Per scaricare degli articoli, l'utente news deve eseguire i seguenti comandi (si assume che il collegamento tramite PPP o simile è già su):

newsrun
newsx acme news.acme.xz
newsrun

L'opzione -d permette visualizzare continuamente dei messaggi sullo schermo. Per ulteriori informazioni, rivolgetevi alla documentazione di NewsX.

NewsX si prenderà cura di inviare le news in uscita.

Per controllare la cancellazione degli articoli man mano che scadono, è necessario un file explist. I commenti spiegano le nostre intenzioni:

# conserva lo storico per 14 giorni, nulla oltre i 120 giorni
/expired/                       x       14      -
/bounds/                        x       0-1-120 -

# conserva questi per due mesi
comp.sources,comp.os.linux.all  x       60      -

# il rumore viene buttato via subito
junk,control                    x       2       -

# predefinito:  14 giorni, nessuna archiviazione
all                             x       14      -

ALTERNATIVA: In uno news-spool piccolo, normalmente non è necessario il newsgroup control. Il traffico è enorme in confronto alla possibile convenienza. Il punto è che gli articoli saranno cancellati, e che i gruppi possono essere creati automaticamente. Per assicurarsi che i messaggi di controllo che contengono newgroup non causino disordini, un file chiamato newgroupperm specifica quello che permetteremo:

comp.os.linux   tale@uunet.com  yv
all             any             nq

In questo esempio, tutti i gruppi sotto la gerarchia comp.os.linux verrano creati (y), e che l'utente news sarà notificato (v). Tutto il resto verrà ignorato (n) in completo silenzio (q). L'ultima linea è sufficiente se volete creare tutto i gruppi manualmente.

ALTERNATIVA: Al posto di NewsX potete usare suck.

5.4 Come faccio a configurare Leafnode?

Una soluzione completamente differente è installare il pacchetto integrato leafnode. Questo permette la gestione di tutte le operazioni richieste per un news spool personale, ed è facile da configurare. È disponibile da http://www.troll.no/freebies/leafnode.html

Per quanto riguarda C News, tutta la manutenzione delle news dovrebbe essere realmente eseguita dall'utente news.

La cartella di lavoro di leafnode è /usr/lib/leafnode. Per installare, digitare:

cd /usr/lib/leafnode
tar -xzvf leafnode-0.8.tgz
cd leafnode-0.8
make
su
make install

Osservate in quanto segue che il prefisso /usr/local/sbin andrebbe sostituito da /usr/sbin se avete installato leafnode da un pacchetto.

Mentre siete ancora nei panni di root, modificate la linea che controlla NNTP nel file /etc/inetd.conf:

nntp  stream  tcp  nowait  news  /usr/sbin/tcpd /usr/local/sbin/leafnode
Attivatelo con:
killall -HUP inetd

Ritornate come utente news digitando exit. Nel file /usr/lib/leafnode/config modificate la linea che definisce il server NNTP. Nel nostro caso:

server = news.acme.xz

Leafnode sarà autosufficente aggiungendo il seguente comando tramite crontab -e come utente news:

# scadenza delle news, una volta al giorno
0 4 * * * /usr/local/sbin/texpire

Anche lo scambio delle news viene fatto dall'utente news con il seguente comando (assumendo che PPP è attivo):

/usr/local/sbin/fetch

Quelli che desiderano leggere le news dovrebbero seguire la ricetta descritta in Come faccio a configurare un newsreader online?, eccetto che nella configurazione del server delle news si deve definire localmente, cioè:

export NNTPSERVER=localhost

Questo sarebbe tutto quanto serve. Il primo fetch trasferirà l'elenco dei newsgroup disponibili. In seguito, leafnode prenderà nota dei gruppi che vengono richiesti dagli utenti, e si adatterà a questo la volta successiva che viene attivato.

Si rende noto che leafnode ha qualche problema laddove sono richieste particolari autorizzazioni per NNTP.

ALTERNATIVA: Al posto di leafnode potete usare nntpcache, disponibile da ftp://ftp.suburbia.net/pub/nntpcache/nntpcache.tgz.

ALTERNATIVA: Un'altra alternativa è usare il newsreader slrn insieme al pacchetto slrn-pull. Il newsreader va compilato abilitando l'opzione spool.

6. Come faccio ad automatizzare la procedura di connessione?

La gestione automatica della posta e delle news è abbastanza facile sotto Linux.

Come primo e principale passo, si deve creare uno script /usr/lib/ppp/ppp-on per iniziare il collegamento con l'Internet Provider. Spesso, basta una riga con il seguente comando:

/usr/sbin/pppd

Altri particolari vengono definiti nel file /etc/ppp/options:

connect "/usr/lib/ppp/chat -v -f /etc/ppp/chatscript"
crtscts
modem
defaultroute
asyncmap 00000000
user dirk
/dev/modem 38400

Per chiudere il collegamento, usate la versione predefinita di /usr/lib/ppp/ppp-off.

Dopo aver verificato il funzionamento di questi script, si devono scrivere altri script che eseguiranno le diverse operazioni. Lo script per prelevare la posta è già stato descritto precedentemente, ed assumeremo che si trova nel file /home/dirk/pop.

Uno script per lo scambio della posta può essere messo in /root/mail:

#! /bin/sh
#
# scambia posta elettronica
# 10 minuti di timeout:
TIMEOUT=600
DT=10

# lancia sendmail:
sendmail -q &

# preleva la posta:
su dirk -c /home/dirk/pop

# attendi la fine di sendmail:
t=0
while ! mailq | grep -q "Mail queue is empty"; do
    t=$[$t+$DT]
    if [ $t -gt $TIMEOUT ] ; then
     echo "sendmail -q timeout ($TIMEOUT).."
     exit 1
    fi
    sleep $DT
done

exit 0

Lo script per lo scambio delle news può essere messo nel file /usr/lib/news/news:

#!/bin/sh
#
# scambio delle news
# viene eseguita come utente news:
cd /usr/lib/news

#aggiorna il batch di uscita (C News):
/usr/lib/newsbin/input/newsrun < /dev/null

#scambia le news:
/usr/lib/newsbin/newsx acme news.acme.xz

#e svuota il batch in ingresso:
/usr/lib/newsbin/input/newsrun < /dev/null

Adesso manca soltanto uno script per mettere insieme i diversi pezzi, e che può essere messo nel file /root/news+mail:

#!/bin/sh
#
# scambio della posta e delle news
# viene eseguito come utente root
#
if ! /usr/lib/ppp/ppp-on; then
    exit 1
fi
trap "/usr/lib/ppp/ppp-off" 1 2 3 15

#scambio della posta e news:
/root/mail &
su news -c ~news/news
wait

#chiude il collegamento
/usr/lib/ppp/ppp-off

#aggiorna il batch in ingresso (C News):
su news -c /usr/lib/newsbin/input/newsrun < /dev/null &

exit 0

È abbastanza semplice modificare lo script precedente per attivare la connessione solo quando c'è della posta o delle news da spedire. Supponiamo di chiamarlo /root/news+mail.cond, e teniamo presente che il nome dello spool delle news in uscita deve essere aggiornato di conseguenza:

#!/bin/sh
#
# scambio della posta e delle news, solo se ci sono messaggi in uscita
# (C News spool)
if [ -s /var/spool/news/out.going/acme/togo ] ||
    ! ( mailq | grep -q "Mail queue is empty"); then
     /root/news+mail
fi

L'unica cosa che manca è specificare quando dovrebbe accadere tutto ciò. Questo viene fatto usando il comando crontab -e come root. Assumendo che intendiamo effettuare sempre lo scambio della posta e delle news alle 07:00 del mattino, e successivamente ogni 4 ore ma solo se ci sono messaggi da spedire

00 7            * * *   /root/news+mail
00 11,15,19,23  * * *   /root/news+mail.cond

Verificate separatamente il corretto funzionamento di ogni componente prima di collegarli insieme. Successivamente potreste aggiungere molte altre operazioni, come per esempio sincronizzare la data e ora (usando ntpdate), l'aggiornamento automatico (mirroring) di file WWW e FTP gestiti localmente verso il vostro Internet Provider (usando make e ftp).

ALTERNATIVA: A seconda delle vostre preferenze, potete impostare le procedure al contrario. Ogni volta che la connessione PPP viene attivata, verrà eseguito anche lo script /etc/ppp/ip-up. E potete aggiungere in questo script qualunque incantesimo sia necessario per effettuare lo scambio della posta e delle news. Usate man pppd per ulteriori dettagli.

ALTERNATIVA: È anche possibile attivare automaticamente il collegamento PPP ogni volta che viene rilevato traffico di rete. Questa è in molti aspetti la soluzione più elegante, ma dipende molto di una buona configurazione onde evitare frequenti (e costosi) collegamenti. Altre informazioni possono essere trovate a http://www.dna.lth.se/~erics/diald.html.

L'utility diald è disponibile da ftp://sunsite.unc.edu/pub/Linux/system/network/serial/diald-0.16.tar.gz.

In questo sito potete anche trovare altre variazioni sul tema dei collegamenti PPP.

7. Parole finali

7.1 Altre cose che dovrei sapere?

PostMaster: root
ftp: root
news: root
usenet: root
FaxMaster: root
fax: root
WebMaster: root
MAILER.DAEMON: root

8. Informazioni specifiche su alcuni Internet Provider

Alcune informazioni più dettagliate su alcuni Internet Provider sono disponibili da una varietà di siti:

Demon Internet

ftp://ftp.demon.co.uk/pub/unix/linux/Demon/slack3.0.help.tgz

Netcom

http://www.netcom.com/bin/webtech/NetCruiser/Operating_Systems/Linux/linux.cfg.html

PowerTech, Telenor Online, Telia

http://www.kvaleberg.com/no-isp.html

Stanford

http://www-leland.stanford.edu/~wkn/Linux/network/network.html

MCI

http://www.kvaleberg.com/linux-mci.html

SISCOM

http://www.siscom.net/support/linux_setup.htm

AOL non è disponibile dato che utilizza un protocollo proprietario.

Se avete delle informazioni su un Internet Provider non elencato qui, siete pregati di contattarmi.

8.1 Dove posso imparare di più?

Il libro intitolato Linux Network Administrator's Guide di Olaf Kirch del Linux Documentation Project è abbastanza obbligatorio per chiunque intenda configurare e mantenere qualsiasi cosa relazionata con TCP/IP e Internet ( ftp://sunsite.unc.edu/pub/Linux/docs/linux-doc-project/network-guide/nag-1.0.ascii.tar.gz)

La documentazione di ogni pacchetto software vi fornirà tutta l'informazione che Vi serve, o almeno un riassunto. Le pagine man sono il primo posto dove guardare. Provate come esempio:

man pppd

Potete anche trovare della documentazione su alcuni programmi sotto la cartella /usr/doc, anche se non sempre è bene strutturata.

I seguenti HOWTO sono di particolare interesse:

Red Hat ha una mailing list sull'argomento PPP. Per abbonarsi occorre inviare un messaggio a redhat-ppp-list-request con il subject

subscribe

8.2 Ringraziamenti

Le informazioni raccolte in questo documento provengono da diverse fonti. Ringrazio le seguenti persone che direttamente o indirettamente hanno contribuito:

Adam Holt <holt@graphics.lcs.mit.edu>
Arne Coucheron <arneco@oslonett.no>
Arne Riiber <riiber@oslonett.no>
Arnt Gulbrandsen <agulbra@troll.no>
Bjorn Steensrud <bjornst@powertech.no>
Gisle Hannemyr <gisle@a.sn.no>
Hans Amund Rosbach <haro@sesam.dnv.no>
Hans Peter Verne <hpv@ulrik.uio.no>
Harald T Alvestrand <Harald.T.Alvestrand@uninett.no>
Harald Terkelsen  <Harald.Terkelsen@adm.hioslo.no>
Haavard Engum <hobbes@interlink.no>
James Youngman <JYoungman@vggas.com>
Johan S. Seland <johanss@sn.no>
John Phillips <john@linux.demon.co.uk>
Jorn Lokoy <jorn@oslonett.no>
Kenneth Tjostheim <kenneth.tjostheim@asplanviak.no>
Kjell M. Myksvoll <kjell.myksvoll@fou.telenor.no>
Kjetil T. Homme <kjetilho@math.uio.no>
Michael Meissner <meissner@cygnus.com>
N J Bailey <N.J.Bailey@leeds.ac.uk>
Nicolai Langfeldt <janl@math.uio.no>
Ove Ruben R Olsen <Ove.R.Olsen@ub.uib.no>
R. Bardarson <ronb@powernet.net>
Steinar Fremme <steinar@fremme.no>
Sverre H. Huseby <sverrehu@ifi.uio.no>
Trond Eivind Glomsrod <teg@stud.imf.unit.no>
Tommy Larsen <tommy@mix.hive.no>
Yves Bellefeuille <yan@storm.ca>