Usenet-Server SN (Small News)

Aus BraLUG-Wiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Motivation

Im c't-Magazin 4/2004 wurde eine Artikelserie begonnen, die das Projekt c't-Debian-Server zum Inhalt hat. Desweiteren beinhaltet das Sonderheft "special Netzwerke" eine Zusammenfassung der bisherigen Artikel. Auf der 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 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!

Folgende Dienste sollen dabei betrachtet werden, die ich (Uwe) auf meinem Homeserver vorgesehen habe:

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

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 in den Manpages zu sn zu finden...):


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.


Runterladen von News-Artikeln:

Die Artikel werden mit dem Kommando

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.


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


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


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

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

Dieser Wiki-Beitrag wird fortgesetzt...

'Persönliche Werkzeuge