Usenet-Server SN (Small News)
Aus BraLUG-Wiki
K (→Squirrelmail) |
(→News-Server) |
||
Zeile 29: | Zeile 29: | ||
=== News-Server === | === 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! | + | 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 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 === | === Mail-Server === |
Version vom 21. August 2005, 23:38 Uhr
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 aktuelle Version von WEBMIN, mit der man die meisten Dinge auf dem Server via Browser administrieren kann.
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
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.