SelfLinux Internet News Server Leafnode - ein Newsserver unter Linux Abschnitt 2 | SelfLinux-0.13.0

| Leafnode - ein Newsserver unter Linux | Autor Formatierung GFDL

#### 2 Installation und Konfiguration

#### 2.1 Download

Bevor man mit der Installation beginnen kann, muss man sich leafnode natürlich zuerst einmal besorgen. Wenn keine aktuelle Version mit der Distributions-CD mitgekommen ist, kann man Leafnode von http://www.leafnode.org herunterladen.

Wenn man leafnode nicht über das distributionsspezifische Installationstool installieren kann, muss man dies halt von Hand machen. Es empfiehlt sich dabei die Verwendung eines RPM-Paketes.
Es ist wichtig, dass ein zur Distribution gehörendes RPM heruntergeladen wird. Wenn RPMs gemischt werden, kann dies zu grösseren Problemen führen. Ein RPM für Mandrake wird kaum auf SuSE laufen. Dies ist darin begründet, dass die Pfade zu Programmen und Diensten nicht gleich sind.

#### 2.2 Installieren

Je nach grafischer Oberfläche für RPM erfolgt die Installation unterschiedlich. Da dies keine Probleme bereitet, beschreibe ich hier den Weg über die Konsole.

Als erstes wechselt man mit cd in das Verzeichnis, indem das Leafnode RPM liegt. Da rpm nur als root funktioniert, wechselt man mit Hilfe von su den Benutzer. Über den Befehl rpm -ihv leafnode.rpm wird das Paket installiert. leafnode.rpm muss natürlich vorher durch den entsprechenden Namen ersetzt werden.

Hier währe ein ausführliches Beispiel. Es wird davon ausgegangen, das sich das RPM-Paket im Verzeichnis download liegt:

user@linux ~$ cd download user@linux ~/download$ su <passwort> root@linux ~/download# rpm -ihv leafnode.rpm

Wenn dies ohne Fehlermeldung funktioniert hat, ist Leafnode nun installiert. Damit ist es aber noch nicht getan. Leafnode ist ein Netzwerkdienst und muss daher über ein Netzwerk - und sei es nur ein lokales - erreichbar sein. Da alles, was mit Netzwerk zu tun hat, vom inetd (Internet Daemon) oder xinetd (Weiterentwicklung von inetd) gestartet werden kann, muss leafnode noch dort eingetragen werden.

Je nach Verwendung von inetd oder xinetd muss für die weitere Installation die entsprechende Anleitung verwendet werden.

Nach der entsprechenden Konfiguration kann zur Kontrolle über telnet eine Verbindung zu leafnode aufgebaut werden.

user@linux ~$ telnet localhost nntp Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. 200 Leafnode NNTP Daemon, version 1.9.19 running at jgraber.ch

Wenn eine solche Meldung kommt, hat es geklappt. Bei Fehlermeldungen sollte man als erstes nachsehen, ob alle genannten Dateien news gehören.

#### 2.3 inetd

Wenn die Distribution inetd verwendet, müssen wir die Datei /etc/inetd.conf bearbeiten. In dieser Datei sollte es bereits einen auskommentierten Eintrag für nntp geben. Diese Zeile muss gesucht und das # am Zeilenanfang entfernt werden. Die entsprechende Zeile sollte danach so aussehen (Pfade sind natürlich wieder anzupassen):

/etc/inetd.conf

    nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/sbin/leafnode

Nachdem diese Änderung gespeichert wurde, hat inetd diese aber noch nicht übernommen. Erst mit der Eingabe von

root@linux ~# killall -HUP inetd

als root wird das Konfigurationsfile neu eingelesen.

#### 2.4 xinetd

xinetd ist, wie wir gleich bemerken werden, komplett anders aufgebaut als inetd. Wir wechseln ins Verzeichnis /etc/xinetd.d und finden dort je nach RPM-Paket bereits eine Datei mit Namen leafnode. Diese Datei sollte so aussehen:

/etc/xinetd.d/leafnode

    service nntp
    {
            flags           = REUSE
            socket_type     = stream
            wait            = no
            user            = news
            server          = /usr/sbin/leafnode
            log_on_failure  += USERID
    }
    # End of nntp

Ist diese Datei nicht vorhanden, muss sie manuell erstellt werden.

Damit die Konfigurationsdatei neu eingelesen wird, muss nachher dieses Kommando ausgeführt werden:

root@linux ~# /etc/init.d/xinetd reload

#### 2.5 Konfiguration Leafnode

