Unterabschnitte

Der Newsserver SN

Einleitung

Einleitung

Dies ist die Dokumentation zum SN-Paket. SN steht für SmallNews und ist ein kleiner und schneller Newsserver. Er ist für diejenigen gedacht, die gerne die Vorteile eines systemunabhängigen Newsdienstes nutzen möchten (es soll ja Leute geben, die mit mehr als einem Betriebssystem auf der selben Maschine arbeiten), ohne dabei ständig online sein zu müssen, um die aktuellen News auf jedem System lesen zu können. Es werden sicher Einige fragen: ``Warum SN und nicht INN oder Leafnode?''
INN: overkill pur
Leafnode: Das Konzept von SN gefiel mir besser :)

Voraussetzungen

Es müssen folgende Pakete installiert sein:

Funktionsumfang

Wie funktioniert SN?

Zu jeder Newsgroup muss angegeben werden, von welchem externen Newsserver sie bezogen werden soll. Theoretisch kann man also für jede Newsgroup einen anderen Server angeben. Der Server wird über den xinetd gestartet, d.h. wenn eine Verbindung von einem Client (Newsreader) auf Port 119 (das ist der nntp-Port) gewünscht wird, dann wird der daemon gestartet, sofern der Client eine Zugriffsberechtigung hat (siehe Beschreibung der Konfigurationsvariablen).

Was kann SN?

Was kann SN nicht?

Installation und Verwendung

Installation

Dazu gibt es eigentlich nicht viel zu sagen. Einfach im Setupmenü ``Install new package'' wählen, dann sich bis zu meinem Paketserver (der von Christian Würdig halt :)) durchhangeln und das SN-Paket auswählen. Anschließend wird das Paket heruntergeladen und installiert. Danach sollte man im Setupmenü unter ``Service administration'' den Eintrag ``News Service'' finden. Dort ist als erstes ``Edit and apply config'' auszuführen. Der Newsserver ist erst verfügbar, wenn die Konfigurationsdatei bearbeitet wurde. Nach der Bearbeitung der Konfigurationsdateien sollten als erstes ein paar Newsgroups abonniert werden (die Grouplist kann man erst abrufen, wenn ein Newsserver existiert und ein Newsserver wird angelegt in dem man eine NG abonniert und angibt, von welchem Server man sie beziehen will).

Beschreibung der Konfigurationsvariablen

SN_START

Wenn der News-Dienst zur Verfügung stehen soll, dann muss hier `yes' eingetragen werden.
Gültige Werte: yes, no

SN_FQDN

Falls vom Newsreader keine Message-ID generiert wird, dann macht SN dies. Da das i.d.R. jedoch zu einer ungültigen MID führt (weil die im LAN verwendete Domain meist eine fiktive ist) kann der FQDN-Teil hier explizit angegeben werden. Auf

http://www.hanau.net/faq_message-id_ueberschreiben.php

gibt es eine FAQ zum Thema Message-ID.

Gültige Werte: FQDN

SN_CLEAR_LOGS

Falls diese Option auf `yes' gesetzt wird, dann werden die Logfiles bei jedem Bootvorgang gelöscht.

Gültige Werte: yes, no

SN_REQ_NEW_GROUPS

Wenn diese Option auf `yes' steht, dann wird bei jedem Connect zu einem externen Newsserver nach neuen Gruppen auf diesem gesucht. Man sollte allerdings zuerst die Grouplist per Setup vom jeweiligen Newsserver bestellen. Gelegentlich kommt es leider zu Dupes, sodass man ab und zu die Funktion zum Sortieren der Grouplist im Setup nutzen sollte.

Gültige Werte: yes, no

SN_ALLOW_HOSTS_N

Mit dieser Option wird die Anzahl der zugelassenen Hosts und/oder IP-Bereiche festgelegt, die auf den Newsserver zugreifen dürfen. Es gilt ein DENY ALL, spricht, es werden nur die explizit angegebenen IP's zugelassen, alle anderen sind nicht berechtigt.

Gültige Werte: Zahl

SN_ALLOW_HOST_x

Hier werden die Hosts angegeben, die Zugriff zum Newsserver erhalten sollen Man kann eine einzelne IP angeben oder einen Bereich, Hostnamen sind ebenfalls erlaubt, allerdings muss dann sichergestellt sein, dass diese aufgelöst werden können. x steht dabei für eine Zahl von 1-N (N ist die Zahl, die bei SN_ALLOW_HOSTS_N angegeben wurde). Bsp.:

Gültige Werte: hostname, ip/subnetmask

SN_LOG_DIR

In dem hier angegebenen Verzeichnis werden alle Logfiles gespeichert. Es muss sichergestellt sein, dass der User `news' Schreibrechte in diesem Verzeichnis hat, da das Logging sonst nicht funktioniert.

