INN + UUCP HOWTO
Allora comprami un libro! :-)
Questo documento contiene le spiegazioni necessarie per configurare un news server locale usando INN e UUCP.
Prima di tutto è necessario installare INN e UUCP. Questo documento suppone che la distribuzione usata sia Debian, altrimenti ci saranno piccole differenze nei path e negli script di sistema.
Attenzione: questo documento si riferisce a INN 1.x, che è la versione più adatta a piccoli server. Se non usate Debian vi consiglio di scaricare e compilare manualmente i sorgenti del pacchetto inn, visto che contiene molti bug fix e nuove feature rispetto alla versione ufficiale, che non è più sviluppata. Si puo scaricarli da http://ftp.it.debian.org/debian/pool/main/i/inn/ (.orig.gz e .diff.gz). In alternativa è possibile usare INN 2.x, la cui configurazione però è più complessa e non sarà trattata qui.
INN
Tutti i file di configurazione di INN sono in
/etc/news/
.
Sono brevemente descritti quelli che è necessario modificare, in ogni caso
per ulteriori informazioni si possono consultare le rispettive man page.
control.ctl
control.ctl
definisce quali messaggi di
controllo devono essere onorati automaticamente. Per un server privato
probabilmente conviene ignorarli, altrimenti è possibile ricevere degli
avvisi per posta o anche gestirli automaticamente dopo averli verificati
con PGP:
all:*:*:drop #checkgroups:gcn@news.nic.it:it.*:doit=mail #newgroup:gcn@news.nic.it:it.*:mail #rmgroup:gcn@news.nic.it:it.*:mail #checkgroups:gcn@news.nic.it:it.*:verify-gcn@news.nic.it #newgroup:gcn@news.nic.it:it.*:verify-gcn@news.nic.it #rmgroup:gcn@news.nic.it:it.*:verify-gcn@news.nic.it
expire.ctl
expire.ctl
definisce le modalità con cui gli
articoli sono eliminati dallo spool. Bisogna elencare per prime le
definizioni più generali e man mano quelle più restrittive.
Per ulteriori dettagli su cosa mettere negli ultimi tre campi leggete la man page, se siete pigri invece mettete nel secondo campo il numero di giorni per cui volete conservare gli articoli e nel primo e terzo rispettivamente 1 e 30. Per esempio:
# ricorda i Message-ID degli articoli ricevuti per 14 giorni dopo che # sono stati cancellati /remember/:14 ## Default is 7 days *:A:1:7:30 it.news.annunci:A:1:45:60 # default: 45 giorni it.faq:A:1:30:60 # default: 30 giorni it.comp.os.linux*:A:1:10:30 *.test:A:1:1:1 control:A:1:30:60 control.cancel:A:1:1:1
inn.conf
inn.conf
è la configurazione di innd e inews.
Le voci importanti sono:
pathhost
: la stringa che INN inserisce nell'header Path, che deve essere globalmente univoca.server
: l'host a cui inews (il programma solitamente usato dal vostro newsreader per spedire un articolo) si collega per spedire le news con NNTP, cioè il vostro computer.organization
: il contenuto predefinito dell'header omonimo.fromhost
: il dominio predefinito dell'header From. Se il newsreader ne mette uno diverso allora inews userà questo per l'header Sender, quindi tanto vale che siano uguali.
Per esempio:
fromhost: linux.it moderatormailer: %s@moderators.isc.org pathhost: wonderland.linux.it organization: Italian Linux Society - http://www.linux.it/ server: wonderland.linux.it
moderators
moderators
indica a inews dove inviare
gli articoli per i gruppi moderati:
it.*:%s@moderators.news.nic.it italia.*:%s@moderators.news.cineca.it linux.*:%s@moderators.bofh.it *:%s@moderators.isc.org
I messaggi diretti ai moderatori sono inviati dall'utente news, quindi è indispensabile che il dominio locale esista nel DNS oppure che l'indirizzo sia riscritto dal MTA.
newsfeeds
newsfeeds
è il file più complesso, dove si
definisce in che modo gli articoli usciranno dal sistema. È composto da
voci dalla forma:
sito[/alias,alias2,alias3...]\ :pattern\ :flag,flag...:
Il primo campo contiene il nome, eventualmente abbreviato, del sito
a cui manderete le news (che sarà anche il nome del batchfile in
/var/spool/news/out.going/
ed eventualmente uno
o più alias (se diversi dal valore precedente). Questi saranno confrontati
con i siti nel Path degli articoli per evitare di reinviarli al server da
cui sono stati ricevuti. Per esempio:
tin/news.tin.it
Il secondo campo è un
pattern wildmat
(consultate wildmat(3)
per i dettagli) che descrive i
newsgroup da mandare al sito, per esempio !*,it.*,comp.*"
.
Il terzo campo contiene i flag che specificano in quale formato
scrivere il batchfile nella directory out.going
,
e nel caso di UUCP devono essere Tf,Wfb
.
Questa è una configurazione completa per inviare gli articoli a
bofh.it
usando UUCP:
ME:!*:: bofh/bofh.it\ :!*,it.*,linux.*\ :Tf,Wfb:
Bisogna sempre includere la voce per ME
, il
server locale. I vari campi sono separati dai due punti e il backslash
permette di andare a capo.
nnrp.access
nnrp.access
contiene gli host che possono
leggere le news collegandosi con NNTP. Oltre a stdin e localhost deve
contenere il vostro hostname ed eventualmente username e password per
utenti esterni:
stdin:Read Post:::* localhost:Read Post:::* wonderland.linux.it:Read Post:::* #*:Read Post:username:password:it.*
send-uucp.cf
send-uucp.cf
indica per quali siti UUCP
impacchettare articoli e come. Basta questa riga:
bofh gzip
/etc/cron.d/inn
È necessario eseguire tutti i giorni news.daily
per cancellare i vecchi articoli e periodicamente
send-uucp.pl
(che normalmente è commentato) per
impacchettare gli articoli da inviare con UUCP.
Gestione del server
In /var/lib/news/
ci sono alcuni file di dati
di INN:
history*
: elenco degli articoli presenti nello spool e il suo indice.active
: elenco dei newsgroup.newsgroups
: descrizioni dei newsgroup.
Se non si onorano automaticamente i messaggi di controllo è necessario
creare a mano i newsgroup con il comando ctlinnd(8)
:
ctlinnd newgroup it.news.annunci m ctlinnd newgroup it.comp.os.linux.sys
È necessario impostare il flag m
per it.news.annunci
perché è moderato.
I newsgroup control e junk devono esistere obbligatoriamente, ed è consigliabile creare anche control.cancel per archiviare separatamente i messaggi di cancellazione.
È importante che tutti i file in
/var/{spool,lib}/news/
siano posseduti
dall'utente news. Per sicurezza è consigliabile eseguire
su news
prima di modificarli.
Postfix
Per usare UUCP anche per inviare la posta in uscita basta impostare
qualcosa del genere in /etc/postfix/main.cf
:
default_transport = uucp relayhost = bofh # opzionalmente, se il sistema non ha normalmente connettività IP: disable_dns_lookups = yes
UUCP
UUCP si configura mediante i file in /etc/uucp/
.
Per chiamare il sistema remoto si può usare uux
seguito dal nome del sito e un punto esclamativo finale:
uux bofh!
Gli articoli saranno inviati solo se già impacchettati da
send-uucp.pl
.
config
Come prima cosa è necessario configurare il proprio nome UUCP, da concordare con il sito remoto:
nodename wonderland
sys
E quindi definire il sito con cui si comunica, sostituendo username e password:
protocol et protocol-parameter i timeout 5 protocol-parameter i packet-size 4095 protocol-parameter i remote-packet-size 4095 protocol-parameter t packet-size 4095 protocol-parameter t remote-packet-size 4095 commands /usr/sbin/rmail /usr/bin/rnews time any 1 chat-timeout 60 system bofh address attila.bofh.it port TCP call-login LOGIN call-password PASSWORD