Usenet-Server SN (Small News)

Aus BraLUG-Wiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Allgemeine Bemerkungen)
(Runterladen von News-Artikeln)
 
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Motivation ==
+
[[Kategorie:Tipps und Tricks]]
Im [http://www.heise.de/ct/ c't-Magazin] 4/2004 wurde eine Artikelserie begonnen, die das Projekt [http://www.heise.de/ct/ftp/projekte/srv/ c't-Debian-Server] zum Inhalt hat. Desweiteren beinhaltet das Sonderheft [http://www.heise.de/kiosk/special/ct/05/04/ "special Netzwerke"] eine Zusammenfassung der bisherigen Artikel. Auf der [http://www.heise.de/kiosk/special/ct/05/04/programme.shtml Heft-CD] des Sonderhestes ist die Version 1.1 des Serverprojektes zu finden. Diese Version bildet die Grundlage für die folgenden Erläuerungen.
+
  
Warum nochmal folgende Erläuterungen? Bei der Installtion/Konfiguration habe ich feststellen müssen, dass einige Einstellungen nicht ausreichend in den Artikeln beschrieben wurden (bzw. es waren nicht mehr alle Hefte vorhanden). Auf dem Heise-Server ist für dieses Projekt ein eigenes [http://www.heise.de/ct/foren/go.shtml?list=1&forum_id=73366 Forum] eingerichtet worden. Dieser Wiki-Artikel soll zusammenfassend die Besonderheiten behandeln, welche man natürlich auch aus den genannten Quellen mühsam zusammensuchen könnte. Es besteht aber auch nicht der Anspruch eine vollständige Doku zu dem Thema abzuliefern!
+
== Ein schlanker Usenet-Server ==
  
Folgende Dienste sollen dabei betrachtet werden, die ich (Uwe) auf meinem Homeserver vorgesehen habe:
+
===Allgemeines===
* Mail-Server
+
* News-Server
+
* Samba-Server
+
* FTP-Server
+
* WEB-Server (mit php)
+
* mySQL-Datenbank
+
* LDAP
+
 
+
 
+
Der Vollständigkeit halber sei erwähnt, dass noch weitere solcher Serverprojekte existieren. An erster Stelle sei das [http://www.eisfair.org EisFair-Projekt] genannt, welches im deutschsprachigen Raum sehr weit verbreitet ist. Es bietet dem Einsteiger eine einfache und kompakte Installation/Administration, ist aber deshalb auch gegenüber Sonderwüschen etwas unflexibel.
+
 
+
== Installation und Konfiguration ==
+
 
+
=== Allgemeine Bemerkungen ===
+
Die Installation der c't-Server-Distribution ist an das aktuelle Debian (sarge) angelehnt und birgt keine Überraschungen. Der Umfang der Software-Pakete ist begrenzt, es ist aber möglich sich aus "offiziellen" Debian-Quellen mit dem fehlenden zu versorgen. Man erweitert die Datei ''/etc/apt/sources.list'' um den entsprechenden Eintrag eines Debian-Paketservers, z.B.:
+
 
+
deb http://ftp.de.debian.org/debian/ stable main contrib
+
 
+
Man kann auch weitere solcher Server eintragen. Mittels apt-get, aptitude usw. sind jetzt auch Pakete aus diesen Quelle installierbar (eine Internetverbindung natürlich vorausgesetzt...).
+
 
+
Zusätzlich kommt ein "heise-eigenes" Konfigurationsprogramm ''ctsrvcfg'' mit. Hier kann man weitere Pakete von der CD installieren sowie einige Grundeinstellungen vornehmen. Auf der CD befindet sich auch eine halbwegs aktuelle Version von [http://www.webmin.com WEBMIN], mit der man die meisten Dinge auf dem Server via Browser administrieren kann. Es ist auch möglich über die eigene Oberfläche (Webmin -> Webmin Configuration -> Upgrade Webmin) auf den neuesten Stand zu bringen.
+
 
+
=== News-Server ===
+
 
Ein News-Server muss her, um die Neuigkeiten aus dem Usenet lesen zu können! Eine wichtige Anforderung für mich ist, dass man mehrere externe News-Server im Internet abfragen kann. Aus diesem Grund scheidet schon mal das weit verbreitete [http://www.leafnode.org Leafnode] aus! Dies können aber z.B. [http://www.isc.org/products/INN/ INN (InterNetNews)] oder auch [http://www.infa.abo.fi/~patrik/sn/ SN (Small News)]. Ich habe mich letztendlich für SN entschieden, da das Einrichten und die Administration einfacher als bei INN ist.
 
Ein News-Server muss her, um die Neuigkeiten aus dem Usenet lesen zu können! Eine wichtige Anforderung für mich ist, dass man mehrere externe News-Server im Internet abfragen kann. Aus diesem Grund scheidet schon mal das weit verbreitete [http://www.leafnode.org Leafnode] aus! Dies können aber z.B. [http://www.isc.org/products/INN/ INN (InterNetNews)] oder auch [http://www.infa.abo.fi/~patrik/sn/ SN (Small News)]. Ich habe mich letztendlich für SN entschieden, da das Einrichten und die Administration einfacher als bei INN ist.
  
Die Installation von SN beschränkt sich auf das Installieren des entsprechenden Debian-Paketes (es befindet sich nicht auf der c't-CD). Der Installer richtet alles Nötige ein (ua. auch den entsprechenden Eintrag in der initd.conf) und startet den Dienst, der dafür verantwortlich ist, dass man sich mittels eines News-Reader via nntp mit dem Server verbinden kann.
+
Besonderheit von SN ist, dass es keine eigentliche Konfigurationsdatei gibt. Entsprechende Aktionen werden durch Einträge im Dateisystem (''/var/spool/sn/...'') und verschiedene Tools ausgelöst. Hier die wichtigsten Dinge (alles weitere ist den sn-Manpages zu entnehmen...):
 
+
Besonderheit von SN ist, dass es keine eigentliche Konfigurationsdatei gibt. Entsprechende Aktionen werden durch Einträge im Dateisystem (''/var/spool/sn/...'') und verschiedene Tools ausgelöst. Hier die wichtigsten Dinge (alles weitere ist in den Manpages zu sn zu finden...):
+
 
+
 
+
'''Abonnieren einer Newsgroup''':
+
  
 +
===Abonnieren einer Newsgroup===
 
Das Abbonieren einer News-Group erfolgt, einmalig für jede gewünschte Gruppe, mit dem Kommando ''snnewgroup'':
 
Das Abbonieren einer News-Group erfolgt, einmalig für jede gewünschte Gruppe, mit dem Kommando ''snnewgroup'':
 
  snnewgroup de.comp.gnu news.freenet.de 119
 
  snnewgroup de.comp.gnu news.freenet.de 119
Zeile 42: Zeile 14:
  
  
'''Runterladen von News-Artikeln''':
+
===Runterladen von News-Artikeln===
 
+
 
Die Artikel werden mit dem Kommando
 
Die Artikel werden mit dem Kommando
 
  snget
 
  snget
von allen vorher mit ''snnewgroup'' angegebenen News-Gruppen geladen. Es bietet sich an, ''snget'' zyklisch via cron-Job zu starten, um die Aktualisierung zu automatisieren.
+
von allen vorher mit ''snnewgroup'' angegebenen News-Gruppen geladen (empfangen '''und''' senden). Es bietet sich an, ''snget'' zyklisch via cron-Job zu starten, um die Aktualisierung zu automatisieren.
 
+
 
+
'''Löschen einer abonnierten News-Gruppe''':
+
  
 +
===Löschen einer abonnierten News-Gruppe===
 
Mittels Kommando ''sndelgroup'', also z.B.
 
Mittels Kommando ''sndelgroup'', also z.B.
 
  sndelgroup de.comp.gnu
 
  sndelgroup de.comp.gnu
Zeile 56: Zeile 25:
  
  
'''Laden der gesamten Gruppen-Liste eines News-Server''':
+
===Laden der gesamten Gruppen-Liste eines News-Server===
 
+
 
Diese Vorgang ist in ''snget'' integriert, wenn das Tool eine Datei ''request-list'' im ''.outgoing''-Verzeichnis des entsprechenden News-Server findet. Inhalt der Datei sollte ein weiterverarbeitender Befehl sein, der die News-Gruppen-Liste von Standard-Input erwartet (ich finde diese Idee genial!). Z.B. könnte dies folgendes sein:
 
Diese Vorgang ist in ''snget'' integriert, wenn das Tool eine Datei ''request-list'' im ''.outgoing''-Verzeichnis des entsprechenden News-Server findet. Inhalt der Datei sollte ein weiterverarbeitender Befehl sein, der die News-Gruppen-Liste von Standard-Input erwartet (ich finde diese Idee genial!). Z.B. könnte dies folgendes sein:
 
  echo 'sort -o /tmp/gruppenliste-news.freenet.de' > /var/spool/sn/.outgoing/news.freenet.de:119/request-list
 
  echo 'sort -o /tmp/gruppenliste-news.freenet.de' > /var/spool/sn/.outgoing/news.freenet.de:119/request-list
Zeile 63: Zeile 31:
  
  
 +
===...und weiter?===
 
Das soll an dieser Stelle erstmal genügen, alles weitere ist in den Manpages zu sn und seinen Tools zu finden bzw. in der Datei ''INSTALL.run'' des Source-Paketes, welches von oben verlinkter sn-Homepage bezogen werden kann (ist im Debian-Binary ebenfalls diese Datei als Doku dabei?). Es sei darauf hingewiesen, dass man sich auch um die Entsorgung bereits gelesenener News-Artikel kümmern sollte, um die Größe des Verzeichnis ''/var/spool/sn/'' nicht ins Unendliche laufen zu lassen. Auch hier gibt es Mechanismen innerhalb der Tool-Sammlung von sn....
 
Das soll an dieser Stelle erstmal genügen, alles weitere ist in den Manpages zu sn und seinen Tools zu finden bzw. in der Datei ''INSTALL.run'' des Source-Paketes, welches von oben verlinkter sn-Homepage bezogen werden kann (ist im Debian-Binary ebenfalls diese Datei als Doku dabei?). Es sei darauf hingewiesen, dass man sich auch um die Entsorgung bereits gelesenener News-Artikel kümmern sollte, um die Größe des Verzeichnis ''/var/spool/sn/'' nicht ins Unendliche laufen zu lassen. Auch hier gibt es Mechanismen innerhalb der Tool-Sammlung von sn....
 
=== Mail-Server ===
 
==== Allgemeines====
 
 
Vorab möchte ich bemerken, dass ich eigentlich keine Ahnung zum Thema Mailserver habe. Also bitte keine weiterreichenden Fragen zu diesem Themenkomplex! Hier wird hier nur das beschrieben, was gemacht werden muß um Mails empfangen/senden zu können.
 
 
In der Folge werden Besonderheiten zu den einzelnen Komponenten des Mail-Systemes beschrieben. Meldungen (Fehler, Warnungen oder nur Infos) der einzelnen Programme sind in folgenden Log-Dateien unter ''/var/log/'' zu finden:
 
* mail.info
 
* mail.warn
 
* mail.err
 
* mail.log
 
 
Schaltet man in den einzelnen Konfigurationen der Module das Mitschreiben im syslog nicht aus, landen die Meldungen auch in ''/var/log/syslog''.
 
 
Es ist natürlich auch möglich eigene Log-Dateien (z.B. für jedes eigene Modul) zu konfigurieren. Dies ist dann in den einzelnen Einstellungen der entsprechenden Programme zu machen (und wird hier auch nicht weiter beschrieben).
 
 
==== Fetchmail ====
 
[http://www.catb.org/~esr/fetchmail/ Fetchmail] ist im Mail-System dafür verantwortlich, die Mails vom Provider abzuholen. Das entsprechende Paket ist auf der CD enthalten, die Konfiguration ist relativ einfach.
 
 
Zum einen ist es z.B. möglich mittels WEBMIN-Oberfläche jedes einzelne abzuholende externe Postfach einzutragen. Die entsprechend erzeugten Konfigurationsfiles (''.fetchmailrc'') landen in den Home-Verzeichnissen der User. Um das Abholen der Mails zu automatisieren muß man entsprechende CRON-Jobs einstellen.
 
 
Die zweite und elegantere Methode ist die systemweite Automatisierung des Abholens aller konfigurierten Mailboxen mit einem Schlag. Findet fetchmail beim Start eine Datei ''/etc/fetchmailrc'' startet das Programm als daemon, welcher dann zyklisch (Zyklus konfigurierbar) alle Mailboxen abklappert. Hier eine typische ''/etc/fetchmailrc'' (die Bedeutung ist in den einschlägigen Dokus zu fetchmail nachlesbar!):
 
 
set daemon 1800
 
set no syslog
 
defaults
 
  proto POP3
 
  timeout 90
 
  limit 4096000
 
  warnings 86400
 
poll pop3.web.de
 
  user "mailuser" password "mailpasswort" is "lokaleruser"
 
poll pop3.andererserver.de
 
  user "anderermailuser" password "anderesmailpasswort" is "andererlokaleruser"
 
 
Das sollte es eigentlich gewesen sein. Fehlermeldungen sind in den oben erwähnten Log-Dateien zu finden.
 
 
==== Squirrelmail ====
 
Bei [http://www.squirrelmail.org/ Squirrelmail] handelt es sich um ein WEB-Frontend (geschrieben in php), welches auf die IMAP-Mailboxen auf dem Server via Browser zugreifen kann. Das Paket gehört zum Umfang der c't-Distribution, muss aber nach der Installation noch konfiguriert werden, was allerdings in den c't-Dokumentationen nur stiefmütterlich behandelt wird.
 
 
Folgende Dinge sind nach der Installation zu tun:
 
 
* '''php4 installieren:''' Es wird zwar bei der Grundinstallation php4 installiert, es fehlen aber die notwendigen Libs für den Apache2, welche auch nicht in der c't-Distribution enthalten sind. Heißt also von einem Debian-Paketserver (siehe oben) das Paket ''libapache2-mod-php4'' nachinstallieren. Die Installationsroutine des Paketes erledigt alles weitere.
 
 
* '''Apache2 für Squirrelmail konfigurieren:''' Man steht vor der Frage "Mit welche URL rufe ich eigentlich den WEB-Mailer auf?". Ein Blick in die Apache-Konfiguration zeigt, dass noch etwas getan werden muß -> es fehlt der entsprechende Alias. Unter Apache2 spielt sich dies nicht mehr in den bekannten Konfigurationsfiles ab. Vielmehr kopiert man die Datei ''/etc/squirrelmail/apache.conf'' in das Verzeichnis ''/etc/apache2/conf.d/''. Am besten, man benennt diese Datei dort auch gleich noch um (z.B. ''squirrelmail.conf''), denn es werden im Laufe der Zeit bestimmt noch ein paar mehr solcher Konfigurationen dazu kommen. Der Dateiname ist egal, es werden alle Dateien aus diesem Verzeichnis beim Start des Indianers eingelesen. Nun kann man das WEB-Mailfrontend via http://servername/squirrelmail/ in einem Browser aufrufen.
 
 
* '''Apache2 neu starten:''' Nach obigen beiden Punkten ist es angebracht, dass der Apache2 neu gestartet wird, damit die Konfigurationsänderungen wirksam werden. Entweder bootet man dazu den ganzen Rechner durch oder, eleganter, nur den Dienst ansich mittels Kommando ''/etc/init.d/apache2 restart''.
 
 
* '''Squirrelmail selbst initial konfigurieren:''' Hat man obige Schritte erfolgreich absolviert, ist Squirrelmail schon mal aufrufbar und nach dem einloggen wird auch der Inhalt der entsprechenden Mailbox angezeigt. Nur einige Links zeigen ins Nirevana. Dies kann man beheben, indem einmalig das Konfigurationsscript des WEB-Mailers auf der Konsole aufgerufen wird und die folgenden Fragen entsprechend beantwortet. Der Name dieses (Perl-)Script lautet ''/usr/sbin/squirrelmail-configure'' (bzw. es existiert ein Verweis ''/usr/share/squirrelmail/config/conf.pl''). Später kann man die diversen Einstellungen auch in der WEB-Oberfläche (Menü-Punkt "Optionen") vornehmen/ändern.
 
 
====Links zu dem Thema ====
 
* [http://www.schiessle.org/howto/debian-imap-howto/debian-imap-howto.html FETCHMAIL-PROCMAIL-POSTFIX-CYRUS-IMAP HOWTO]
 
* [http://www.delouw.ch/linux/Postfix-Cyrus-Web-cyradm-HOWTO-depricated/html/index.html Postfix-Cyrus-Web-cyradm-HOWTO]
 
* [http://www.linuxforen.de/forums/showthread.php?t=30158 mailserver (postfix, cyrus imap, fetchmail)]
 
* [http://www.dslteam.de/forum/archive/index.php/t-84859kleinen_mailserver_einrichten.html kleinen mailserver einrichten]
 
 
== '''Dieser Wiki-Beitrag wird fortgesetzt...''' ==
 

Aktuelle Version vom 8. Februar 2008, 02:03 Uhr


Inhaltsverzeichnis

[Bearbeiten] Ein schlanker Usenet-Server

[Bearbeiten] Allgemeines

Ein News-Server muss her, um die Neuigkeiten aus dem Usenet lesen zu können! Eine wichtige Anforderung für mich ist, dass man mehrere externe News-Server im Internet abfragen kann. Aus diesem Grund scheidet schon mal das weit verbreitete Leafnode aus! Dies können aber z.B. INN (InterNetNews) oder auch SN (Small News). Ich habe mich letztendlich für SN entschieden, da das Einrichten und die Administration einfacher als bei INN ist.

Besonderheit von SN ist, dass es keine eigentliche Konfigurationsdatei gibt. Entsprechende Aktionen werden durch Einträge im Dateisystem (/var/spool/sn/...) und verschiedene Tools ausgelöst. Hier die wichtigsten Dinge (alles weitere ist den sn-Manpages zu entnehmen...):

[Bearbeiten] Abonnieren einer Newsgroup

Das Abbonieren einer News-Group erfolgt, einmalig für jede gewünschte Gruppe, mit dem Kommando snnewgroup:

snnewgroup de.comp.gnu news.freenet.de 119

de.comp.gnu ist die gewünschte News-Gruppe, news.freenet.de der News-Server und 119 der Port des News-Server. Es werden einige Verzeichnisse und Dateien unter oben genannten SN-Homeverzeichnis angelegt, aber noch keine News-Artikel geladen. Dieses Kommando muss man nun für jede News-Gruppe, deren Artikel man lesen möchte, ausführen. Es können ohne weiteres auch Gruppen von anderen News-Servern sein.


[Bearbeiten] Runterladen von News-Artikeln

Die Artikel werden mit dem Kommando

snget

von allen vorher mit snnewgroup angegebenen News-Gruppen geladen (empfangen und senden). Es bietet sich an, snget zyklisch via cron-Job zu starten, um die Aktualisierung zu automatisieren.

[Bearbeiten] Löschen einer abonnierten News-Gruppe

Mittels Kommando sndelgroup, also z.B.

sndelgroup de.comp.gnu

kann man das Abbo einer News-Gruppe auch wieder entsorgen (Achtung, eswerden auch alle bisher geladenen Artikel gelöscht!).


[Bearbeiten] Laden der gesamten Gruppen-Liste eines News-Server

Diese Vorgang ist in snget integriert, wenn das Tool eine Datei request-list im .outgoing-Verzeichnis des entsprechenden News-Server findet. Inhalt der Datei sollte ein weiterverarbeitender Befehl sein, der die News-Gruppen-Liste von Standard-Input erwartet (ich finde diese Idee genial!). Z.B. könnte dies folgendes sein:

echo 'sort -o /tmp/gruppenliste-news.freenet.de' > /var/spool/sn/.outgoing/news.freenet.de:119/request-list

Man erzeugt also eine Datei request-list im .outgoing-Verzeichnis des News-Servers mit dem Inhalt sort -o /tmp/gruppenliste-news.freenet.de. Nach dem Ausführen des Kommandos snget findet man die alphabetisch sortierte Liste der News-Gruppen in der Datei /tmp/gruppenliste-news.freenet.de. Auch diesen Vorgang kann man via cron oder at automatisieren...!


[Bearbeiten] ...und weiter?

Das soll an dieser Stelle erstmal genügen, alles weitere ist in den Manpages zu sn und seinen Tools zu finden bzw. in der Datei INSTALL.run des Source-Paketes, welches von oben verlinkter sn-Homepage bezogen werden kann (ist im Debian-Binary ebenfalls diese Datei als Doku dabei?). Es sei darauf hingewiesen, dass man sich auch um die Entsorgung bereits gelesenener News-Artikel kümmern sollte, um die Größe des Verzeichnis /var/spool/sn/ nicht ins Unendliche laufen zu lassen. Auch hier gibt es Mechanismen innerhalb der Tool-Sammlung von sn....

'Persönliche Werkzeuge