Linux Semiar

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

  1. Sonstiges

    5.1 News administrierren/Ctlinnd

    5.2 Control-Nachrichten

    5.3 Logfiles

    5.4 GUP

    5.5. Expire

  2. Dokumentation/Offene Sachen

1. Einführung


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.

2. Installation des INN-Pakets(RPM)


Rechnername: news.comlink.de

Betriebssystem: Linux Redheat Halloween III – Blocksberg


Aufruf: rpm -i inn-2.2-9.src.rpm


2.1 Konfigurationsdateien


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

3. NEWS empfangen


3.1 NNTP

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 .




Datei: /var/lib/news/history


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 :

  1. Message-ID <7v15nk$6df$1@narses.hrz.tu-chemnitz.de>

  2. Haltedauer eine Artikels 940842382~-~940841230

  3. 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).


Datei: /var/lib/news/active


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).


3.2 NNRP Net-News Reading Protokoll (Clients)


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:

  1. IP-Adresse/Hostnamen

  2. Read, Post

  3. Usernmane

  4. Passwort

  5. 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.


3.3 SUCK

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


Tool zum einspielen von “lokalen” News in den INN. Wird verwendet von Odo/Unixconnect dem tin oder bei uucp. Dient zum schreiben von news, also wenn ein Client eine Nachricht schreibt. Dafür gibt es auch eine manpage(man inews).


4. News senden


In dieser Datei sind die Rechner definiert, an die WIR Daten schicken. Diese datei ist schweirig zu konfigurieren und sehr komplex. Die zentrale Konfigurationsdatei ist die Datei newsfeeds. Pro ausgehenden feed ein Eintrag (jeder der von uns Nachrichten bekommen soll = ein Eintrag).

Datei: /etc/news/newsfeeds


## 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:



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. Sonstiges


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:

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.


6. Dokumentation/Offene Sachen


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


  1. Perlhook Filterdefinition im INN – will Moritz nachliefern

  2. Maps-Übersetzungs-Programm

  3. uucp-batcher