[bglug] Il mio INN mini HOWTO
Manuel
bglug@lists.linux.it
Fri, 23 May 2003 15:54:42 +0200
This is a multi-part message in MIME format.
------=_NextPart_000_000E_01C32143.9FFA91F0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Ciao a tutti
ho messo a punto questo piccolo howto per uso e promemoria personale...
Se qualcuno ha voglia/tempo/capacita' di dargli una sistemata potrebbe
tornare utile per la (purtroppo) scarna sezione della documentazione...
Ciao a tutti
Manuel
PS se interessa ho anche preso (e modificato) un html per vedere le news
via web visibile (e' una prova!) all'indirizzo
http://relay.orobiacom.it/~manuel/news_from_web/
------=_NextPart_000_000E_01C32143.9FFA91F0
Content-Type: text/plain;
name="INN_HowTo.txt"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="INN_HowTo.txt"
Innanzi tutto alcuni link MOLTO utili
www.isc.org la 'casa' di INN
http://www.eyrie.org/~eagle/software/inn/ la seconda casa di INN =
(homepage di Russ Allbery)
www.blank.org/innfaq le faq di INN
http://web.tiscali.it/kalem/howto/Inn2+Newsx-HOWTO.sgml buona base di =
partenza (datato)
http://www.linux.it/~md/inn+suck-HOWTO.gz idem come =
sopra (datato)
http://a2.swlibero.org/a2209.html
NOTA [1]:
INN non fa tutto da solo (a meno di avere un feed diretto),=20
ha bisogno o di newsx o di suck per scaricare le news dal server news a =
cui ci si collega
NOTA [2]:
i file di configurazione stanno in /etc/news/ ma anche in /var/lib/news =
(rpm di red hat 7.2)
se installato dai sorgenti, il tutto viene invece messo in =
/usr/local/news/
NOTA [3]:
TUTTE le operazioni successive all'installazione vanno TASSATIVAMENTE =
eseguite=20
con l'utente NEWS (pena il non funzionamento di INN)
da root digitate su - news=20
NOTA[4]:
attenzione perche' i file eseguibili di INN hanno permessi strani !
ad esempio:
-r-sr-x--- 1 root news inndstart
-r-x------ 1 news news rnews
-r-sr-x--- 1 root news startinnfeed=20
se modificate i permessi di inndstart e startinnfeed il check non =
riporta alcun problema
ma INN non funzionera'.
--=3D=3D=3D in /etc/news o /usr/local/news/etc/ =3D=3D=3D--
-=3D- expire.ctl -=3D-
indica il tempo di permanenza degli articoli nello spool
le regole piu' generali vanno all'inizio, quelle piu' restrittive dopo
questo serve per fare in modo di non occupare troppo spazio su HD: i =
post dei ng piu'
affollati vengono eliminati prima
la sintassi e' del tipo:
<nome ng>:A:x:y:z
come nome di ng si puo' anche usare la wildcard *
x e y si possono fissare rispettivamente a 1 e 30 (leggere la manpage x =
saperne di +)
z indica il numero di giorni per cui conservare gli articoli (spesso =
settato a never)
io ho:
*:A:1:30:never=20
si utilizza il carattere A quando in inn.conf si setta groupbaseexpiry a =
true
altrimenti la sintassi diviene:
0:1:30:never
la stringa
/remember/:7 ricorda gli articoli per ancora 7 giorni dopo che sono =
stati cancellati
-=3D- hosts.nntp -=3D-=20
e' il server da cui leggete le news (deve essere FQDN):
miohost.miodominio:
localhost:
Attenzione: le versioni recenti di INN non utilizzano piu' questo file.
-=3D- inn.conf -=3D-=20
le cose importanti sono queste:
fromhost: miohost.miodominio
pathhost: miohost
organization: <quel che si vuole>
server: miohost.miodominio
moderatormailer: %s@moderators.isc.org
-=3D- readers.conf -=3D-=20
e' il file che gestisce le politiche di accesso ai newsgroup locali
auth "nome-policy" {
hosts: "nome_del_computer, localhost, 127.0.0.1, stdin, =
ip_della_tua_rete/subnet_mask"
# hosts: "*"
default: "<nome_del_computer>"
}
access "nome-policy" {
users: "<nome_del_computer>"
newsgroups: "it.*"
access: RPA
}
qualche commento:
nome-policy e' arbitrario (nome descrittivo per legare le direttive auth =
e access)
hosts "*" significa che al server news possono accedere tutti, =
altrimenti specifichi chi puo'
accedere. (come ho fatto io)
nome_del_computer deve essere quello contenuto nel file hosts (che deve =
corrispondere all'output del
comando $hostname)
newsgroups: "it.*" indica a quali newsgroups possono accedere i pc che =
rientrano nella policy
occore ricordarsi di non mostrare i newsgroups di controllo, e dare un =
commento a quelli che creano
in locale (se vengono creati)
questo file sostituisce il nnrp.access usato in versioni precedenti
-=3D- newsfeeds -=3D-=20
serve per sapere da chi accettare il feed.
se si utilizza INN come utente finale (non avendo il feed dal provider)
immagino che la configurazione sia la seguente:
ME:*,!junk,!control*,!local*::
ME e' in INN l'equivalente di localhost
quindi accetta TUTTO (*) da se stesso TRANNE (!) i gruppi di controllo
io ho escluso anche i NG locali, immaginando che non debba scaricarli da =
se stesso..
funziona... probabilmente va anche con un semplice
ME:*::
il formato e'=20
sito:inclusi/esclusi:pattern:flag:parametri
se si utilizza il feed diretto:
<nick-provider>:!junk,!control,!test,!local*:Tm:innfeed!
innfeed!:!*:Tc,Wnm*:/usr/local/news/bin/startinnfeed
-=3D- moderators -=3D-=20
e' gia' in parte compilato...
occorre aggiungere la riga
it.*:%s@moderators.news.nic.it
per i gruppi moderati della gerarchia it.*
-=3D- storage.conf -=3D-=20
In questo file si imposta il metodo di archiviazione degli articoli.=20
io utilizzo il metodo timecaf (abbastanza semplice ma efficiente)
method timecaf {
newsgroups: *
class: 1
size: 0,1000000
}
Per utilizzare invece il metodo di archiviazione CNFS bisogna indicare
il nome del meta-buffer da usare tramite la voce options:
method cnfs {
newsgroups: *
class: 2
size: 0,1000000
options: NOME
}
NOME =E8 il nome del meta-buffer, specificato nel file cycbuff.conf.=20
class deve indentificare in maniera univoca il gruppo, quindi va =
adattato di conseguenza.
Ovviamente si possono suddividere i newsgroups su vari buffer in modo =
che quelli a traffico elevato
non sovrascrivano quelli con meno traffico. =C8 anche possibile =
utilizzare una soluzione ibrida,
mescolado i vari tipi di memorizzazione dei messaggi.
Se si suddividono i newsgroups su vari buffer, o se si utilizzano =
diversi metodi di archiviazione, =E8
consigliabile lasciare alla fine del fine queste linee:
method timecaf {
newsgroups: *
class: 3
}
Questo assicura che vengano memorizzati anche gruppi che sono stati =
tralasciati oppure che sono
appena stati aggiunti.
-=3D- incoming.conf -=3D-=20
regola da quali server accettare i post.=20
e' collegato a newsfeeds, in cui dichiaravo da chi accettare il feed
e in cui specificavo quali gruppi scaricare dal <nick-provider>
e' diverso dal readers.conf perche' li mi riferisco agli utenti finali,
qui siamo a livello di colloquio tra NEWS-SERVERS
streaming: true # streaming allowed by default
max-connections: 8 # per feed
peer ME {
hostname: "localhost, 127.0.0.1, <nomehost.nomedominio>, =
<IP_della_macchina>"
}
peer <nick-provider> {
hostname: "<FQDN-news-server (oppure anche l'IP)>"
}
in peer ME e' meglio specificare anche il FQDN della macchina =
(<nomehost.nomedominio>)=20
l'IP e' facoltativo...
=3D=3D=3D in /var/lib/news oppure /usr/local/news/db =3D=3D=3D
-=3D- newsgroups -=3D-=20
contiene la descrizione dei ng che verranno mostrate dai newsreader=20
(occorre settarle a mano, non conosco altro metodo)
ad esempio io ho:
control Various control messages (no posting).
control.cancel Cancel messages (no posting).
control.checkgroups Hierarchy check control messages (no posting).
control.newgroup Newsgroup creation control messages (no =
posting).
control.rmgroup Newsgroup removal control messages (no posting).
junk Unfiled articles (no posting).
it.test Test
it.test.moderato Test moderazione
it.sport.calcio.inter Il NG dell'inter (moderato)
local.test Test locali
it.comp.os.linux.iniziare Per i newbie di linux
it.comp.os.linux.software discussioni sul software per linux
it.comp.os.linux.sys i sistemisti di linux
=3D=3D=3D=3D creazione dei NG =3D=3D=3D=3D
i NG che si vorranno scaricare vanno creati a mano (dall'utente NEWS) =
con il comando ctlinnd
$ ctlinnd newgroup it.comp.os.linux.iniziare
$ ctlinnd newgroup it.comp.os.linux.annunci m
(m perche' icola e' moderato)
il sistema risponde con un OK
se non sono stati creati in fase di setup, occorre creare anche tutti i =
NG di controllo=20
per eliminare i gruppi:
$ctlinnd rmgroup it.comp.os.linux.iniziare
per altre info:=20
$ctlinnd -h
=3D=3D=3D=3D script quotidiano =3D=3D=3D=3D
ogni giorno occorre lanciare lo script news.daily con i diritti =
dell'utente news
io ho fatto cosi' e funziona:
in /etc/cron.daily ho creato il file news.daily.crontab che contiene:
#!/bin/sh
su news -c "/usr/local/news/bin/news.daily"
non e' il massimo della linearita' (un crontab specifico per l'utente =
news e' meglio)
ma cosi' sono sicuro che funziona
=3D=3D=3D=3D controllo di tutto =3D=3D=3D=3D
i comandi sono testati su rh 7.2, spero siano ok anche x le altre.
tramite utente NEWS:
$inncheck
$inncheck -pedantic
$inncheck -perms
e si sistema quel che non va.
attenzione che potrebbe dare cose assurde, tipo che usr/lib e usr/bin=20
devono essere dell'utente news, oppure compare la scritta
/usr/local/news/etc/newsfeeds:0: warning you accept all incoming article =
distributions
non preoccupatevi...
poi:
$makehistory
$makedbz -io
avviare il servizio innd e dare una lettura a quel che c'e' in =
/var/log/news
#service innd start
oppure=20
$inndstart
attenzione a non cancellare *mai* il contenuto dei file in /var/log/news =
perche' altrimenti non
logga piu' nulla fino al reboot della macchina
[manuel@relay manuel]$ telnet localhost 119
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
200 <FQDN> InterNetNews server INN 2.3.4 ready
se tutto e' ok inn funziona, ora non rimane che settare newsx o suck =
secondo gli howto che ho
indicato. io non l'ho mai fatto (non mi e' mai servito fino ad ora), i =
programmi si equivalgono.
------=_NextPart_000_000E_01C32143.9FFA91F0--