egil@kvaleberg.no
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:
dirk
PrettySecret
acme.xz
mail.acme.xz
news.acme.xz
193.212.1.0
12345678
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.
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
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.
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
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
Ogni commento, segnalazione di errore, informazioni aggiuntive e critiche di ogni tipo possono essere indirizzati a:
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.
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-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.
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
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.
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
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
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.
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:
addgroup
comp.os.linux.networking y
.
Dirk Gently's Holistic Detective Agency
acme.xz
.
sito
nel thread Path:.
Nella impostazione qui descritta, usando
newsx, questo nome non uscirà mai dal
vostro sistema, quindi potete impostare questo nome come volete a
condizione che non sia già in uso. In questo esempio useremo
roderick
.
acme.xz
al Path, e che questa è la
nostra unica fonte di news. L'esempio dato in realtà dice che
accetteremo qualsiasi cosa in arrivo, e che invieremo soltanto delle
news fresche verso acme.xz
che sono state originate nel
nostro sito. In questa configurazione semplificata, si assume che
tutti i gruppi arriveranno da una singola
fonte. /all
specifica la distribuzione, e
deve essere indicata. La lettera F
dice
che (i puntatori ai) nuovi articoli in uscita saranno raccolti in un
file.
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.
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
.
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.
newaliases
ogni volta che modificate
questo file. Un esempio che dovrebbe coprire la maggior parte delle
eventualità è:
PostMaster: root
ftp: root
news: root
usenet: root
FaxMaster: root
fax: root
WebMaster: root
MAILER.DAEMON: root
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.
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
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>