Gültige Werte: absoluter Verzeichnisname

SN_FETCH_LOG

Hier wird erfaßt, von welcher Newsgroup, wie viele Artikel geladen wurden und wie lange dies gedauert hat. Auch evtl. Fehler (z.B. fehlgeschlagene Authentifizierung am externen Newsserver) werden hier gelistet.

Gültige Werte: relativer Dateiname

SN_NNTPD_LOG

Hier wird erfaßt welcher Artikel (Message-ID) in welche Newsgroup gepostet wurde.

Gültige Werte: relativer Dateiname

SN_DB_LOG

Logfile für die Datenbankaktivitäten.

Gültige Werte: relativer Dateiname

SN_CONF_LOG

Ein Eintrag erfolgt, wenn eine Newsgroup gelöscht oder angelegt wird.

Gültige Werte: relativer Dateiname

SN_ADMIN

An dieses Ziel werden Messages gesandt, die für den Administrator des lokalen Newsservers gedacht sind. Das sind meistens fehlgeschlagene Postings, die der externe Newsserver nicht angenommen hat (z.B. weil die Newsgroup dort nicht existiert, oder das Posting zu alt ist) oder Cancellation-requests für eine bestimmte Message. Dabei gibt es drei Optionen:

Gültige Werte: relativer Dateiname, NG newsgroup, EM email-adresse

SN_FETCH_MODE

Mit diesem Eintrag wird festgelegt, wie die News vom externen Server zu holen sind. Drei Einträge sind möglich:

Gültige Werte: manual, wait, auto

SN_FETCH_TIMES

Falls SN_FETCH_MODE='auto' ist, dann legt dieser Eintrag fest, wann der Cronjob ausgeführt wird. Dabei ist die normale Cron-Syntax (man crontab) zu verwenden. Bsp.:

Gültige Werte: Cron-Syntax

SN_WAIT_PORT

Falls SN_FETCH_MODE='wait' ist, dann wird auf diesem Port auf die Nachricht ``ONLINE'' gewartet.

Gültige Werte: Zahl von 1024-65535

SN_WAIT_ALLOW

Aus Sicherheitsgründen muss hier angegeben werden, von welchem Host die Nachricht ``ONLINE'' geschickt werden darf. In der Regel ist das die IP des Routers.

Gültige Werte: hostname, ip

Zusätzliche Anmerkungen zur Konfiguration

SN_FQDN
Eine Message-ID sieht so aus: local-Part@FQDN
FQDN steht für ``Full-Qualified-Domain-Name'', z.B.: gmx.de oder web.de sind solche.

