Tässä dokumentissa kerrotaan miten Leafnode-nyyssipalvelin asennetaan ja mitä hyötyä siitä on.
Ohje on kirjoitettu ensisijaisesti Red Hat Linuxiin perustuville käyttöjärjestelmäjakeluille, mutta sitä voi soveltaa myös muihin jakeluihin, kuten Debianiin.
Internet-palveluntarjoajien nyyssipalvelimet ovat joskus epäluotettavia. Ne voivat kadottaa artikkeleita, joskus ne ovat hitaita tai eivät toimi ollenkaan. Lisäksi kaikilla palvelimilla ei ole kaikkia ryhmiä.
Ongelman voi ratkaista ottamalla käyttöön oma nyyssipalvelin. Oma nyyssipalvelin voi lukea nyyssit ja lähettää artikkelit usean eri palvelimen kautta. Näin yhden palvelimen ongelmat eivät haittaa artikkelien lukemista tai kirjoittamista. Paikallisella koneella oleva nyyssipalvelin on yleensä myös nopeampi käyttää kuin Internet-palveluntarjoajan ruuhkainen palvelin.
Oma nyyssipalvelin on myös hyödyllinen, jos Internet-yhteys ei ole jatkuvasti päällä tai jos yhteysaika on kallista, kuten modeemikäyttäjillä. Nyyssipalvelin voi imaista artikkelit Internet-palveluntarjoajan palvelimelta, minkä jälkeen yhteyden voi sulkea. Palvelin myös säilyttää kirjoitettuja artikkeleja, kunnes yhteys avataan toistamiseen, jolloin artikkelit välitetään edelleen palveluntarjoajalle.
Omaa nyyssipalvelinta käytettäessä upstream-palvelimen vaihtaminen on helppoa: se onnistuu helposti muuttamalla konfiguraatiotiedoston palvelinmäärittelyjä.
Olen tehnyt Leafnodesta valmin RPM-paketin, jonka pitäisi asentua
Red Hat Linuxin 9-versioille
komennolla
rpm -ivh leafnode-1.9.43-0.fdr.1.rh90.i386.rpm
tai joissakin työpöytäympäristöissä yksinkertaisemmin klikkaamalla
RPM-tiedostoon osoittavaa linkkiä. RPM-paketti on käännetty Fedora-projektin
SRPM-tiedostosta; nykyään paketista on olemassa jo uudempikin
versio.
Huom.: Alla olevat ohjeet koskevat tekemiäni vanhempia RPM-paketteja. Fedoran paketissa esimerkiksi cron-skriptit ovat erilaisia.
Jos käyttöjärjestelmäsi ei tue RPM-pakettiformaattia, voi Leafnoden kääntää lähdekoodista ja asentaa se lähdekoodipaketista löytyvien ohjeiden mukaan. Leafnode sisältyy joihinkin käyttöjärjestelmäjakeluihin, esimerkiksi Debianiin.
Leafnoden konfigurointi on helppoa. Tee tiedosto
/etc/leafnode/config
, jonka sisältö on seuraava:
server = nyytiset.pp.htv.fi
server = news.saunalahti.fi
# server = news.cis.dfn.de
# username = xxxxxxxx
# password = yyyyyyyy
expire = 20
maxbytes = 50000
Konfiguraatiotiedostossa kaikki risuaidalla (#) alkavat rivit ovat kommentteja.
Korvaa nyytiset.pp.htv.fi
ja
news.saunalahti.fi
niiden uutispalvelimien nimillä,
joihin sinulla on käyttöoikeus. Näitä uutispalvelimia voi olla yksi
tai useampia.
Jos joku uutispalvelimista vaatii käyttäjätunnuksen ja
salasanan, niin ne voi antaa edellä kuvatulla tavalla. Yleensä
käyttäjätunnusta ja salasanaa ei tarvita. Esimerkissä mainittu news.cis.dfn.de
on
saksalainen ilmaispalvelin, johon saa käyttäjätunnuksen ja
salasanan pyytämällä.
Oletusasennuksessa Leafnodea, kuten useita muitakin palvelinprosesseja, voi käyttää kotikoneen lisäksi muualta Internetistä. On tärkeää, että Leafnoden käyttö estetään muualta kuin omalta koneeltasi ja mahdollisesti paikallisverkostasi.
Käyttörajoitukset saa Red Hatissa helpoiten päälle luomalla
/etc/hosts.deny
-tiedoston, jonka sisältö on:
ALL: ALL
ja /etc/hosts.allow
-tiedosto, jonka sisältö on:
ALL: 127.0.0.1
Näiden tiedostojen käytöstä kerrotaan tarkemmin Helsingin
yliopiston Linux-turvasivuilla ja järjestelmän manuaalisivuilla
(ks. man hosts.deny
ja
man hosts.allow
).
Lisää Leafnode inetd:n tai xinetd:n jakamiin palveluihin. Red
Hatissa tämä onnistuu helpoiten komennolla:
/sbin/chkconfig leafnode on
Kun konfiguraatiotiedosto on valmis ja Leafnode on lisätty
suoritettaviin palveluihin, aja fetchnews
komennolla:
su - news -c '/usr/sbin/fetchnews -vvv'
Ensimmäinen ajo voi kestää pitkään. Leafnode käyttää
fetchnews-ohjelmaa artikkelien lähettämiseen ja niiden
hakemiseen.
Konfiguroi nyyssiohjelmasi käyttämään konetta, johon asensit
Leafnoden, nyyssipalvelimena. Jos asensit Leafnoden paikalliseen
koneeseen, voi uutispalvelimen osoitteeksi siis antaa
127.0.0.1
. Tilaa kaikki haluamasi ryhmät ja lue niissä
olevat placeholder-artikkelit. Kun fetchnews
ajetaan
seuraavan kerran, hakee Leafnode näissä ryhmissä olevat
artikkelit.
Verkkoyhteyden aukaisevan skriptin voi laittaa suorittamaan
fetchnews aina verkkoyhteyden aukaisun jälkeen. Red Hatissa tämän
voi tehdä luomalla tiedoston /sbin/ifup-local
, jonka
sisältö on:
#!/bin/sh
su - news -c /usr/sbin/fetchnews &
Skriptille pitää antaa suoritusoikeudet
(chmod a+rx /sbin/ifup-local
).
Tekemäni RPM-paketti asentaa seuraavat automaattisesti. Jos et asenna Leafnodea RPM-paketista, niin alla olevat toiminnot voi joutua asentamaan itse.
Leafnode lähettää ja hakee artikkelit fetchnews-ohjelmalla.
Fetchnews ajetaan automaattisesti kerran tunnissa. Hakemistossa
/etc/cron.hourly
on skripti, joka suorittaa komennon
su - news -c /usr/sbin/fetchnews
.
texpire
-komento ajetaan kerran päivässä.
Hakemistossa /etc/cron.daily
on skripti, joka
suorittaa komennon
su - news -c /usr/sbin/texpire
.
Leafnode käyttää inetd:tä tai Red Hatissa xinetd:tä NNTP-portin
kuuntelemiseen. RPM-paketti asentaa xinetd-konfiguraatiotiedoston
/etc/xinetd.d/leafnode
automaattisesti. Leafnoden saa
Red Hat Linuxissa päälle tai pois päältä komennolla
/sbin/chkconfig leafnode on
tai
/sbin/chkconfig leafnode off
.
Leafnodea voi halutessaan viritellä enemmänkin:
Jos nyyssiohjelmasi ei tee message-id-kenttää, niin Leafnode luo
sen itse. Leafnode käyttää host-osuutena koneen nimeä, joka saadaan
hostname
-komennolla. Joskus on kuitenkin toivottavaa,
että message-id:n host-osuutena ei käytetä paikallista hostnamea,
vaan esimerkiksi verkkoliittymään liittyvää nimeä.
Leafnoden luoman message-id:n host-osuuden voi määritellä
konfiguraatiotiedostossa /etc/leafnode/config
määreellä:
hostname = koneen.nimi.tahan.example
Oletusarvoisesti Leafnode käyttää hostname-komennolla saatavaa
koneen nimeä.
Jos halutaan, että Leafnode antaa host-osuudeksi esimerkiksi
DHCP:llä konfiguroituun verkkoliittymään liittyvän nimen, voi sen
toteuttaa luomalla uuden hostnamen sisältävän
konfiguraatiotiedoston aina verkkoyhteyttä käynnistettäessä. Tämä
onnistuu esimerkiksi leafnodehostname
-skriptillä
/sbin/ifup-local
-tiedostossa:
#!/bin/sh
/usr/local/bin/leafnodehostname
su - news -c /usr/sbin/fetchnews &
leafnodehostname
-skriptiä käytettäessä Leafnoden
konfiguraatiotiedosto (ilman hostname-määrettä) on talletettava
tiedostoon /etc/leafnode/config.real
, josta
leafnodehostname
luo tiedoston
/etc/leafnode/config
lisäämällä tiedoston loppuun
hostname-määreen.
Leafnode lähettää ja hakee artikkelit fetchnews-ohjelmalla. Lähetetty artikkeli näkyy Leafnode-palvelimella vasta fetchnews-ohjelman ajamisen jälkeen. Fetchnews-ohjelma ajetaan RPM-paketin asentamassa konfiguraatiossa kerran tunnissa. Fetcnews voi olla järkevä ajaa pian artikkelin postaamisen jälkeen.
Tämä onnistuu helposti lisäämällä rootin crontab-tiedostoon seuraavan komennon, joka ajetaan joka viides minuutti:
*/5 * * * * su - news -c '[ "`ls /var/spool/news/out.going`" ] && /usr/sbin/fetchnews'
Komento ajaa fetchnews-ohjelman, jos nyyssijonossa on
lähettämättömiä artikkeleita. Crontab-tiedostoa voi editoida
komennolla: crontab -e
(lisätietoja komennoilla
man 1 crontab
ja
man 5 crontab
)
Pääosin edellä kerrottu ohje sopii myös Debianin käyttäjille. Oleellisimmat erot ovat Leafnoden asentamisessa ja konfiguraatiotiedoston sijainnissa.
Debianissa Leafnoden voi helpoimmin asentaa käskyllä:
apt-get install leafnode
Konfiguraatiotiedosto taas on Debianissa
/etc/news/leafnode/config
.
Lisäksi Debianissa on mahdollista määritellä erikseen ne ryhmät,
joita leafnode tilaa aina, riippumatta siitä luetaanko niitä. Voit
kirjoittaa listan haluamistasi aina tilattavista ryhmistä
tiedostoon /etc/news/leafnode/touch_groups
.
Debian-ohje perustuu Samuli Suonpään nyyssiartikkeliin.
$Id: leafnode.html,v 1.9 2004/02/28 11:53:48 kaip Exp $
http://www.iki.fi/kaip/leafnode.html
Kai Puolamäki (Kai.Puolamaki@iki.fi)
This work
is dedicated to the Public
Domain.