Thema: News-Administration
Workshop von Moritz Both mb@comlink.org
am Sonnabend, den 16.10.1999 13:00-19:00 Uhr
Dokumentation
Teilnehmer: Marek Eisinger
Matthias
Roland Kaspzak
Joachim Breu
Sven
Jan
1. Einleitung
2. Installation des RPMs
2.1. Konfigurationsdateien
3. News empfangen
3.1. NNTP /etc/news/incoming.conf
3.2. NNRP
3.3. Suck
3.4. inews
4. News senden
Sonstiges
5.1 News administrierren/Ctlinnd
5.2 Control-Nachrichten
5.3 Logfiles
5.4 GUP
5.5. Expire
Dokumentation/Offene Sachen
Der Verein freies telekommunikations-zentrum Hamburg (ftz e.V.) betreibt seit 1991 eine Mailbox. Auf dieser Mailbox werden politischen Gruppen und Einzelpersonen Informationen angeboten.
Neben einen e-Mail-Account haben die NutzerInnen Zugriff auf Newsgruppen des Internets und sogennante SIN (Special Intrest Netze). Unser bis dato eigenesetzter Newsserver war die Mailboxsoftware Zerberus, die ein eigenes Nachrichtenaustauschformat (Zconnect) verwand hat. News aus dem Internet bekamen wir von unserem Provider, dem POP und betrieben, mit einem eigenen Gateway, einen Austausch der Systeme die der Domain comlink.de angehören.
Sowohl die von uns eingesetzte Mailboxsoftware Zerberus als auch die von uns eingesetzte Gatewaysoftware DUUCP liegen uns nicht im Quelltext vor. Unsere Mailboxsoftware ist nicht Jahr2000 fähig. Ziel des Linux-Engagements des ftz ist es die entsprechenden Migartionsschritte transparent , vermittelbar und durchführbar zu gestalten und ein Versorgung unserer NutzerInnen mit den entsprechenden Informationen zu gewährleweisten.
Eine besondere Herausforderung stellen unsere SIN, und die schutzwürdigen Intressen der GBG (geschlossenen Benutzergruppen) deren Policys wir mit der Installation des INN abdecken müssen.
Ziel dieser Dokumentation ist es die administrativen Tätigkeiten für den Betrieb eines Newsservers in Bezug die technischen und organisatorischen Notwendigkeiten des ftz aufzuzeigen.
Rechnername: news.comlink.de
Betriebssystem: Linux Redheat Halloween III Blocksberg
Aufruf: rpm -i inn-2.2-9.src.rpm
Nach der Installation des RPMs liegen die Konfigurationsfiles unter
/etc/news Konfigurationsfiles
z.B.:
-rw-r----- 1 news news 1551 Oct 16 17:53 expire.ctl
-rw-r----- 1 news news 5247 Oct 16 17:59 incoming.conf
-rw-r--r-- 1 news news 3313 Oct 16 17:49 inn.conf
-r--r----- 1 news news 142 Oct 20 07:44 nnrp.access
/var/spool/news Bereich wo die variablen Dateien liegen
Der /var-Bereich sollte auf einer eigenen Partition liegen. Bei kleinen Platten (<=0,5 GB) auf die Inodes achten, da jeder Newsartikel, der unter articels/ liegt, eine eigene Datei darstellt und so die Inodes sehr schnell knapp werden können.
drwxrwxr-x 2 news news 1024 May 21 04:29 archive/
drwxrwxr-x 5 news news 1024 Oct 17 22:00 articles/ (News-Arikel)
drwxrwxr-x 3 news news 1024 Oct 6 15:26 incoming/
drwxrwxr-x 2 news news 1024 May 21 04:29 innfeed/
drwxrwxr-x 2 news news 1024 May 21 04:29 outgoing/ (Spool-Dateien)
drwxrwxr-x 2 news news 1024 May 21 04:29 overview/
drwxrwxr-x 2 news news 1024 May 21 04:29 uniover/
/var/lib/news Verwaltungsdaten
Die Verwaltungsdaten nie(!) Editieren.
z.B.:
-rw-rw-r-- 1 news news 805 Oct 22 11:34 active (Aktive Newsgruppen)
-rw-rw-r-- 1 news news 766 Oct 22 11:34 active.old
-rw-rw-r-- 1 news news 517 Oct 22 11:34 active.times
-rw-rw-r-- 1 news news 173783 Oct 25 11:06 history
-rw-rw-r-- 1 news news 140 Oct 25 11:14 history.dir
-rw-rw-r-- 1 news news 2000036 Oct 25 11:14 history.pag
Das Standartprotokoll mit dem sich die Newsserver im Internet unterhalten heißt NNTP. NNTP steht für Net News Transfer Protocol (siehe RFC). Der installierte Newsserver läuft als Dämon mit der Bezeichnung innd. Egal wieviel Verbindungen(Feeds) wir zu anderen Servern unterhalten läuft der INN-Server als ein einzelner Prozess (siehe ps aex [Prozeßstatus]) und kontrolliert die weitere Verarbeitung.
Die einzelnen Server , also in unserem Fall der Feed zum POP muß eingetragen werden in der Datei:
/etc/news/incoming.conf
streaming: true # streaming allowed by default
max-connections: 8 # per feed
peer ME { hostname: "localhost, 127.0.0.1"}
peer news.hamburg.pop.de {
hostname: "news.hamburg.pop.de, 195.222.210.68, 193.98.9.248"}
In dem ersten Eintrag teilen wir dem INN mit, dass es uns gibt: (ME) im zweiten Eintrag den POP mit seinem Hostnamen und den IP-Adressen, unter denen der Server im Internet bekannt ist. Siehe auch Kochrezept Moritz Both unter http://www.comlink.de/ftz/linux/INN/INN-Install.html .
z.B.:
<7v15nk$6df$1@narses.hrz.tu-chemnitz.de> 940842382~-~940841230 de.admin.news.groups/82
Die Datei wächst und enthält folgende Informationen :
Message-ID <7v15nk$6df$1@narses.hrz.tu-chemnitz.de>
Haltedauer eine Artikels 940842382~-~940841230
Wo der Artikel liegt de.admin.news.groups/82 <-82´er Artikel in der Newsgroup!
Die nächste Nachricht die in diese Newsgroup reinkommt bekommt die nächste Nummer also 83. In unserem Filesystem würde Sie dann abgelegt werden unter:
/var/spool/news/articles/de/admin/news/groups/83
Die Message-ID ist weltweit eindeutig und setzt sich aus dem Hostname des Servers/Clients zusammen auf dem die Nachricht geschrieben wurde.
Sie sollte nie mit einem Editor bearbeitet werden. Diese Datei wächst ständig (bei der OLN ist sie ca. 60 MB) groß.
Sie dient dazu Duplikate, sogenannte Crosspostings rauszusortieren (Wenn als eine News nicht nur in einer News-Gruppe sondern in mehrere Newsgruppen verschickt wird).
z.B. :
de.admin.news.announce 0000000000 0000000001 y
In dieser Datei stehen alle Newsgruppen die wir haben. Auch diese Datei sollte nie mit einem Editor bearbeitet werden.
In Ihr stehen alle Newsgruppen die unser eigener Newsserver führt. Neben den Newsgruppennamen stehen dort eine diese Zahlenkolonnen(Flags) und am ende ein y, für yes=normale Newsgruppe oder m=moderated).
Wenn unserer NNTP-Server news.comlink.de eine Anfrage bekommt, und die Site nicht unter /etc/news/incoming.conf eingetragen ist, geht der INN sofort davon aus das da ein Client anruft der mit nnrpd News lesen möchte. Die Benutzer die bei uns news lesen dürfen müssen in der Datei /etzc/news/nnrpd.access eingetragen sein. Neben IP-Netzen, IP-Nummern, können in dieser Datei auch Usernamen und Passwörter für einen geschützten Zugriff auf den News-Server eingetragen werden. Netscape Discussion und andere Browser arbeiten alle mit NNRP.
Hier der Aufbau unserer Datei nnrp.access:
# Default to no access
*:: -no- : -no- :!*
# Allow access from localhost
localhost:Read Post:::*
194.59.4.0/24:RP:::*
145.228.104.0/24:RP:::*
In der ersten Teile steht das keiner einfach so mit seinem Client bei uns News lesen kann. In der zweiten Zeile steht das lokal(localhost) news gelesen werden dürfen(also z.B. mit tin). In den folgenden Zeile steht wer, d.h. welche Netze ohne Passwort bei uns news lesen und schreiben dürfen. Hilfe gibt es auch mit man nnrp.access Die Felder im einzelnen:
IP-Adresse/Hostnamen
Read, Post
Usernmane
Passwort
An welche Newsgruppen der darf. Laut Moritz ist es hier sinnvoll ein Perlprogramm zu schreiben was den lesenden Zugriff in Hinblick auf die GBGs und SIN einschränkt.
Eine beliebte aber unschöne Möglichkeit News beim Provider abzuholen ist das Programm SUCK. Das liest via nnrp die Newsgruppen beim Provider und veranlässt das lokale einsortieren in das eigene Newsssytem. Da wir eine Vereinbarung über den Bezug von News mit dem POP haben ist das für uns nicht sinnvoll. (Eventuell nur für CL-HH Power-User die mit Ihrem Linux später bei uns Nachrichten abholen wollen.
3.4 INEWS
## Format:
## site[/exclude,exclude...]\
## :pattern,pattern...[/distrib,distrib...]\
## :flag,flag...\
## :param
## Summary of flags:
## <size Article must be less then size bytes.
## Aitems Article checks -- d (must have Distribution header)
## p (don't check for site in Path header).
## Bhigh/low Internal buffer size before writing to output.
## H[count] Article must have less then count hops; default is 1.
## Isize Internal buffer size (if a file feed)
## Nm Only moderated groups that match the patterns.
## Nu Only unmoderated groups that match the patterns.
## Ssize Start spooling if more than size bytes get queued.
## Ttype Feed types -- f (file) m (funnel; param names the
## real entry) p (pipe to program) c (send to stdin
## channel of param's sub-process); x (like c, but
## handles commands on stdin).
## Witems What to write -- b (article bytesize) f (full path)
## g (first newsgroup) m (Message-ID) n (relative
## path) s (site that fed article) t (time received)
## * (names of funnel feed-in's or all sites that get
## the article) N (Newsgroups header) D (Distribution
## header) H (all headers) O (overview data)
## Param field depends on T flag. For Tf, relative paths are from the
## out.going directory. For Tp and Tc, it is a shell command to execute.
## If a Tm refers to this entry (which will have its own T param) then "*"
## is expanded to all the funnel sites that triggered this one. Useful
## for spawning one mail process, e.g.
Übersetzt und verkürzt heisst das:
Liste der Newsgruppen,
Distribution (Verteilung: weltweit, Europa, Deutschland...),
Flags [Typ des Newsfeeds, per File (uucp) oder channel (nntp oder innfeed),
Parameter (Zusatzinformationen: Grösse, Message-ID).
Für die Konfiguartion der »Sendung« könne erstmal Defaults festgelegt werden, z.B.:
ME\ :!*::
Ich schicke erstmal nichts raus. Dann können Systeme angegeben werden, für die jeweils das Transportverfahren und die Newshierarchien festgelgt werden. Transportverfahren wie nntp, uucp bzw. odoconnect ... Z.B.:
# Innfeed funnel master; individual peers feed into the funnel.
# Note that innfeed with "-y" and no peer in innfeed.conf
# would cause a problem that innfeed drops the first article.
#innfeed!:\
# !*,\
# :Tc,Wnm*,S30000:/usr/local/news/bin/startinnfeed
Hier wird auf die Datei innfeed.conf verwiesen. In dieser gibt es allgemine Konfigurationen und speziele Konfigurationen für einzelne feeds:
## Peers.
##
peer popl {
ip-name: news.hamburg.pop.de}
oder:
# A real-time nntplink feed
# If you turn on storageapi, you cannot to use nntplink since it cannot handle
# token.
pop\
:/comlink.de!foo\
# :Tc,Wnm:/usr/news/bin/nntplink -i stdin news.uu.net
oder:
# A UUCP feed, where we try to keep the "batching" between 4 and 1K.
uucp_pop\
:!comlink*,cl-hh*\
:Tf,Wnb,B4096/1024: (Methode)
5.1 News administrieren/Ctlinnd
/usr/src/ctlinnd
Programmaufruf: ctlinnd [Kommando] [Parameter]
Kommados:
mode: Status anzeigen
throttle: Anhalten (Pause, um logfiles wegzuschreiben]
go: nach throttle, um weiterzumachen
newgroup [Name der neuen Newsgruppe] [flags]
rmgroup: löschen
changegroup: ändern
shutdown: zum runterfahren des Newsservers
5.2 Control-Nachrichten
Diese werden normalerweise nicht vom Newsreader angezeigt. Diese Nachrichten liegen im Newssystem, sie werden von Admins oder bösen Menschen verschickt werden. Sie lassen Nachrichten löschen (canceln oder Rückruf).
Es gibt drei cancel-Nachrichten:
cancel (Rückruf des Absenders), kann auch von böswilligen Dritten passieren (Fremd-cancel) oder wird von Beauftragten des Internets vorgenommen (Use-Net-Death-Penaty, Breitbartindex),
rmgroup, zum Löschen von News-Gruppen
newgroup, zum Anlegen von News-Guppen,
checkgroups, Übersicht anfordern.
Alle vier sind Nachrichten von Dritten, die Auswirkungen auf das lokale News-System haben. Wer und ob etwas von Dritten gemacht werden soll, kan konfiguriert werden, in der Datei:
/etc/news/control.ctrl. Man kann auch den Provider fragen, was er darin stehen hat.
5.3 Logfiles
Stehen unter /var/log/news
sie heissen:
news.emerg
news.crit
news.err
diese 3 sind die wichtigsten log-Dateien
news.warn
news.info
news.notice
news
Logfiles werden standardmässig rotiert. Das heisst, sie werden aufsteigend Durchnummeriert und evtl. gepackt. Sinnvoll ist die log-Files mit einem Script zu bearbeiten, welches die log-files zu einem Admin verschickt, wie z.B. Innreport o.ä. Das muss gelesen werden !!!!!!!
5.4 GUP
GUP ist eine Erweiterung von inn. Mit GUP werden Nachrichten bei uns oder unserem Provider bestellt werden.
Dafür muss ein Unix-User GUP existieren und dafür brauchen wir noch eine Anleitung.
GUP legt für jeden feed (auch point) eigene Verzeichnisse an (include/exclude) in den die bestellten und nicht bestellten Newsgruppen eingetragen sind. Um eine Kompatibilität mit dem Zerberus-System herzustellen (maps) muss ein Übersetzungsprogramm entwickelt werden, welches die maps-Syntax abbildet.
Um als »Newsmaster« dem Pop eine Bestellung zu schicken, muss eine E-mail geschrieben werden. Absender ist: Newsmaster@comlink.de. Um so eine Anfrage zu erzeugen, legt man am besten eine Datei an, in die die Steuerbefehle an GUP eingefügt werden:
------ GUP.txt
site syncope netz42 (nachricht; wir sind syncope; passwort)
include maus.* (Mausnetz bestellen...)
help (Hilfe anfordern)
newsgroups (Übersicht der Newsgruppen zuschicken lassen [include, exclude])
quit (Nachricht beenden)
------GUP Ende
cat GUP.txt |/usr/sbin/sendmail -f newsmastewr@comlink.de gup@hamburg.pop.de
5.5 Expire
Datei /etc/news/expire.ctl
Hier stehen alle Newsgruppen mit einer Angabe der Mindesthaltbarkeit drin. Die News liegen - wie geschrieben unter /var/spool/news/.
## Format:
## /remember/:<keep>
## <patterns>:<modflag>:<keep>:<default>:<purge>
## First line gives history retention; other lines specify expiration
## for newsgroups. Must have a "*:A:..." line which is the default.
## <patterns> wildmat-style patterns for the newsgroups
## <modflag> Pick one of M U A -- modifies pattern to be only
## moderated, unmoderated, or all groups
## <keep> Mininum number of days to keep article
## <default> Default number of days to keep the article
## <purge> Flush article after this many days
## <keep>, <default>, and <purge> can be floating-point numbers or the
## word "never." Times are based on when received unless -p is used;
## see expire.8
Man kann ausserdem angeben, eine minimale Anzahl von Tagen, eine standardmässige Anzahl von Tagen und eine maximale Anzahl von Tagen.
http://www.comlink.de/ftz/linux/INN/INN-Install.html : Moritz Both Kochanleitung
http://www.dana.de/mod/rfc.html (ausführliche Anleitungen: rfc's etc.)
http://www.omikron.de/~ecr/pub/doc/wie_geht/html/DE-INN-Newsspool-HOWTO-1.html
http://www.isc.org/products/INN/
ftp://ftp.xlink.net/pub/mirror.inn/
ftp://ftp.blank.org/pub/innfaq/
http://www1.lunetix.de/LHB//
http://www1.lunetix.de/LHB//node171.html#SECTION00870000000000000000
Eine Übersicht der Newsgruppenlisten findet man auf:
ftp://ftp.uunet.net
Paketbeschreibung des RPM:
inn-2.2-9.src.rpm
rpm -q inn i
Name : inn Relocations: (not relocateable)
Version : 2.2 Vendor: Red Hat Software
Release : 9 Build Date: Fre 21 Mai 1999 04:30:31
CEST
Install date: Mit 06 Okt 1999 15:26:37 CEST Build Host: porky.devel.redhat.
com
Group : System Environment/Daemons Source RPM: inn-2.2-9.src.rpm
Size : 6412418 License: GPL
Packager : Red Hat Software <http://developer.redhat.com/bugzilla>
Summary : The InterNetNews (INN) system, an Usenet news server.
Description :
INN (InterNetNews) is a complete system for serving Usenet news and/or
private newsfeeds. INN includes innd, an NNTP (NetNews Transport
Protocol) server, and nnrpd, a newsreader that is spawned for each client.
Both innd and nnrpd vary slightly from the NNTP protocol, but not in ways
that are easily noticed.
Install the inn package if you need a complete system for serving and
reading Usenet news. You may also need to install inn-devel, if you are
going to use a separate program which interfaces to INN, like newsgate or
tin.
Offene Sachen
Perlhook Filterdefinition im INN will Moritz nachliefern
Maps-Übersetzungs-Programm
uucp-batcher