Oma nyyssipalvelin

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.

Sisällys

Miksi oma nyyssipalvelin?

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ä.

Asentaminen

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ä.

Tietoturva

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).

Leafnoden käyttöönotto

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).

RPM-paketin automaattisesti asentamat toiminnot

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.

Lisätoimintoja

Leafnodea voi halutessaan viritellä enemmänkin:

Message-Id-kentän hostname

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.

Artikkelien lähettäminen

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)

Leafnoden asentaminen Debianiin

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.

Kiitokset

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)

Public Domain Dedication
This work is dedicated to the Public Domain.