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:
- traditional
Für jeden Artikel wird eine Datei geschrieben.
Vorteil: relativ robust, für UUCP bestens geeignet.
Nachteil: Viele Dateien pro Verzeichnis -> langsam
- timehash
Wie traditional, allerdings Unterteilung in mehrere Unterverzeichnisse abhängig von der Ankuftszeit der Artikel.
Vorteil: höhere Geschwindigkeit
Nachteil: immer noch Grenzen durch Dateisystem und komplizierte Suche
- timecaf
Ähnlich timehash, nur speichert inn mehrere Artikel zusammen in eine Datei.
Vorteil: etwas 4-mal schneller als timehash
Nachteil: komplizierte Suche und schlechtere Kontrolle des Expire
- cnfs
Artikel werden in definierten Puffer-Dateien geschrieben. Wenn die Datei voll ist, werden die Artikel vom Anfang durch neue überschrieben.
Vorteil: max. Leistung durch wenig Dateioperationen, keine Probleme mit vollen Dateisystemen
Nachteil: schlechtere Kontrolle des Expire
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.