Konfiguriert wird Leafnode über die Datei /etc/leafnode/config.

/etc/leafnode/config

    ## This is the NNTP server leafnode fetches its news from.
    ## You need read and post access to it. Mandatory.
    server = <servername>

    ## Unread discussion threads will be deleted after this many days if
    ## you don't define special expire times. Mandatory.
    expire = 20

    ##
    ## All the following parameters are optional
    ##

    ## I have free access to my news server. If you don't have, comment out
    ## the following two lines and change them accordingly.
    #username = <benutzername>
    #password = <passwort>

Wie wir sehen, ist das Config-File sehr gut dokumentiert. Für Leafnode sind eigentlich nur die ersten 2 Parameter notwendig: server und expire.

Bei server muss <servername> durch den entsprechenden Server ausgetauscht werden. expire definiert die Aufbewahrungszeit der Newsartikel. Vorgegeben sind 20 Tage, was aber beliebig geändert werden kann. Man sollte aber beachten, dass mehr Tage mehr Postings bedeuten und diese wiederum mehr Platz beanspruchen.

Falls der Newsserver eine Identifizierung durchführen will, muss das # vor username und passwort entfernt und die entsprechenden Werte eingetragen werden.

Da das Passwort im Klartext vorliegt, muss nach dem Ändern die Datei auf den Benutzer news übertragen werden.

root@linux /etc/leafnode/# chmod 600 config root@linux /etc/leafnode/# chown news config root@linux /etc/leafnode/# chgrp news config root@linux /etc/leafnode/# ll -rw--------- 1 news news 4468 Dez 26 17:34 config

#### 2.6 Feinabstimmung von Leafnode

Wer mit Leafnode in der Standardkonfiguration nicht zufrieden ist, kann bei der Feinabstimmung noch viel erreichen. Dazu öffnet man wieder die Datei /etc/leafnode/config.

Wenn man ein wenig tiefer nachschaut als wir es oben getan haben, findet man noch eine grosse Anzahl von Variablen. Auf die wichtigsten gehe ich hier nun ein:

hostname = <Domain in der MID, die von leafnode angehängt wird>

maxfetch = n
Maximal n Postings pro Group auf einmal abholen

initialfetch = n
Beim abonnieren einer Newsgroup nur n Postings abholen

maxcrosspost = n
Nur Postings abholen, die in max. n Groups gepostet werden

maxage = n
Nur Postings die nicht älter als n Tage sind abholen

maxlines = n
Nur Postings mit max. n Zeilen Länge abholen

maxbytes = n
Nur Postings bis zu einer Größe von n Bytes abholen

timeoutshort = n
Wenn versehentlich eine Group geöffnet wurde, nur n Tage diese Gruppe abholen. Default sind 2 Tage

timeoutlong = n
wenn eine Gruppe n Tage nicht mehr gelesen wurde, werden keine News aus dieser Gruppe mehr abgeholt

Wie oben schon erwähnt muss an diesen Variablen nichts geändert werden. Sie dienen nur zur Feinabstimmung und die Default-Werte sind für die meisten Benutzer in Ordnung.

#### 2.7 fetchnews und texpire

fetchnews und texpire sind zwei Programme für den Unterhalt von leafnode. Ohne die beiden ist leafnode relativ nutzlos.

fetchnews dient, wie der Name verrät, zum Herunterladen der News. Der erstmalige Aufruf von fetchnews lädt die Liste der Newsgroups vom Server herunter. Ist dies getan, besorgt er die Newsartikel. Da diese Arbeit je nach Server und Gruppe länger dauern kann, bietet fetchnews die Option -v zur Anzeige der aktuellen Arbeit. -v steht für verbose (ausführlich) und kann durch die Anzahl -vs gesteigert werden.

root@linux /etc/leafnode/# fetchnews -vvv

liefert eine angenehm ausführliche Liste.

texpire dient zum Löschen veralteter News. Die News werden von leafnode solange aufbewahrt, wie in /etc/leafnode/config unter expire eingestellt ist. Ist diese Zeit überschritten, werden die News von leafnode intern entsprechend markiert und beim nächsten ausführen von texpire gelöscht.

Der Datenmenge in den Newsgroups entsprechend häufig muss texpire ausgeführt werden. Wenn nur wenig gepostet wird, nutzt das tägliche texpire nicht sehr viel. Bei einer grossen Flut von Nachrichten wird man aber mit einem wöchentlichen texpire auch nicht glücklich. Nach einigen Versuchen wird man aber einen für sich passenden Rhythmus finden.