Es gibt immer wieder Diskussionen, ob der FQDN gültig sein muss, oder nicht, da es bei der Interpretation durchaus Spielräume gibt, aber es gilt: Wenn man einen FQDN nutzt, der einem selbst gehört (z.B. eigene Domain) dann ist man auf der sicheren Seite. Wenn man das nur für den Newsservice nutzen will, dann gibt es Adressen (z.B. http://www.myfqdn.de) wo man sich einen eigenen FQDN reservieren kann. Dieser ist allerdings nur für den Einsatz in MID's von News oder Mails gedacht.

Die Funktionen im Servicemenü

Edit and apply config
Zur Zeit ist es noch nötig, die Konfigurationsdatei von Hand zu bearbeiten. Was die einzelnen Variablen machen ist oben beschrieben. Nach dem Abspeichern der Datei kommt die Frage: ``apply new config? (yes/no)''. Wenn man mit `y' oder `yes' antwortet, dann werden die neuen Einstellungen übernommen, ansonsten werden die Änderungen nicht übernommen.

Show documentation
Anzeigen der Dokumentation.

Request Newsgrouplist from external Server
Damit wird die komplette Liste aller Newsgroups, die der entsprechende externe Newsserver führt angefordert.

Search for Newsgroups in Grouplist
Falls man die Grouplist vom externen Server heruntergeladen hat, dann kann mit dieser Funktion diese Liste durchsuchen. Dabei kann nach allen regulären Ausdrücken suchen, die grep auch versteht. Bsp.:

Normalerweise steht . für ein beliebiges Zeichen. Wenn man jedoch nach dem Zeichen . suchen will, dann muss man es maskieren mit \. Da \ aber auch ein Sonderzeichen ist und es bei der Übergabe durch die Shell verschluckt werden würde, muss man dieses wiederum mit \ maskieren.

Add Newsgroup
Damit kann man eine neue Gruppe abonieren. Man kann sie entweder von einem bereits existierenden Server beziehen (dann entfallen die Angaben zum Server) oder man legt einen neuen Server an. Weiterhin können auch lokale Newsgroups angelegt werden. Lokale Gruppen legt man an, indem man `1) existing Newsserver (or local NG)' wählt und dann `3) local'. Die Gruppe wird mit dem Namen angelegt, den man angibt. Damit es nicht zu Problemen mit öffentlichen Gruppen kommt, sollte man immer ein local oder lokal vor den Gruppennamen setzen. Bsp.: local.foobar oder lokal.wichtig

Delete Newsgroup
Hier kann man eine bestehende Newsgroup abbestellen bzw. löschen im Falle einer lokalen Gruppe. Dabei wird die Gruppe inkl. aller gespeicherten Postings gelöscht.

Show subscribed Newsgroups
Damit kann man sich die zur Zeit abonierten Gruppen anzeigen lassen.

Get/Send News
Hier kann man das Abholen/Senden der News von Hand auslösen.

Change Login on external Newsserver
Falls man sich vertippt hat, oder sich der Login auf dem externen Server geändert hat, dann kann man das hier korrigieren. Das ist natürlich nur nötig, wenn der externe Server einen Login benötigt.

Sort Grouplists and kill Dupes
Wenn man per SN_REQ_NEW_GROUPS='yes' regelmäßig nach neuen Gruppen suchen läßt, dann passiert es leider, dass man doppelte Einträge in der Grouplist hat, sodass bei der Suche nach einer Gruppe evtl. einige doppelt aufgeführt werden. Mit dieser Funktion wird die Liste sortiert und von diesen Dupes befreit.

Clear up Database
Wenn der Server länger läuft (länger als 24h) dann empfiehlt es sich, mit dieser Funktion veraltete Einträge auszusortieren und den Index neu zu ordnen. Leider kommt es dabei ab und zu zu Problemen. Falls die letzten Zeilen in SN_DB_LOG int etwas so aussehen:

Wed Aug  7 17:54:26 MEST 2002
snexpire:dh\_open:table has wrong size!
snprimedb:dh\_open:table has wrong size!
snprimedb:Can't open database:Function not implemented?

dann wurde die Datenbank nicht richtig aufgebaut. Abhilfe schafft hier ein erneutes Ausführen der Funktion ``Clear up Database'' (bitte beachten, dass das Aufbauen der Datenbank eine Weile dauert, besonderns bei vielen Artikeln). Die letzten Zeilen in SN_DB_LOG sollten in etwa so aussehen:

snprimedb:insert:"message-id-bla-blub'' already exists in foo-bar:12345
snprimedb:12345 insertions

oder es ist nur eine Datumszeile vorhanden, dann wurden keine Artikel als doppelt vorhanden erkannt

Zukünftige Entwicklung

In Planung ist die Implementation der Mail to News Funktion, sodass Mailinglisten in eine Newsgroup umgeleitet werden können, die Unterstützung eigener moderierter Newsgroups sowie die Auswertung der Logfiles.

About

Die Originalsourcen des SN sind hier zu finden: http://www.iki.fi/patrik/sn/Bei Problemen, Kritik oder Verbesserungsvorschlägen einfach Mail an E-MAIL eisfair@chriswue.de oder in die Newsgroup spline.eisfair

eis 2017-05-03