GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Webmin

Netzwerkdienste und Protokolle

Dieses Kapitel behandelt die Superserver inetd und xinetd , die bei Bedarf für das Starten von Servern für Protokolle wie Telnet und FTP verantwortlich sind.

Inhalt

Einführung in Internetdienste

Stark genutzte Netzwerkdienste wie E-Mail, Proxing und Webserver werden von Serverprozessen abgewickelt, die kontinuierlich ausgeführt werden und über eigene komplexe Konfigurationsdateien und Webmin-Module verfügen. Es gibt jedoch andere Dienste wie Telnet, Finger und POP, die keine Konfiguration benötigen und keinen eigenen permanenten Serverprozess benötigen. Stattdessen werden ihre Server bei Bedarf von einem Superserver wie inetd oder xinetd betrieben, der auf mehreren Ports auf Netzwerkverbindungen lauscht. Nur wenn es eine Verbindung erhält, startet es den entsprechenden Prozess zur Kommunikation mit dem Client, der beendet wird, wenn die Verbindung geschlossen wird. Dies spart Speicherplatz, indem es die Anzahl der gleichzeitig laufenden Prozesse begrenzt, macht aber die Verarbeitung neuer Verbindungen etwas langsamer.

Jeder Dienst hat einen Kurznamen wie telnet oder pop3, eine Portnummer wie 23 oder 110 und ein Protokoll wie TCP oder UDP. Die Datei /etc/services listet alle Dienstnamen und ihre entsprechenden Portnummern auf, die Ihr System kennt, von denen möglicherweise nur wenige von einem Superserver oder anderen Server überwacht werden.

Der am häufigsten verwendete Superserver ist inetd, der von fast allen Linux-Distributionen und Unix-Varianten verwendet wird. Alle Servereinstellungen werden in der Konfigurationsdatei /etc/inetd.conf gespeichert. Zusätzlich zum Starten von Servern als Reaktion auf die TCP- und UDP-Verbindungen kann es auch RPC-Funktionsaufrufe (Remote Procedure Call) auf ähnliche Weise verarbeiten. Ein großes Manko von inetd ist seine Unfähigkeit, Verbindungen abhängig von der Client-IP-Adresse abzulehnen. Dies kann jedoch überwunden werden, indem ein zwischengeschaltetes TCP-Wrapper-Serverprogramm verwendet wird, das über eine eigene Konfigurationsdatei für die IP-Zugriffskontrolle verfügt.

Ein weiterer Superserver, der an Popularität gewinnt und mehr Funktionen hat, ist xinetd, der die Konfigurationsdatei /etc/xinetd.conf und manchmal andere Dateien im Verzeichnis /etc/xinetd.d verwendet. Wie inetd kann es Serverprozesse als Reaktion auf TCP- und UDP-Verbindungen starten, unterstützt jedoch kein RCP. Sein Hauptvorteil ist die integrierte Unterstützung für die Beschränkung von Verbindungen auf bestimmte Client-IP-Adressen, ohne dass ein separat konfiguriertes Programm erforderlich ist. Es kann auch eingehende Verbindungen an bestimmten Ports zu einem anderen Host und Port umleiten, indem es seine eigene Client-Verbindung herstellt und Daten hin und her leitet.

Da inetd und xinetd völlig unterschiedliche Konfigurationsdateien und Dateiformate haben, gibt es ein separates Webmin-Modul, um beide zu konfigurieren. Die meisten Linux-Distributionen werden mit einem oder beiden ausgeliefert, aber in einigen Fällen können beide installiert werden und friedlich nebeneinander existieren. Die einzige Einschränkung besteht darin, dass sie nicht beide gleichzeitig denselben Port abhören können.

Das Netzwerkdienste- und Protokollmodul

Dieses Modul befasst sich mit der Konfiguration von inetd und ist unter der Kategorie Networking in Webmin zu finden. Wenn das Symbol nicht sichtbar ist, hat Webmin festgestellt, dass es nicht installiert ist. Dies könnte daran liegen, dass Ihre Distribution stattdessen xinetd verwendet. In diesem Fall sollten Sie zum Abschnitt „Das erweiterte Internetdienstmodul“ springen. Wenn keines der Module sichtbar ist, suchen Sie auf Ihrer Distributions-CD oder Website nach einem inetd- oder xinetd-Paket.

