Inn und suck zusammen mit CIS/DFN nutzen
Achtung: Der folgende Text ist
gerade nicht ganz aktuell, da es jetzt nicht mehr fu-berlin.de sondern
news.individual.net heißt.
Der folgende Text soll zeigen wie leicht es eigentlich ist auch
mit der als "kompliziert" verschrieenen Software innd einen Zugang
zum kostenlosen USENET-Newsdienst des CIS/DFN
zu konfigurieren.
Warum einen extra Newsserver wie inn, wenn ich doch mit dem Newsclient
direkt auf den Newsserver zugreifen kann?
Diese Frage ist einfach zu beantworten: Mit dem lokalen Newsserver geht
der Zugriff nicht nur viel schneller sondern man kann die News auch offline
lesen, kann also auch eine Wählleitung verwenden. Zudem kann auch eine
kleine WG gemeinsamen Zugriff auf die lokalen Newsgruppen haben. Nach den
Nutzungsbedingungen des DFN/CIS ist dies explizit erlaubt solange der Nutzerkreis
nicht unbeschränkt ist (Näheres in den
Nutzungsbestimmungen im Punkt
"Darf ich die News mehreren Personen zur Verfügung stellen?").
Voraussetzung: Der Zugang zum oben genannten
Newsserver erfordert einen Account mit Login und Passwort. Ein normaler Login wie man ihn
zum Zugriff mit einem Newsreader benötigt genügt.
Als Ausgangssituation haben wir eine frisch installierte
SuSE Linux 8.1. Als zusätzliche Pakete
müssen die Pakete inn und suck ausgewählt werden.
Weiterführende Links
Die Beschreibung bezieht sich auf die zur Zeit (Oktober 2002) aktuelle
Version von inn auf einem SuSE Linux 8.1 System. Auf anderen Systemen sind
Pfade ggf. anzupassen.
Konfiguration des inn
Wenn man schon die Zugangsdaten zum Newsserver hat, so kann man direkt mit
der Konfiguration des Newsservers beginnen. Ansonsten kann man sich auf
der Anmeldeseite
für einen Account am Newsserver des CIS/DFN anmelden.
Im ersten Schritt sollte man den inn konfigurieren. Nach
der Installation des inn Paketes finden sich die meisten konfigurationsdateien
in /etc/news/. In folgenden Dateien müssen nun Veränderungen
vorgenommen werden:
| Pfad | Bedeutung und Veränderungen |
/etc/news/inn.conf |
Organization anpassen und die Domain auf die Domäne setzen. Erläuterungen zu
dieser Datei findet man in man inn.conf |
/etc/news/newsfeeds |
Konfiguriert welcher Newsserver von uns "gefeeded" wird, also Daten von uns bekommt.
Der "Feed" besteht bei uns in einer Datei in der die lokal geposteten Artikel
abgespeichert werden. Die Veränderung sieht wie folgt aus:
# we need this for fu-berlin synchronisation
fu-berlin.de:*,!junk,!control*:Tf,Wnm:fu-berlin.de
|
/etc/news/nntpsend.ctl |
Diese Datei steuert das Programm zum Versenden der Artikel die in einem "Feed"
aufgelaufen sind (siehe newsfeeds). Wir haben bei uns nur einen Feed konfiguriert,
es reicht ans Ende der Datei einfach
fu-berlin.de:news.cis.dfn.de: anzuhängen. Soll heißen: Der Newsfeed
namens fu-berlin.de den wir in der Datei /etc/news/newsfeeds
definiert haben wird an den Rechner mit dem Namen news.cis.dfn.de ausgeliefert. |
/etc/news/passwd.nntp |
Da zum Posten auf dem CIS/DFN Server ein Login und Passwort erforderlich ist, muß dieses
in dieser Datei hinterlegt werden. Achtung: Jeder der diese Datei lesen kann hat
automatisch Zugriff auf das Passwort. In dieser Datei folgende Zeile anhängen:
news.cis.dfn.de:username:passwort
news.cis.dfn.de ist wieder der Zielrechner um den es geht.
Statt "username" und "passwort" sind hier natürlich die in der Anmeldemail vom
CIS/DFN Newsserver genannten Daten einzutragen. |
/etc/news/readers.conf |
Diese Datei konfiguriert wer alles von unserem INN Newsserver lesen und posten darf.
ACHTUNG: Bei dieser Konfiguration besondere Sorgfalt walten lassen da sonst
der Newsserver u.U. zum SPAMen mißbraucht wird. Zugriff also nur für lokale
Rechner mit bekannten Benutzern erlauben. Will man nur vom localhost
lesen so sind keine Veränderungen in dieser Datei nötig. |
/etc/news/incoming.conf |
Diese Datei konfiguriert welche Newsserver bei uns Daten einliefern dürfen. Hier
sind zwei Änderungen sinnvoll:
peer news.cis.dfn.de {
hostname: "news.cis.dfn.de"
}
sollte man einfach ans Ende (nach den 3 Zeilen mit "peer ME") anfügen. Als weitere Ergänzung
ist es geschickt den lokalen Rechnernamen als weiteren Peer in der sinngemäß gleichen
Form anzugeben. |
Nach diesen ersten Veränderungen kann man sich dann schonmal das Newsgroups File vom
ftp Server der fu-Berlin besorgen. Das Newsgroups File findet man unter
ftp://ftp.fu-berlin.de/doc/news/fu-berlin/newsgroups
und kann direkt wie man es heruntergeladen hat unter /var/lib/news/newsgroups
abgespeichert werden. Die Größe dieser Datei ist z.Zt. ca. 1,2 MB. Diese Datei
enthält die Gruppenkurzbeschreibung ("tagline") die im Newsreader in der Übersicht
angezeigt wird. Diese Datei muß man nur einmal herunterladen.
Erster Start von inn
Nach den Einstellungen und dem Kopieren der newsgroups Datei kann man
schon probieren den Newsserver mittels des Kommandos
rcinn start
als root zu starten. Der Server sollte ohne Probleme hochkommen und ein Prozess
namens innd sollte laufen. Einen ersten Test der Installation kann man
mit telnet localhost 119 durchführen. Eine Testsitzung sieht
ungefähr so aus (Benutzereingaben bold, Computerausgabe regular):
konstriktor:/var/lib/news # telnet localhost 119
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
200 konstriktor.Siski.DE InterNetNews server INN 2.3.2 ready
mode reader
200 konstriktor.Siski.DE InterNetNews NNRP server INN 2.3.2 ready (posting ok).
list active
215 Newsgroups in form "group high low flags".
control 0000000000 0000000000 y
control.cancel 0000000000 0000000000 y
junk 0000000000 0000000000 y
.
quit
205 .
Connection closed by foreign host.
konstriktor:/var/lib/news #
Wenn soweit alles funktioniert kann schon die erste Newsgroup "abonniert" werden.
Ich empfehle zum Testen de.test da hier anhand der Reflektoren auch
gut zu sehen ist ob die Newspostings richtig angekommen sind.
Abonnieren kann man einzelne Newsgruppen (z.B. de.test) mit folgendem Kommando als root:
/usr/lib/news/bin/ctlinnd newgroup de.test
Installation von suck
Suck ist eine Möglichkeit News von außen in den inn zu "spoolen". Durch einige
Änderungen am inn funktioniert das rpost Programm faktisch nicht mehr,
das ist aber nicht so schlimm, da nntpsend als Bestandteil von inn ein sehr guter
Ersatz ist.
Am einfachsten funktioniert suck mit einem kleinen Skript welches man sich am
besten hier herunterlädt.
get.news.sh Downloadprogramm für News mittels suck/innd (2.4 kB)
Durch die Verwendung von nntpsend ist es nun wirklich handlich geworden. Nach
dem Herunterladen und dem Abspeichern des Skriptes unter
/usr/local/sbin/get.news muß man noch beiden Variablen USER und
PASSWORD in diesem Skript anpassen. Hier müssen auch wieder die
zugesendeten Daten eingetragen werden damit man sich die News abholen kann.
Der erste Test
Nach den Anpassungen am innd, dem ersten Start und Funktionstest, dem Herunterladen
des "suck" Skriptes und den nötigen Anpassungen kann man nun einen ersten Versuch machen. Hierzu
einfach das Kommando eingeben (Benutzereingaben bold, Computerausgabe regular):
konstriktor:/ # /usr/local/sbin/get.news
The current date is as follows: Sat Oct 5 18:35:08 CEST 2002
Attempting to connect to news.cis.dfn.de
Using Port 119
Official host name: news.cis.dfn.de
Address: 130.133.1.4
Connected to news.cis.dfn.de
200 news.fu-berlin.de welcomes konstriktor [...]
Loading active file from localhost
Reading current sucknewsrc
de.test - 5 articles 376167-376171
Adding new groups from local active file to sucknewsrc
Elapsed Time = 0 mins 0.97 seconds
5 Articles to download
Deduping Elapsed Time = 0 mins 0.00 seconds
Deduped, 5 items remaining, 0 dupes removed.
Processing History Database Elapsed Time = 0 mins 0.00 seconds
Processed history, 0 dupes removed
Total articles to download: 9
16636 Bytes received in 0 mins 0.94 secs, BPS = 17693.1
Closed connection to news.cis.dfn.de
Posting Messages to localhost
5 Messages Posted
Elapsed Time = 0 mins 0.53 seconds
Cleaning up after myself
Downloaded Articles
You can hang up the modem now
Am Anfang werden noch die 3 Systemgruppen heruntergeladen, control, control.cancel
und junk. Dies kann man mit einer kleinen Datei verhindern die man im Verzeichnis
/var/spool/news/tmp anlegt. Diese Datei muß den Namen active-ignore bekommen
und führt die Newsgruppen aus dem Active file auf die beim Download ignoriert werden sollen. Überlicherweise
hat diese Datei folgenden Inhalt:
konstriktor:/var/spool/news/tmp>cat active-ignore
control
control.cancel
junk
Dies führt dann dazu daß diese Pseudogruppen nicht heruntergeladen werden.
Nach diesem ersten Download sollte man mittels eines News-Clients versuchen
in die Test Gruppe "de.test" ein Posting zu machen. Ich verwende z.B. knews mit
einem speziellen Patch zur freien Einstellbarkeit der "From" Zeile. Dies sollte
ohne Probleme möglich sein.
Nach dem erfolgreichen Posting kann man überprüfen ob der News-Server alles richtig gemacht hat: In
der Datei /var/spool/news/outgoing/fu-berlin.de sollte sich nun eine Zeile der folgenden
Art befinden:
konstriktor:/var/spool/news/outgoing>cat fu-berlin.de
@050100000004000002900000000000000000@ <anp9f7$8pu$1@konstriktor.Siski.DE>
Steht dort diese Zeile so heißt dies daß das Testposting beim nächsten Lauf des get.news Skriptes
an den Newsserver des CIS/DFN eingeliefert wird. Wir rufen wieder das Skript auf:
konstriktor:/ # /usr/local/sbin/get.news
nach wenigen Minuten sollten an die im Newsposting als FROM angegeben
Mailadresse einige "Reflektormails" ankommen die bestätigen daß das Posting
richtig angekommen ist.
Wenn nun alles past kann man einen Aufruf des Skriptes zum Beispiel ins ip-up Skript eingefügt werden.
Ich habe eine Festverbindung mit dem Internet und verwende einen cronjob der jede Viertelstunde eine
Synchronisation anstößt:
konstriktor:~ # crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.19179 installed on Mon Sep 30 21:05:18 2002)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
-8,23,38,53 * * * * /usr/local/sbin/get.news >> /var/log/get.news.log
Die Zeiten sollten in einem persönlichen Setup auf jeden Fall anders gewählt werden, damit sich die Zugriffe
auf den CIS/DFN Server gleichmässig verteilen.
|