12.4 NNTP-Server
Leider hat man bei der Wahl eines Usenet-Servers nicht sonderlich viele Optionen. Zwar gibt es gute Software, die Usenet-Postings aus einer konfigurierbaren Newsgroup-Liste von anderen Servern herunterlädt und im internen Netzwerk zur Verfügung stellt, jedoch macht dies recht wenig Sinn, wenn es sich nicht um Hunderte von Usenet-Lesern handelt, die alle die gleichen Groups lesen. Aus eben diesem Grund werden wir uns an dieser Stelle damit beschäftigen, wie sich ein Usenet-Server realisieren lässt.
Wenn es darum geht, einen Usenet-Server aufzusetzen, fällt einem entweder gar keine Software ein, oder man denkt sofort an den INNd (InterNetNews-Daemon) des ISC. Diese Software stellt wirklich alle Features des Usenets zur Verfügung und ist als Referenzimplementierung absolut standardkonform. Der Nachteil dieser Software ist jedoch die schwierige und aufwendige Konfiguration. Auch uns sagt diese Konfiguration nur bedingt zu, weshalb wir an dieser Stelle eine alternative, im Funktionsumfang etwas eingeschränkte Lösung vorstellen wollen. Aber immerhin werden wohl nur wenige Leser alle Usenet-Features, etwa die Kommunikation zwischen Usenet-Servern, nutzen wollen.
Aus diesem Grund habe ich eine besonders einfach zu konfigurierende Alternative entwickelt. Diese aber auch im Funktionsumfang deutlich kleiner bemessene Open-Source-Software nennt sich WendzelNNTPd. Der Dienst unterstützt IPv6, bringt eine optionale Qt-basierte Oberfläche mit und läuft auch unter Windows. Der Server unterstützt – ich sage es gleich – nicht alle von RFC977 geforderten Befehle. Dafür ist er in 2 Minuten aufgesetzt. <Ich schaffe es in 20 Sekunden ...>
Herunterladen lässt sich die Software von http://www.wendzel.de, die Installation läuft folgendermaßen ab: Zunächst lädt man sich (am besten als .tgz-Datei) das Quellcode-Archiv herunter, entpackt es und führt anschließend das Skript configure aus. Lesen Sie die Datei INSTALL, um zu sehen, wie Sie zusätzlich die grafische Oberfläche kompilieren.
$ tar -xzvf wendzelnntpd.tgz $ cd wendzelnntpd $ ./configure ... $ make ...
Listing 12.12 Entpacken
Mittels ./install.sh (als Benutzer »root«) installiert man die Software anschließend.
12.4.1 Konfiguration
Die gesamte folgende Konfigurationsbeschreibung kann auch über die grafische Oberfläche, die weiter unten beschrieben wird, abgewickelt werden.
Die Konfiguration teilt sich in zwei Schritte: in die Konfiguration des Dienstes über die Konfigurationsdatei selbst sowie in die anschließende Konfiguration von Newsgroups.
Konfigurations- datei
Zunächst muss die Konfigurationsdatei /etc/wendzelnntpd.conf editiert werden. Dabei müssen Sie eigentlich nur die IP-Adressen der Schnittstellen angeben, über die der Dienst erreichbar sein soll.
listen 192.168.0.1 listen 127.0.0.1
Listing 12.13 Ausschnitt einer möglichen wendzelnntpd.conf
Der listen-Befehl funktioniert auch mit IPv6-Adressen. Möchte man einen anderen Port als den NNTP-Standardport (119) wählen, so lässt sich das durch den port-Befehl umsetzen.
port 10000
Listing 12.14 Weiterer Ausschnitt einer möglichen wendzelnntpd.conf
Newsgroups anlegen
Newsgroups werden mit dem Tool wendzelnntpadm verwaltet. Dieses Tool erzeugt und löscht Newsgroups aus der Datenbank der Serversoftware. Um eine Newsgroup zu erzeugen, ruft man einfach den folgenden Befehl auf:
Die Form:
# wendzelnntpd create <Newsgroupname> y
Beispiel:
# wendzelnntpadm create unix.genius y
Listing 12.15 Erzeugen einer Newsgroup
Das »y« am Ende des Befehls gibt das Posting-Flag an. »y« bedeutet, dass Postings erlaubt sind, »n« bedeutet das Gegenteil. Derzeit ist dies jedoch nicht relevant, weil dieses Flag bisher noch wirkungslos ist und das Posten in jedem Fall erlaubt ist.
Nun ist die Konfiguration eigentlich bereits erledigt. Sie können natürlich beliebig viele weitere Newsgroups anlegen, wenn Sie möchten.
Newsgroups ausgeben
Mit wendzelnntpadm kann man sich im Übrigen auch die Liste der momentan existierenden Newsgroups ausgeben lassen. Dazu verwendet man den Parameter list.
# wendzelnntpd list
Name, Posting, Messages
alt.wendzelnntpd.test, y, 0
unix.genius, y, 0
done.
Listing 12.16 Erzeugen einer Newsgroup
12.4.2 Server starten
Beim ersten Start des Servers empfiehlt es sich, die syslog-Meldungen im Auge zu behalten, da wendzelnntpd auftretende Fehler via syslog protokolliert. <Außerdem werden die Meldungen in /var/log/wendzelnntpd eingetragen.> Der eigentliche Start erfolgt durch einen simplen Aufruf von wendzelnntpd. Klappt der Start, gibt die Software etwa diese Zeilen aus:
WendzelNNTPd: version 1.0.0p0 – (Jul 26-2007 12:12:11 #1499) is ready.
Listing 12.17 Ausgabe bei Erfolg
Nun sollte ein auf das Serversystem konfigurierter Usenet-Client Newsgroups abonnieren, Postings und Follow-Ups senden sowie aktuelle Postings herunterladen können. Spaß für die ganze Familie!
Als Daemonprozess
WendzelNNTPd lässt sich durch den Parameter -d auch als Daemonprozess starten.
12.4.3 Authentifizierung
Soll nicht jeder Zugriff auf den Server haben, so gibt es die Möglichkeit, eine Anmeldung zu verlangen. Derzeit gibt es jedoch keine Benutzerverwaltung, sondern lediglich eine einzige gültige Kombination aus Benutzername und Passwort, über die die Authentifizierung durchgeführt wird.
Zur Aktivierung der Authentifizierung für den Server muss zunächst der Befehl use-authentication in der Konfiguration eingetragen werden.
use-authentication
Listing 12.18 Teil einer wendzelnntpd.conf
Anschließend werden die Benutzer auf der Konsole mit wendzelnntpadm adduser [Benutzername] angelegt. Mit wendzelnntpadm listusers können Benutzer angezeigt werden, und mit wendzelnntpadm deluser werden sie wieder gelöscht.
# wendzelnntpadm adduser swendzel Enter new password for this user: done. # wendzelnntpadm listusers Name, Password -------------- swendzel, MeinTollesPass done. # wendzelnntpadm deluser swendzel done. # wendzelnntpadm listusers done.
Listing 12.19 Anlegen und Löschen eines Benutzers
12.4.4 WendzelNNTPGUI
Hat man die grafische Oberfläche kompiliert, so wird diese vom Installationsskript automatisch mitinstalliert. Gestartet wird das Programm mit dem Befehl wendzelnntpgui. Die Oberfläche kann die gesamte Konfiguration des Servers (Erstellen der Konfigurationsdatei, Verwalten von Accounts, Verwalten von Newsgroups und Anzeige der Log-Meldungen) übernehmen.
Abbildung 12.1 WendzelNNTPGUI