Die Hauptseite des Moduls (siehe Abbildung 15-1) zeigt zwei Tabellen, eine für Internetdienste die auf TCP- oder UDP-Verbindungen reagieren, und eine für RCP-Programme . In den Internetdiensten Abschnitt werden die Namen und Protokolle aller Dienste angezeigt – in einigen Fällen kann derselbe Dienst für mehr als ein Protokoll erkannt werden. Jeder Dienst kann sich in einem von drei Zuständen befinden, was durch die Schriftart angezeigt wird, in der sein Name angezeigt wird :

Aktiviert (fett) Diesem Dienst wurde ein Serverprogramm zugewiesen, das derzeit aktiv ist.
Deaktiviert (fett-kursiv) Ein Serverprogramm wurde zugewiesen, ist aber nicht aktiv. Dies entspricht einem auskommentierten Eintrag in der Datei inetd.conf.
Nicht zugewiesen (normal) Diesem Dienst ist kein Serverprogramm zugeordnet, dh es gibt keinen inetd.conf-Eintrag dafür.

Wenn die Modulkonfigurationsoption Dienste ohne Programm anzeigen wurde auf Nein gesetzt , werden Dienste im nicht zugewiesenen Zustand nicht angezeigt. Aufgrund der großen Anzahl von Diensten, die das System kennt, ist dies bei einigen Betriebssystemen die Standardeinstellung.

Die meisten Linux-Distributionen werden standardmäßig mit fast allen Diensten im deaktivierten Zustand ausgeliefert. Dies begrenzt die Anzahl unnötiger Dienste, zu denen Ihr System Verbindungen zulässt, und reduziert somit die Wahrscheinlichkeit, dass eine Sicherheitslücke in einem der Serverprogramme von einem Angreifer ausgenutzt wird.

Die Hauptseite des Moduls Internetdienste und -protokolle

Da jeder Dienst nur mit einem kurzen Namen wie telnet oder chargen angezeigt wird, ist es für einen unerfahrenen Administrator nicht ersichtlich, was jeder von ihnen tut. Einige der häufiger verwendeten Dienste und ihre Zwecke sind:

Die Daytime-, Echo- und Chargen-Dienste für TCP- und UDP-Protokolle werden intern von inetd gehandhabt, wenn sie aktiviert sind, und nicht von einem separaten Serverprogramm.

Aktivieren eines Internetdienstes

