Xinetd via ipkg installieren

Aus Synology Wiki
Wechseln zu: Navigation, Suche

xinetd via ipkg installieren

Bei Softwareinstallationen via ipkg handelt es sich nicht um Pakete, die von Synology freigegeben worden wären. Die Installation solcher Pakete erfolgt immer auf eigenes Risiko. Ein Backup ist immer von Vorteil!

Was ist xinetd?

xinet ist ein Daemon (vergleichbar mit einem Dienst unter Windows), der für den Start anderer Dienste zuständig ist. Grundsätzlich hat man die Möglichkeit einen Dienst unter Linux als Daemon (also ein Dauerläufer) oder als Service-on-Demand einzurichten. Für den Service-on-Demand ist dann (x)inetd zuständig. Anhand von Config Files für die Dienste "weiss" (x)inetd welchen Dienst er mit welchen Parametern ansprechen soll. Per Default ist auf den DSsen der inetd installiert (er stellt z.B. telnet und swat zur Verfügung). inetd bietet leider nicht so viele Konfig Möglickeiten wie xinetd v.a. kann man mit xinetd die Zugriffe auf den Dienst sehr fein beschränken. Vorteil beim Einsatz von (x)inetd ist es, dass die Dienst zur gestartet werden, wenn ein Client diesen Dienst auch in Anspruch nehmen will. Das bedeutet weniger v.a. Speicherverbrauch durch dauernd laufende Daemons

Voraussetzungen

  • ipkg für die jeweilige Prozessorarchitektur ist installiert
  • Zugriff auf die Shell Konsole via telnet oder ssh als root
  • Texteditor mit korrekten UNIX-Zeilenendzeichen (\n und nicht \r\n): z.B. vi oder nano auf der DS und Notepad++ für Windows

Wie man ipkg installiert steht hier in unserem Wiki, der Zugriff auf die Shell wird hier behandelt und eine Beschreibung des Editors vi ist ebenfalls vorhanden

Los geht's

Installation

Die Installation des Paketes selber ist schnell erledigt. Dies mit dem obligaten ipkg Befehl

$ ipkg update
$ ipkg install xinetd

Konfiguration

Es gibt eine globale Konfig und jeweils eine Konfiguration pro "Daemon"

/opt/etc/xinetd.conf <<-- globale Konfig-Datei
/opt/etc/xinetd.d/   <<-- Verzeichnis für Konfigs pro Dienst

Für Details zur Konfig solltet ihr mal die offizielle Webpage besuchen. Hier im Folgenden nur zwei wichtige Punkte.

  1. In der globalen Konfig ist eingetragen, dass der xinetd nur für lokale Hosts zur Verfügung steht.
  2. es werden zwei Dienst Konfigs für Samba (smb und nmd) angelegt
xinetd für alle Clients

Damit alle Clients Zugriff auf xinetd haben, sollte man die Haupt-Konfig-Datei in einem Editor öffnen und die entsprechenden Änderungen manuell vornehmen. Es geht hierbei um die Zeile only_from=. Entfernt diese Zeile komplett oder nur die IP Adressen hinter dem =. Speichert die Datei und "zwingt" xinetd mit folgendem Befehl auf der Shell

$ kill -HUP `pidof xinetd`
Default Konfigs entfernen

Bei der Installation legt xinetd wie gesagt zwei Konfigs für Samba an. Diese liegen im Verzeichnis /opt/etc/xinetd.d Öffnet beide Dateien (netbios-ns und netbios-ssn) und tragt einfach disable=yes ein. Dann den xinetd "neustarten" wie oben beschrieben

Eigene Konfig für einen Dienst

Wenn ihr einen neuen Dienst zu xinetd hinzufügen wollt, dann müsst ihr eine Konfig-Datei für diesen Dienst anlegen. Wie diese genau ausschaut ist vom Dienst abhängig. Grob gesagt ist eine Konfig immer so aufgebaut

service NAME_DES_DIENSTES
{
    socket_type    = stream
    protocol       = tcp
    wait           = no
    user           = root
    only_from      = 198.72.5.0 localhost
    banner         = /usr/local/etc/deny_banner
    server         = /path/to/bin/service
    server_args    = ARGUMENTE_FÜR_DAEMON-START
}

Je nach Dienst kann diese Datei unterschiedlich ausschauen (Beispiele gibt es auf der Homepage des Projekts) Wenn ihr nicht wisst wie die Datei für einen Dienst aufgebaut sein soll, dann gebt mal den Names des Daemons zusammen mit xinetd bei der SuMa Eurer Wahl an.

Starten des xinetd Daemons

Zum Starten des xinetd Daemons wurde bei der Installation unter /opt/etc/init.d/ ein Startscript angelegt (wenn ich mich nicht täusche, dann heisst dieses S10xinetd).

$ sh /opt/etc/init.d/S10xinetd start

ein

$ ps | grep xinetd

sollte Euch zeigen ob der Daemon läuft.