Unix: inn

INN (InterNet News) ist ein mächtiger Newsserver der NNTP (Net News Transfer Protocol) und NNRP (Net News Read Protocol) unterstützt. Die etwas ältere Version 2.3.x bietet ein komplettes Newssystem mit vier Spool-Varianten und natürlich auch ein UUCP-Interface.

Inhalt

Übersetzen

Nachdem Sie die aktuelle Version von der INN-Homepage geholt haben, den Source z.B. unter /usr/local/src entpacken und die Readme-Files lesen. Wichtig ist, daß Perl und evtl. PGP bereits vorhanden sind. Als erstes müssen Sie die Entscheidung treffen, welche Spool-Variante Sie nutzen möchten. Es gibt bei v2.3.x vier:

Als nächstes sollen Sie unbedingt einen System-User news und die gleichnamige Gruppe news anlegen. Als Heimatverzeichnis ist /usr/local/news sinnvoll. Danach einfach ein configure ausführen mit anschließendem make und make install. Stellen Sie sicher, daß alle Dateien unter /usr/local/news dem User und der Gruppe news gehören.

Nicht vergessen: aktuelle active und newsgroups Dateien von einen FTP-Server holen (meist Uni).

Konfigurieren

Nach dem Installieren finden Sie unter /usr/local/news den INN. In das Verzichnis db werden die Dateien active und newsgroups kopiert. Mit makehistory -i generieren Sie eine leere history DB. Dabei enstehen Dateien nach dem Muster history.n*, die in history* umgenannt werden müssen (also nur das "n" weg). Weiter geht es im Verzeichnis etc. Dort liegen alle Config-Dateien. In den Dateien selber gibt es meist ein paar Beispiele.

inn.conf

In der inn.conf stehen alle globalen Optionen. Hier sollten Sie die Daten Ihres Servers eintragen und die Pfade anpassen. Aber aufpassen! Evtl. sind auch in lib/innshellvars die Pfade anzupassen. Diese Datei wird von einigen Scripten eingelesen. Die Beschreibung der Optionen finden Sie in der man-page zu inn.conf.

newsfeeds

Die nächste wichtige Datei ist newsfeeds. Dort werden alle verbindungen mit anderen Newsservern eingetragen. Ganz wichtig ist der Eintrag für Ihren eigenen Server:

  # Default
  ME\
          :!junk,!local*\
          ::
 

Als erstes steht der Newsfeed und mit "\" getrennt folgt der exclude path. Der exclude path gibt weitere Namen des Newsservers an (vom Provider erfragen). Nach dem ersten ":" stehen alle Newsgruppen, die (nicht) geschickt werden sollen. Mit "!" können Sie die Gruppen bestimmen, die nicht geschickt werden. Die genaue Erklärung wie immer in der man-page zu newsfeeds nachlesen. Nach dem zweiten ":" folgen Optionen. Mit "\" werden alle Zeilen - bis auf die letzte - abgeschlossen.

Ein UUCP-Feed könnte so aussehen:

  # my feed via UUCP
  myfeed/news.lahn.de\
          :*\
          :Tf,Wnb:
 

Für einen nntp feed sollte innfeed genutzt werden. Dazu zuerst den funnel master eintragen:

  # innfeed funnel master
  innfeed!:\
         !*,\
         :Tc,Wnm*,S30000:/usr/local/news/bin/startinnfeed
 

Und dann folgt der Newsserver mit dem Sie peeren:

  news.mein-provider.net/mein-provider\
         :!junk,!control/!foo\
         :Tm:innfeed!
 

Der nntp-Newserver muß dann noch in innfeed.conf ergänzt werden.

passwd.nntp

Falls für nntp-Verbindungen eine Authentifizierung notwendig ist, einfach diese in passwd.nntp eintragen. Z.B.:

  news.mein-provider.net:thecat:topsecret
 

nnrp.access

Die User, die per nnrp-client auf den Newsserver zugreifen möchten, werden in nnrp.access freigeschaltet. Sie können bestimmte Rechner oder ganze Netze freigeben und auch Username/Paßwort einsetzen. Lese- und Schreibrechte und Beschränkung von bestimmten Newsgruppen sind möglich, z.B.:

  # erstmal alles verbieten
  *::::!*

  # Server selbst
  127.0.0.1:Read Post:::*

  # lokales Netz
  *.lahn.de:Read Post:::*
 

control.ctl

Es gibt die News-Hierarchie control.*, in welche Meldungen zum Anlegen oder Löschen von Newsgruppen kommen. Hierüber werden auch Cancel-Nachrichten geschickt, um bestimmte Artikel zu wiederufen. Wenn Sie dies nutzen möchten, dann sollten Sie sich control.ctl genau ansehen. Dort können Sie festlegen, was bei bestimmten Meldungen passieren soll oder ob Meldungen nur von bestimmten Absendern automatisch bearbeitet werden.

expire.ctl

Da irgendwann die größte Festplatte voll ist, wenn ständig neue News kommen, gibt es die expire.ctl. In der expire.ctl stehen die Regeln nach welchen alte Artikel gelöscht werden. So können z.B. Artikel bestimmter Gruppen länger aufgehoben werden als andere. Hier ist einiges an experimentieren angesagt. Je nach System, Plattenkapazität, Feeds und User-Wünsche müssen Sie die optimale Einstellung durch schrittweises Verändern und Anpassen finden.

Pflege

Der INN benötigt eine regelmäßige Pflege. Die active und newsgroups Dateien sollten immer aktuell sein. Die Newsfeeds fleißig kontrollieren und auch natürlich das expire.

cron & expire

Für ein regelmäßiges expire empfiehlt sich ein cron job, wie z.B.:

  0 1 * * * /usr/local/news/bin/news.daily expireover lowmark
 

Achtung: Immer als user "news" laufen lassen.

INN & UUCP

Um den INN in ein UUCP-System einzubinden sind im Wesentlichen zwei Dinge zu machen. Für den export von News einen cron job anlegen:

  0 3 * * * /usr/local/news/bin/send-uucp host1 host2 
 

Und damit auch die News vom UUCP zum INN kommen, wird rnews benutzt. Dabei ist zu beachten, daß rnews von dem UUCP-Paket (meist User "uucp") aufrufbar ist.