Wenn Sie Benutzern erlauben möchten, E-Mails von Ihrem System mit dem POP3-Protokoll abzurufen oder sich über Telnet anzumelden, müssen Sie den entsprechenden Internetdienst aktivieren, falls er derzeit nicht aktiviert ist. Gehen Sie dazu wie folgt vor:

  1. Klicken Sie auf der Hauptseite des Moduls auf den Namen des Dienstes, den Sie in den Internetdiensten aktivieren möchten Tisch. Dadurch gelangen Sie zu der in Abbildung 15-2 gezeigten Seite, auf der Sie die Details bearbeiten können. Wenn nicht zugewiesene Dienste auf Ihrem System nicht angezeigt werden, können Sie den Dienstnamen eingeben und das Protokoll in den Feldern neben Dienst bearbeiten auswählen Taste. Wenn Sie auf die Schaltfläche klicken, gelangen Sie zum Bearbeitungsformular, vorausgesetzt, der Dienstname wird erkannt.
  2. Der Dienstname , Portnummer , Protokoll und Aliase sollten unverändert bleiben, es sei denn, Sie möchten den Dienst umbenennen oder den Port ändern, auf dem er lauscht. Bei Diensten, die Sie nicht selbst erstellt haben, ist das Ändern eines dieser Felder keine gute Idee, da es verhindern kann, dass Programme auf Ihrem System eine Verbindung zu anderen Servern herstellen.
  3. Im Server-Programm Abschnitt, um den Dienst zu aktivieren, wählen Sie Programm aktiviert Möglichkeit. Wenn Programm deaktiviert zuvor ausgewählt wurde, sollten alle anderen Einstellungen im Abschnitt korrekt sein und müssen nicht geändert werden. Wenn jedoch Kein Programm zugewiesen zuvor ausgewählt wurde, müssen Sie ein Serverprogramm und einen Benutzer auswählen, unter dem der Server ausgeführt werden soll. Wählen Sie das Programm aus Feld Befehl Option und geben Sie den vollständigen Pfad zum Serverprogramm in das Feld daneben ein, z. B. /usr/sbin/in.ftpd. In den Argumenten Geben Sie den Serverbefehl erneut und alle erforderlichen Argumente ein, z. B. in.ftpd –l –a. Obwohl der Programmpfad im Befehl steht Feld muss der Programmname in den Args erscheinen Feld ebenso. Sie müssen einen Benutzer für das auszuführende Serverprogramm in Als Benutzer ausführen eingeben Feld. Bei fast allen Servern ist dies root. Einer der Wartemodi Optionen müssen ebenfalls gesetzt werden – es sei denn, der Server läuft und wird sehr schnell ausgeführt, wählen Sie Nicht warten . Einige Dienste wie Daytime, Echo, Chargen und Discard werden intern von inetd übergeben. Wenn Sie einen von ihnen aktivieren, wählen Sie einfach Internal to inetd . Es müssen keine Programme oder Argumente eingegeben werden, und der Benutzer, unter dem der Server ausgeführt wird, ist irrelevant.
  4. Wenn Sie fertig sind, klicken Sie auf die Schaltfläche Speichern. Solange keine Fehler vorliegen und das gewählte Serverprogramm tatsächlich existiert, kehrt der Browser zur Liste der Dienste auf der Hauptseite zurück.
  5. Klicken Sie auf Änderungen übernehmen Schaltfläche unten auf der Seite, um Ihre Änderungen zu aktivieren.
Figure 15-2 “Editing an internet service” 

In einigen Fällen können Sie einen Dienst nicht aktivieren, weil das entsprechende Serverprogramm noch nicht installiert ist. Verwenden Sie in diesem Fall das Softwarepaketmodul, um es von Ihrer Linux-Distributions-CD oder -Website zu installieren.

Wenn Sie einen Dienst deaktivieren möchten, befolgen Sie einfach die gleichen Schritte, wählen Sie jedoch Programm deaktiviert aus Option statt. Dies ist besser als die Auswahl von Kein Programm zugewiesen da es einfach ist, den Dienst wieder einzuschalten, ohne die Details des Serverprogramms erneut eingeben zu müssen.

Erstellen Sie Ihren eigenen Internetdienst

In manchen Situationen möchten Sie vielleicht einen neuen Server zu Ihrem System hinzufügen, der auf einem Port lauscht, der keinem anderen zugewiesen ist. Vielleicht möchten Sie einen Telnet-Server auf einem nicht standardmäßigen Port ausführen oder den Datenverkehr mit einem Programm wie nc von einem Port auf Ihrem System zu einem anderen Server umleiten. Wenn Sie nur versuchen, einen Standarddienst wie ftp oder imap zu aktivieren, sind die Anweisungen in diesem Abschnitt nicht für Sie – lesen Sie stattdessen den Abschnitt „Aktivieren eines Internetdienstes“.

