Leafnode si occupa di ricevere e inviare i post da e verso i newsgroup Usenet. E' in genere adatto, data la sua semplicità, per computer singoli o comunque piccole reti. Se necessitate di creare newsgroup locali per la vostra LAN, o avete bisogno di maggior potenza e opzioni, rivolgetevi a INN, di cui potete trovare un'ampia trattazione nell'Howto scritto da Filippo Panessa - aka Kalem ( http://web.tiscalinet.it/kalem). Non potete usare contemporaneamente due demoni che cercano di controllare la stessa porta, quindi nel caso abbiate INN o altri newsserver, commentate la riga apposita all'interno di /etc/inetd.conf e riavviate. Per configurarlo, dopo averlo installato, modificate il file /etc/leafnode/config come segue (è proprio il minimo indispensabile, ci sono molte più opzioni, direttamente commentate nel file). Ricordate che /etc/leafnode/ e il suo contenuto devono appartenere all'utente e gruppo news, quindi date da una console, loggati come root:
chown -R news.news /etc/leafnode/
Ricordate inoltre che alcune vecchie distribuzioni di leafnode non erano compatibili con l' anno 2000, quindi usatene una versione > 1.9.4. Segue il file config di esempio:
=== file: /etc/leafnode/config === ## inserisci qui il tuo server news - OBBLIGATORIO server = news.libero.it ## I thread vengono cancellati dopo il numero di giorni seguente, ## se non definito diversamente con groupexpire - OBBLIGATORIO ## man leafnode per informazioni su groupexpire expire = 60 ## Numero massimo di messaggi da scaricare per volta. Sconsigliato ## sia impostarlo al di sotto di 1000 che al disopra di 2000 maxfetch = 2000 ## per scaricare solo gli header dei messaggi e in seguito solo i body ## marcati per il download, impostare delaybody ad 1 delaybody = 0 ## impedisce di scaricare articoli più grandi di 50000 bytes maxbytes = 50000 ## impedisce di scaricare articoli più lunghi di 1000 righe maxlines = 1000 ## massimo numero di giorni in cui sarà scaricato un newsgroup che non ## viene letto, prima di annullare la sottoscrizione in automatico timeout_long = 7 ## minimo numero di giorni in cui sarà scaricato un newsgroup che forse si è sottoscritto ## per errore e non viene letto, prima di annullare la sottoscrizione in automatico timeout_short = 2 ## attiva l'invio di messaggi di debug al syslog, per evidenziare malfunzionamenti debugmode = 1 ## evita che vengano sottoscritti in automatico newsgroup non desiderati ## in caso di crosspost verso di essi create_all_links = 0 ## file contenente i filtri per i messaggi da NON scaricare (leggete alla fine della pagina ## per altre informazioni e nel caso togliete il carattere # all'inizio della riga seguente) # filterfile = /etc/leafnode/filterfile
Controllate che in /etc/inetd.conf sia presente una riga come la seguente, NON commentata da #:
nntp stream tcp nowait news /usr/sbin/tcpd /usr/sbin/leafnode
Nel caso non esista, aggiungetela. Date da root: killall -HUP inetd per riavviare il demone inet e provate a fare: telnet localhost 119 per vedere se leafnode vi risponde (dovreste ottenere qualcosa come: 200 Leafnode NNTP Daemon, version 1.9.13 running at localhost.localdomain). Per scaricare le news, dovete lanciare il comando: fetchnews da utente root o news (badate che spesso l'utente news viene creato ma non gli viene assegnata una password, quindi non può loggarsi; nel caso da root date: passwd news e assegnategliene una). Se non volete loggarvi come root o news (presuppongo che fetchnews sia in /usr/sbin, se "which fetchnews" vi da un path diverso sostituitelo dove necessario), date i seguenti comandi da root :
chown root.news /usr/sbin/fetchnews chmod a+s /usr/sbin/fetchnews ln -s /usr/sbin/fetchnews /usr/bin/fetchnews
e poi modificate /etc/group in modo che nell'ultimo campo appaia il vostro nome utente:
prima: news:x:13:news
dopo: news:x:13:news,vostronomeutente (il numero può cambiare, e la x potrebbe essere assente nel caso non utilizziate le shadow password o potrebbe essere qualcosa di ingarbugliato nel caso il gruppo abbia una password, sempre non shadow). La prima volta che lancerete fetchnews verranno scaricati tutti i nomi dei gruppi presenti sul server remoto. Dopo questa fase, entrate nel vostro newsreader preferito e scorrendo la lista dei newsgroup marcate quelli che volete frequentare, entrando nel newsgroup scelto e LEGGENDO il placeholder di leafnode (questo dovrebbe creare i file: /var/spool/news/interesting.groups/nome.del.gruppo.scelto di lunghezza 0: controllate e se ciò non avviene createli voi con: touch /var/spool/news/interesting.groups/nome.del.gruppo.scelto, ripetendo per ognuno dei gruppi scelti). Al successivo lancio di fetchnews verranno scaricati gli header e gli articoli (in base all'impostazione di delaybody nel file /etc/leafnode/config) dei gruppi sottoscritti. Per leggerli, impostate il vostro newsreader su server: localhost e porta 119. Riguardo a quale newsreader scegliere, io vi consiglio slrn per console (la configurazione è nelle ultime pagine di questo Howto): ci sono varie scuole di pensiero a seconda che vogliate un programma da console o da gui. Tra i migliori per console ci sono slrn e tin, tra quelli per gui i più promettenti sembrano pan e knode (notate che ho scritto "promettenti", non migliori, in quanto ancora buggatelli anzichenò), oltre al veterano knews (che non c'entra niente con il KDE, il cui newsreader krn è bene che evitiate come LA PESTE, a meno che vi piaccia tanto Windows da volerne emulare i crash sotto Linux! ;-) ). Possibili opzioni utili di fetchnews sono:
Per cancellare i vecchi post che hanno superato il tempo di expire, data da root o news: texpire, magari forzandolo con l'opzione -f.
Con leafnode potete anche impostare dei filtri per evitare di scaricare del tutto degli articoli che non vi interessano. Quello che segue è un esempio di killfile creato da Davide Alberani (un grazie 1000 a lui!), e per attivarlo modificatelo e copiatelo nel file /etc/leafnode/filterfile e decommentate la riga apposita in /etc/leafnode/config (per una spiegazione della sintassi delle espressioni regolari presenti, fate riferimento alla sezione apposita nella pagina di Procmail):
# # File di filtro per leafnode di Davide Alberani # # Aggiornato al 17 settembre 2000 # # Leafnode puo` essere scaricato da: # http://www.leafnode.org # # Formato principalmente durante la frequentazione dei gruppi: # it.comp.os.linux.* # it.cultura.ateismo # it.comp.os.dibattiti # it.comp.sicurezza.varie # it.news.gruppi # it.arti.cinema # # Nota: # probabilmente vi conviene cancellare o commentare alcune righe # nella sezione Subject, a seconda di quali sono i vostri interessi. # Per quanto riguarda le entry nella sezione From, NON rompete le # gonadi: c'e` finito chi - a mio insindacabile giudizio - ha rotto # troppo le scatole, e` troppo stupido per perdere tempo a leggero # o semplicemente si e` fatto trascinare troppe volte in discussioni # con cerebrolesi. # # Killare un dato subject solo in un dato newsgroup: # Ne avevo discusso tempo fa con non-ricordo-chi; a quanto mi ricordo, # dall'ultima volta che ho controllato i sorgenti, leafnode passa le # varie linee dell'header separatamente alla funzione che ne controlla # aventuali match, quindi non sarebbe possibile farlo. # Era saltato fuori che qualcosa tipo: # (?-im)Newsgroups:.*IL.NEWSGROUP\nSubject: IL SUBJECT.*\n # # Io ci credo pochissimo, se provate qualcosa di simile e funziona, # fatemi sapere. # # More info: # Se volete maggiori informazioni sulle regular expression, leggetevi # man 7 pcre # man 7 regex # man 1 egrep # # Enjoy. # ########### # Subject # ########### # killa *tutti* i subject completamente maiuscoli (a parte l'eventuale Re:) # togliere il commento (#) se si vuole attivare questa regola #^Subject: (Re: |R: )*[^a-z]*$ (?im)^Subject:.*sb[ -]*64 (?im)^Subject:.*winlinux (?im)^Subject:.*emacs (?im)^Subject:.*system\.map (?im)^Subject:.*iomega (?im)^Subject:.*fetchmail (?im)^Subject:.*sb pci (?im)^Subject:.*toshiba (?im)^Subject:.*vmware (?im)^Subject:.*banshee (?im)^Subject:.*isdn (?im)^Subject:.*slrn (?im)^Subject:.*adaptec (?im)^Subject:.*star.*office (?im)^Subject:.*sb.*live (?im)^Subject:.*blaster.*live (?im)^Subject:.*suse (?im)^Subject:.*red[ -]*hat (?im)^Subject:.*caldera (?im)^Subject:.*mandrake (?im)^Subject:.*tnt2 (?im)^Subject:.*trio.*3d (?im)^Subject:.*3dfx (?im)^Subject:.*samba (?im)^Subject:.*kppp (?im)^Subject:.*voo?doo? (?im)^Subject:.*rh ?[56] (?im)^Subject:.*nvidia (?im)^Subject:.*i740 (?im)^Subject:.*virge (?im)^Subject:.*matrox (?im)^Subject:.*x11amp (?im)^Subject:.*mp3 (?im)^Subject:.*yamaha (?im)^Subject:.*slac?kware (?im)^Subject:.*sound ?blaster #################### # Subject generici # #################### (?im)^Subject:.*non legge[rt]e (?im)^Subject: aiuto+ *[\?\!]*$ (?im)^Subject: he+l+p+ *[\?\!]*$ (?im)^Subject: prov[ae] *[\?\!]*$ (?im)^Subject: problem[ai] *[\?\!]*$ (?im)^Subject: test *[\?\!]*$ (?im)^Subject: domand[ae] *[\?\!]*$ (?im)^Subject:.*\$\$.*\!\!\!\! ^Subject:.*\[FAQ\] RISPOSTE ALLE DOMANDE PIU\` FREQUENTI.* ^Subject: REGOLE BASE DI it\.comp\.os\.linux\.iniziare.* ^Subject: REGOLE BASE DI \"it\.comp\.os\.linux\.iniziare\" ^From: From: autoposter <autoposter@autoposter.invalid> ^From: gz@indirizzo.non.valido.it \(AUTOPOSTER-AMF\) ^Subject:.*benvenuto su Usenet\! (?im)^Subject:.*FAQ: Le mailing list italiane (?im)^Subject:.*RFD, CFV e it\.news\.gruppi (?im)^Subject:.*Usenet e news - dove saperne di piu\` (?im)^Subject:.*Istruzioni per la creazione di gruppi della gerarchia it (?im)^Subject:.*\[HOWTO\] COME PORRE DOMANDE IN QUESTO GRUPPO (?im)^Subject: Funzionamento delle news: il crosspost e\` Male (?im)^Subject: I gruppi Usenet it\.\* - istruzioni per l\'uso (?im)^Subject: Quali sono i gruppi della gerarchia it\.\* \? ######## # From # ######## ^From:.*errebi@fiscalinet.it ^From:.*a.sevi@katamail.com ^From:.*kingz@tiscalinet.it ^From:.*nkoffr@tin.it ^From:.*giovannad\'arco@tiscalinet.it ^From:.*gaucie@tin.it ^From:.*borisnospam@hotmail.com.com ^From:.*io@io.it ^From:.*junfan ^From:.*ziocan@fica.it ^From:.*ciberneta@libero.it ^From:.*junfan77@libero.it ^From:.*maandateacagher@dicorsa.gulp ^From:.*madQ ^From:.*XPDCVwtw ^From:.*Club.italia.milano@iol.it ^From:.*geremia@mclink.it ^From:.*info@aroundstore.com ^From:.*woody_hesse@iol.it ^From:.*a_capelli@hotmail.com ^From:.*aes-mail@freenet.hut.fi ^From:.*tommygun.*@freemail.it ^From:.*grog@tin.it ^From:.*jacline@dueffe.it ^From:.*urihel@mmp2.iol.it ^From:.*acia@tin.it ^From:.*alexievi?c?@tin.it ^From:.*liberal73@iname.com ^From:.*tznt0078@pt.tizeta.it ^From:.*paolocl@netmail.com ^From:.*fedrox@libero.it ^From:.*fdonline@iname.com ^From:.*maga@provincia.ps.it ^From:.*inaj@freemail.it ^From:.*hot@warm.bo ^From:.*npole@_REMOVE_bigfoot.com ^From:.*VSİ ^From:.*glm@biogate.com ^From:.*hastaluego99@.*hotmail.com ^From:.*bluesedelica@iol.it ^From:.*cbu_ut@hotmail.com ^From:.*massj@BUDDAflashmail.com ^From:.*new@life.now ^From:.*debian@matsumanga.co.jp ^From:.*as.ps@flashnet.it ^From:.*C_Zambo@iol.it ^From:.*club.italia.milano@iol.it ^From:.*juretto@tin.it ^From:.*gattoone@hotmail.com ^From:.*mariafrf@tin.it ^From:.*tamarica@tin.it ^From:.*nathing@tin.it ^From:.*andreap@instation.it ^From:.*stephendedalus1@yahoo.com ^From:.*dpmarc@tin.it ^From:.*torque_@hotmail.com ^From:.*giulio_bottini@bigfoot.com ^From:.*FOX99@mail.asianet.it ^From:.*mpolve@tin.it ^From:.*nino@affaritaliani.it ^From:.*alxcost@tin.it ^From:.*eghiani@etruria.net ^From:.*microgest@microgest.it ^From:.*aiax@excite.com ^From:.*tipfkam.*@hotmail.com ^From:.*fuoripista@altavista.net ^From:.*fuoripista@yahoo.it ^From:.*fogazzid@bigfoot.com ^From:.*jodyrm@hotmail.com ^From:.*menthos@posta.alinet.it ^From:.*hongkongmail@iname.com ^From:.*f.varoli@antilink.prolink.replica.it ^From:.*stamink@armando.com ^From:.*taexpo.*@idirect.ca ^From:.*vendicator@hell.com ^From:.*S&F@tin.it ^From:.*rick.sabbadini@iol.it ^From:.*fogazzid@usa.net ^From:.*maxadamo@tin.it ^From:.*lustfemale ^From:.*bamoo*@sexmagnet.com ^From:.*condon@hotpop.com ^From:.*wiwaxia@bigfoot.com ^From:.*robcn@ibm.net ^From:.*alessandro.villetti@usa.net # Pirotti. Un uomo, un mito. ^From:.*pirotti@ngweb.it ^From:.*pr[ou]sper.*@.*ctonline.it ^From:.*pirotti@tiscalinet.it ^From:.*prpiro@tin.it ^From:.*prosperopirotti@tin.it ^From:.*crpraolini@.*libero.it ^From:.*jojo@arcanet.it ^From:.*pxqpas@tin.it ^From:.*roxana@flashnet.it ^From:.*nstdvd@nospamtin.it ^From:.*blisset@i.am ^From:.*mat66@arc.it ^From:.*pod@pineto.net ^From:.*nicola@netstation.org ^From:.*rcaudan@whitepower.com ^From:.*nsj@iname.com # Gianfranco Bruno. Cerca di insidiare i record del Pirotti. ^From:.*gbruno@webaq.it ^From:.*vicolo_connery@yahoo.com ^From:.*supergiaf@libero.it ^From:.*supergiaf@tiscalinet.it ^From:.*Pietro_Buttiglione@insieme.net ^From:.*spiritologia@iol.it ^From:.*spiritologia@supereva.it ^From:.*whole.lotta@lo.ve ^From:.*w6130370@inwind.it ^From:.*saccoforino@yahoo.com ^From:.*chief@etruria.net ^From:.*mlagatt@tin.it ^From:.*thats.the.way@do.it ^From:.*shermin93@hotmail.com ^From:.*ad549379@silab.dsi.unimi.it ^From:.*auro.zac@tiscalinet.it ^From:.*picardismy@life.sbam ^From:.*trekkers@forever.slump
That's all folks!
(Sottosezione a cura di Giambo)
Leafnode+ deriva da Leafnode v1.4. La differenza più interessante rispetto al suo "predecessore" è forse la velocità nello scaricare gli articoli di ogni NG: Lo scaricamento avviene in maniera "asincrona", non aspettando cioè una risposta per ogni richiesta prima di procedere con la prossima, bensì spedendo più richieste ed eventualmente riformulando quelle che non hanno ricevuto una risposta. Risulta inoltre più veloce nel fornire i suoi servizi una volta contattato. Manca purtroppo dell'opzione "delaybody" che permette di scaricare in un secondo tempo il corpo di un messaggio del quale si è letto il titolo: l'autore promette di implementare questa possibilità se le richieste saranno numerose. Manca inoltre il filterfile, quindi bisogna scaricare tutti i post per ogni newsgroup sottoscritto. Personalmente non ne sento la mancanza, anzi, per dirla tutta, non credo che sia giusto che un'amministratore si arroghi il diritto di filtrare i messaggi che a lui non vanno a genio prevalicando così i suoi utenti; questi ultimi possono utilizzare le possibilità di filtraggio offerte dai loro newsreader. Dall'altro lato c'è da dire che per una LinuxBox configurata per un solo utente, l'utilizzo di un filtro può portare ad un buon risparmio sulla bolletta telefonica, risparmio però facilmente uguagliabile dalla maggiore velocità di leafnode+ nello scaricare i messaggi rispetto al suo predecessore. Come si può notare, ci sono tutti gli elementi per innescare una "guerra santa", o per spingere qualche volenteroso a iplementare il filtraggio utilizzando i sorgenti di leafnode: Magari potra' nascere una nuova creatura, leafnode++ :-)
In linea di massima leafnode+ assomiglia al suo predecessore, vi rimando al capitolo su leafnode per quel che concerne la creazione degli utenti, l'uso
di fetchnews e texpire. La differenza principale è che il file di configurazione non si trova in /etc/leafnode, bensì in /usr/lib/leafnode. Se si compila partendo dai sorgenti, si può modificare nel Makefile la voce "LIBDIR" per piazzare i files di configurazione in /etc/leafnode (Il che sarebbe, IMHO, più "ordinato"). ATTENZIONE ! Se si compila partendo dai sorgenti, di default l'installazione crea un file in questa directory con il nome "config.example": Sarà necessario quindi copiare il file con il nome corretto, cioè "config", facendo attenzione ai diritti di lettura/scrittura sia del file che della directory che lo contiene (in questa directory verrà scritto pure il groupinfo !). Il file di configurazione è analogo a quello di Leafnode.
[BUGS]
C'e' un curioso BUG con la versione 2.10: La prima volta che viene dato un "make installall" compare la scritta:
"make: libutil.a: Command not found"
Ridando il comando "make installall" il tutto viene compilato e installato correttamente.