Gehen Sie wie folgt vor, um einen neuen Dienst zu erstellen:

  1. Klicken Sie auf der Hauptseite des Moduls auf den Link *Neuen Internetdienst erstellen*. Dadurch gelangen Sie zum Diensterstellungsformular, das dem Bearbeitungsformular in Abbildung 15-2 ähnelt.
  2. Geben Sie den Dienstnamen ein Feld mit einem eindeutigen Namen für Ihren Dienst.
  3. Geben Sie die Portnummer, mit der der Dienst verknüpft werden soll, in die Portnummer ein Feld.
  4. Wählen Sie das Protokoll aus dem Protokoll aus aufführen. Dies wird fast immer TCP sein, aber in einigen Fällen müssen Sie möglicherweise UDP verwenden.
  5. Geben Sie alle alternativen Namen, mit denen auf den Dienst verwiesen werden soll, in die Aliase ein Feld.
  6. Angenommen, Sie möchten ein Serverprogramm mit diesem Dienst verknüpfen, wählen Sie Programm aktiviert Option im Serverprogramm Sektion. Andernfalls wird lediglich eine Zuordnung zwischen einem Dienstnamen und einer Portnummer erstellt.
  7. Für das Programm Wählen Sie im Feld Befehl aus Option und geben Sie den vollständigen Pfad zum Serverprogramm in das Feld daneben ein – zum Beispiel /usr/local/bin/someserver. In den Argumenten Geben Sie im Feld den Programmnamen und alle Befehlszeilenargumente ein, mit denen es ausgeführt werden soll, z. B. someserver –foo. Um ein weiteres Beispiel zu geben:Wenn Sie einen Dienst erstellen möchten, der alle auf Ihrem System laufenden Prozesse für jeden anzeigt, der sich über Telnet verbindet, können Sie den Befehl setzen nach /bin/ps und die Args zu ps auxwww. Aus Sicherheitsgründen wäre dies jedoch eine schlechte Idee.
  8. Wenn das Serverprogramm länger als eine Sekunde zum Ausführen braucht oder wenn es Eingaben akzeptiert, stellen Sie den Wartemodus ein Feld auf Nicht warten . Andernfalls unterbricht inetd die Behandlung neuer Netzwerkverbindungen, bis das Programm beendet ist. Der einzige Vorteil dabei:Warten Sie, bis der Vorgang abgeschlossen ist Modus ist eine leichte Reduzierung der Speichernutzung.
  9. Geben Sie den Benutzernamen des Unix-Benutzers, unter dem das Serverprogramm ausgeführt werden soll, in das Feld Als Benutzer ausführen ein Feld. Dies ist normalerweise root, kann aber jeder sein.
  10. Um die Rate zu begrenzen, mit der inetd Verbindungen für Ihren Dienst akzeptiert, geben Sie eine Zahl in das Feld Max. pro Minute ein Feld. Wenn das Limit überschritten wird, werden nachfolgende Verbindungen bis zur nächsten Minute abgelehnt.
  11. Standardmäßig ist die Gruppe, als die das Serverprogramm ausgeführt wird, die primäre Gruppe des Benutzers, der in Als Benutzer ausführen festgelegt ist Feld. Um dies zu ändern, geben Sie einen Gruppennamen in das Feld Als Gruppe ausführen ein Feld.
  12. Klicken Sie auf Erstellen Schaltfläche, um Ihren Dienst zu erstellen. Solange das Formular fehlerfrei ist, kehren Sie zur Liste der Dienste auf der Hauptseite zurück.
  13. Klicken Sie auf Änderungen übernehmen Schaltfläche, um den Dienst zu aktivieren.

Nachdem ein Dienst erstellt wurde, können Sie ihn testen, indem Sie telnet localhost portnumber ausführen an der Shell-Eingabeaufforderung Ihres Systems. Sie können Ihren Dienst jederzeit bearbeiten, indem Sie auf der Hauptseite auf seinen Namen klicken und die Optionen ändern, bevor Sie auf Speichern klicken – oder Löschen wenn du es loswerden willst. Nachdem Sie Änderungen vorgenommen haben, klicken Sie auf Änderungen übernehmen Schaltfläche muss verwendet werden, um sie zu aktivieren,

Erstellen und Bearbeiten von RPC-Programmen

RPC ist ein Protokoll und Datenformat, das die Grundlage für andere Protokolle wie NFS und NIS bildet. RPC-Clients führen Funktionsaufrufe an RPC-Server durch, übergeben Parameter und erhalten Ergebnisse zurück. Für den Client oder Server ist das Ausführen eines entfernten Prozeduraufrufs nicht schwieriger als das Aufrufen einer normalen Bibliotheksfunktion, was das Schreiben von Programmen, die RPC verwenden, viel einfacher macht, als ein eigenes Protokoll von Grund auf neu zu erstellen.

Ein RPC-Programm ist eine Reihe von Funktionen, die von einem Server verarbeitet werden. Jedes Programm hat eine eindeutige Nummer, ähnlich dem Port eines Internetdienstes. Programme sind keinem bestimmten Protokoll zugeordnet, da sie generell Verbindungen und Funktionsaufrufe über UDP oder TCP annehmen können. Es hat auch keinen festen Port, da sie bei Bedarf dynamisch zugewiesen werden.

RPC-Server (wie die NIS- und NFS-Server), die eine große Menge an Datenverkehr verarbeiten, haben ihre eigenen Prozesse, die ständig ausgeführt werden. Einige Server, die nur gelegentlich ausgeführt werden müssen, können stattdessen von inetd nur bei Bedarf ausgeführt werden – genau wie bei selten genutzten Internetdiensten. Einige der häufiger verwendeten RPC-Programme sind:

Auf einigen Systemen können diese RPC-Programme von Servern gehandhabt werden, die nicht von inetd, sondern als eigenständige Prozesse ausgeführt werden. In diesem Fall ist das Bootup and Shutdown-Modul (erklärt in Kapitel 9) der Ort, um es zu aktivieren oder zu deaktivieren. Aufgrund der geringen Anzahl gängiger RPC-Programme und ihrer begrenzten Nützlichkeit haben viele Linux-Distributionen standardmäßig keine Programme in der inetd-Konfiguration aktiviert oder deaktiviert. Auf anderen Betriebssystemen wie Solaris ist dies jedoch nicht der Fall.

Wenn Sie ein derzeit nicht aktiviertes RPC-Protokoll verwenden möchten, können Sie es mit diesem Modul aktivieren. Natürlich muss zuerst das entsprechende RPC-Serverprogramm installiert werden, und inetd auf Ihrem System muss RPC-Programme unterstützen. In diesem Fall sind die folgenden Schritte auszuführen:

  1. Klicken Sie auf der Hauptseite des Moduls auf den Programmnamen aus den RPC-Programmen Tisch. Dadurch gelangen Sie zu dem Programmbearbeitungsformular, das in Abbildung 15-3 gezeigt wird.
  2. Unter dem Server-Programm Wählen Sie im Abschnitt *Programm aktiviert* die Option *Programm aktiviert*. Wenn Programm deaktiviert zuvor ausgewählt wurde, sollten alle anderen Einstellungen im Abschnitt korrekt sein und müssen nicht geändert werden. Wenn jedoch Kein Programm zugewiesen angekreuzt wurde, müssen Sie mehrere weitere Felder ausfüllen. Die RPC-Versionen sollte auf den Bereich der Versionen gesetzt werden, die das Serverprogramm unterstützt, z. B. 1_ – _3 . Das Feld *Socket-Typ* sollte auf Datagramm eingestellt sein , und das Protokoll Feld nur auf udp gesetzt Möglichkeit. Für das Server-Programm Geben Sie im Feld den vollständigen Pfad zum RPC-Programm ein, z. B. /usr/sbin/rpc.rusersd. Für den Befehl Geben Sie im Feld etner den Programmnamen und alle Argumente ein, z. B. rpc.rusersd –a. Für den Wartemodus , wählen Sie *Nicht warten*. Geben Sie im Feld Als Benutzer ausführen den Benutzernamen ein, unter dem das Serverprogramm ausgeführt werden soll – normalerweise root.
  3. Wenn Sie fertig sind, klicken Sie auf Speichern Taste. Solange Ihre Eingabe fehlerfrei ist, kehren Sie zur Hauptseite des Moduls zurück, wo das RPC-Programm als aktiviert erscheinen sollte.
  4. Klicken Sie auf Änderungen übernehmen Taste, um das Programm zu aktivieren.
Figure 15-3 “The RPC program editing form” 

Konfigurieren des Internetdienste- und Protokollmoduls

Um auf die konfigurierbaren Optionen des Moduls Internetdienste zuzugreifen, klicken Sie auf Modulkonfiguration Link in der linken oberen Ecke der Hauptseite. Dadurch gelangen Sie zum Standard-Konfigurationsformular, auf dem Sie die folgenden Optionen ändern können:

Die restlichen Modulkonfigurationsoptionen unter Systemkonfiguration werden automatisch von Webmin basierend auf Ihrem Betriebssystemtyp festgelegt und sollten daher nicht geändert werden.

Andere Betriebssysteme

Fast alle Versionen von Unix enthalten standardmäßig inetd und verwenden es, um selten ausgeführte Serverprogramme zu starten, genau wie Linux. Das Format und die Funktionen der Konfigurationsdatei sind jedoch auf anderen Betriebssystemen etwas anders, was bedeutet, dass die Benutzeroberfläche des Moduls nicht genau gleich ist. Die Hauptseite wird immer Listen von Internet- und RPC-Diensten zeigen, aber wenn Sie einen Dienst bearbeiten oder erstellen, werden je nach Unix-Variante, die Sie ausführen, verschiedene Felder und Optionen verfügbar sein:

Sonne Solaris
Beim Bearbeiten eines Internetdienstes, *Max pro Minute* und Als Gruppe ausführen Felder sind nicht verfügbar. - Solaris-Versionen 8 und höher unterstützen IPv6 TCP- und UDP-Protokolle sowie das von Linux verwendete Standard-IPv4. - Viele RPC-Dienste existieren standardmäßig im deaktivierten Zustand für Dinge wie NFS-Quoten und Sperren.
FreeBSD
RPC-Diensten können keine Programme zugewiesen werden. Sie können lediglich die Dienstnamen und Programmnummern bearbeiten. - Beim Bearbeiten oder Erstellen eines Dienstes können Sie die Anzahl der Serverprogramme, die gleichzeitig aktiv sein können, mit der Maximale untergeordneten Prozesse steuern Feld. - Auch bei der Bearbeitung können Sie mit Als Login-Klasse ausführen die Login-Klasse einstellen, als die das Serverprogramm ausgeführt wird Feld.
NetBSD
Wie bei FreeBSD sind die Felder *Max Child Processes und *Execute as Login Class* beim Bearbeiten oder Erstellen eines Dienstes verfügbar. - Wie bei Solaris können Internetdienste IPv6 TCP- und UDP-Protokolle verwenden.

OpenBSD , Compaq Tru64/OSF1 , IBM AIX , SCO OpenServer und SCO UnixWare

Wie bei Solaris, *Max Per Minute und Als Gruppe ausführen-Felder sind nicht verfügbar.
SGI Irix
Das Maximum pro Minute und Als Gruppe ausführen Felder sind beim Bearbeiten eines Dienstes nicht verfügbar. - Unterhalb des Serverprogramms Command befindet sich eine zusätzliche Checkbox Feld mit der Bezeichnung *Kommando darf nicht existieren?*, das, wenn es gesetzt ist, inetd anweist, den Dienst zu ignorieren, wenn das Serverprogramm nicht installiert ist. Standardmäßig ist dies für viele Dienste im Zusammenhang mit Irix-Paketen aktiviert, die nicht standardmäßig installiert sind.
HP/UX
Auf HP/UX hat das Modul genau die gleichen Optionen wie Linux.
Apple MacOS X
Wie bei Solaris sind die Felder *Max pro Minute und *Als Gruppe ausführen* nicht verfügbar. - RPC-Diensten können keine Programme zugewiesen werden, wie bei FreeBSD. - Anstatt dass die Datei /etc/services zum Speichern von Dienstnamen und Ports verwendet wird, befinden sie sich in einer NetInfo-Tabelle. Webmin sichert diese Tabelle und lädt sie neu, um Dienste zu lesen und zu bearbeiten.

Webmin
  1. So legen Sie eine statische IP-Adresse fest und konfigurieren das Netzwerk unter Linux

  2. So verwalten und listen Sie Dienste in Linux auf

  3. Linux-Grundlagen - Statische IP- und Netzwerkkonfiguration unter Debian Linux

  4. Gewusst wie:MTR – Netzwerkkonnektivität verstehen und Fehler beheben

  5. Testen von Netzwerkdiensten mit Netcat

Einführung in VPN und hier erfahren Sie, wie Sie es unter Linux verwenden

So starten Sie Netzwerkdienste unter Linux neu

Festplatten- und Netzwerkdateisysteme

Netzwerkdienste

SmarterMail und E-Mail-Sicherheitsdienste von Drittanbietern

Wie vernetzt man Ubuntu und Windows 10?