Die Transportschichtprotokolle TCP, SCTP und UDP sind Teil des standardmäßigen Oracle Solaris-Pakets. Zur ordnungsgemäßen Ausführung dieser Protokolle ist in der Regel kein Benutzereingriff erforderlich. Dennoch können Umstände an Ihrem Standort es erfordern, die über Transportschichtprotokolle ausgeführten Services zu protokollieren oder zu bearbeiten. Anschließend müssen Sie die Profile für diese Services mithilfe der Service Management Facility (SMF) ändern. Die SMF wird in Kapitel 18, Managing Services (Overview) in System Administration Guide: Basic Administration erläutert.
Der inetd-Daemon ist für das Starten der Internet-Standardservices beim Booten eines Systems verantwortlich. Diese Services umfassen Anwendungen, die TCP, SCTP oder UDP als Transportschichtprotokoll verwenden. Sie können entweder die vorhandenen Internet-Services ändern oder mithilfe der SMF-Befehle neue Services hinzufügen. Weitere Informationen zum inetd-Daemon finden Sie unter inetd Internet Services-Daemon.
Vorgänge, die Transportschichtprotokolle erfordern, sind z. B.:
Das Protokollieren aller eingehenden TCP-Verbindungen
Das Hinzufügen von Services, die über ein Transportschichtprotokoll ausgeführt werden, z. B. mit SCTP
Das Konfigurieren der TCP-Wrappers Facility für die Zugangskontrolle
Ausführliche Informationen zum inetd-Daemon finden Sie in der Manpage inetd(1M).
Nehmen Sie auf dem lokalen System die Rolle eines Netzwerkmanagers an, oder melden Sie sich als Superuser an.
Rollen umfassen Autorisierungen und privilegierte Befehle. Weitere Informationen zu Rollen finden Sie unter Configuring RBAC (Task Map) in System Administration Guide: Security Services.
Aktivieren Sie die TCP-Verfolgung für alle Services, die vom inetd-Daemon verwaltet werden.
# inetadm -M tcp_trace=TRUE |
Das SCTP-Transportprotokoll stellt den Protokollen auf der Anwendungsschicht Services ähnlich dem TCP bereit. SCTP ermöglicht jedoch die Kommunikation zwischen zwei Systemen, von denen entweder eines oder beide Multihomed-Hosts sein können. Die SCTP-Verbindung wird als Assoziation bezeichnet. Bei einer Assoziation teilt eine Anwendung die zu übertragenden Daten in einen oder mehrere Datenströme oder Mehrfach-Datenströme (multi-streamed) auf. Eine SCTP-Verbindung kann zu Endpunkten mit mehreren IP-Adressen führen, wodurch diese Verbindungsart insbesondere für Telefonieanwendungen wichtig ist. Wenn IP Filter oder IPsec an Ihrem Standort eingesetzt werden, müssen die Multihoming-Fähigkeiten von SCTP in die Sicherheitsbetrachtungen einbezogen werden. Einige dieser Überlegungen sind in der Manpage sctp(7P) beschrieben.
SCTP ist standardmäßig in Oracle Solaris enthalten und erfordert keine zusätzliche Konfiguration. Eventuell müssen Sie jedoch bestimmte Services auf der Anwendungsschicht zur Verwendung von SCTP konfigurieren. Einige Beispielanwendungen sind echo und discard. Im folgenden Verfahren wird gezeigt, wie Sie einen echo-Service hinzufügen, der ein SCTP 1:1-Socket verwendet.
Darüber hinaus können Sie das folgende Verfahren verwenden, um Services für die Transportschichtprotokolle TCP und UDP hinzuzufügen.
In der folgenden Aufgabe wird gezeigt, wie Sie einen SCTP inet-Service hinzufügen, der vom inetd-Daemon für das SMF-Repository verwaltet wird. Dann wird in der Aufgabe gezeigt, wie der Service mit den Befehlen der Service Management Facility (SMF) hinzugefügt wird.
Informationen zu den SMF-Befehlen finden Sie unter SMF Command-Line Administrative Utilities in System Administration Guide: Basic Administration.
Syntaktische Informationen finden Sie in den Manpages für die SMF-Befehle, die in diesem Verfahren genannt werden.
Ausführliche Informationen zu SMF finden Sie in der Manpage smf(5).
Bevor Sie das folgende Verfahren ausführen, erstellen Sie eine Manifestdatei für den Service. In dem Verfahren wird ein Manifest für den echo-Service mit der Bezeichnung echo.sctp.xml als Beispiel verwendet.
Melden Sie sich mit einem Benutzerkonten, das über Schreibrechte für Systemdateien verfügt, beim lokalen System an.
Bearbeiten Sie die /etc/services-Datei und fügen Sie eine Definition für den neuen Service hinzu.
Verwenden Sie bei der Definition des Service die folgende Syntax:
service-name |port/protocol | aliases |
Fügen Sie den neuen Service hinzu.
Wechseln Sie in das Verzeichnis, in dem das Manifest gespeichert ist, und geben Sie Folgendes ein:
# cd dir-name # svccfg import service-manifest-name |
Die vollständige Syntax des svccfg-Befehls finden Sie in der Manpage svccfg(1M).
Angenommen, Sie möchten einen neuen SCTP echo-Service mithilfe des Manifests echo.sctp.xml hinzufügen, das momentan im Verzeichnis service.dir gespeichert ist. In diesem Fall geben Sie Folgendes ein:
# cd service.dir # svccfg import echo.sctp.xml |
Prüfen Sie, ob das Servicemanifest hinzugefügt wurde:
# svcs FMRI |
Als FMRI-Argument verwenden Sie den Fault Managed Resource Identifier (FMRI) des Servicemanifests. Für den SCTP echo-Service verwenden Sie beispielsweise den folgenden Befehl:
# svcs svc:/network/echo:sctp_stream |
Dieser Befehl sollte eine Ausgabe ähnlich der Folgenden erzeugen:
STATE STIME FMRI disabled 16:17:00 svc:/network/echo:sctp_stream |
Ausführliche Informationen zum svcs-Befehl finden Sie in der Manpage svcs(1).
Die Ausgabe deutet darauf hin, dass das neue Servicemanifest derzeit deaktiviert ist.
Listen Sie die Eigenschaften des Services auf, um festzustellen, ob Sie Änderungen vornehmen müssen.
# inetadm -l FMRI |
Ausführliche Informationen zum inetadm-Befehl finden Sie in der Manpage inetadm(1M).
Für den SCTP echo-Service geben Sie z. B. Folgendes ein:
# inetadm -l svc:/network/echo:sctp_stream SCOPE NAME=VALUE name="echo" endpoint_type="stream" proto="sctp" isrpc=FALSE wait=FALSE exec="/usr/lib/inet/in.echod -s" . . default tcp_trace=FALSE default tcp_wrappers=FALSE |
Aktivieren Sie den neuen Service:
# inetadm -e FMRI |
Prüfen Sie, ob der Service aktiviert wurde:
Für den neuen echo-Service geben Sie z. B. Folgendes ein:
# inetadm | grep sctp_stream . . enabled online svc:/network/echo:sctp_stream |
Im folgenden Beispiel werden die Befehle und Dateieinträge vorgestellt, mit denen Sie dafür sorgen, dass der echo-Service das SCTP-Transportschichtprotokoll verwendet.
$ cat /etc/services . . echo 7/tcp echo 7/udp echo 7/sctp # cd service.dir # svccfg import echo.sctp.xml # svcs network/echo* STATE STIME FMRI disabled 15:46:44 svc:/network/echo:dgram disabled 15:46:44 svc:/network/echo:stream disabled 16:17:00 svc:/network/echo:sctp_stream # inetadm -l svc:/network/echo:sctp_stream SCOPE NAME=VALUE name="echo" endpoint_type="stream" proto="sctp" isrpc=FALSE wait=FALSE exec="/usr/lib/inet/in.echod -s" user="root" default bind_addr="" default bind_fail_max=-1 default bind_fail_interval=-1 default max_con_rate=-1 default max_copies=-1 default con_rate_offline=-1 default failrate_cnt=40 default failrate_interval=60 default inherit_env=TRUE default tcp_trace=FALSE default tcp_wrappers=FALSE # inetadm -e svc:/network/echo:sctp_stream # inetadm | grep echo disabled disabled svc:/network/echo:stream disabled disabled svc:/network/echo:dgram enabled online svc:/network/echo:sctp_stream |
Das tcpd-Programm implementiert TCP-Wrapper. TCP-Wrapper stellen eine Sicherheitsmaßnahme für Service-Daemons wie ftpd dar, indem sie zwischen dem Daemon und den eingehenden Serviceanforderungen stehen. TCP-Wrapper protokollieren erfolgreiche und nicht erfolgreiche Verbindungsversuche. Darüber hinaus stellen TCP-Wrapper eine Zugriffskontrolle bereit, indem sie eine Verbindung abhängig vom Ursprung der Anforderung zulassen oder verweigern. Sie verwenden TCP-Wrapper zum Schutz von Daemons wie z. B. SSH, Telnet und FTP. Auch die Anwendung sendmail kann TCP-Wrapper verwenden, wie unter Support for TCP Wrappers From Version 8.12 of sendmail in System Administration Guide: Network Services beschrieben.
Nehmen Sie auf dem lokalen System die Rolle eines Primäradministrators an, oder melden Sie sich als Superuser an.
Die Rolle des Primäradministrators enthält das Primary Administrator-Profil. Informationen zum Erstellen von Rollen und Zuweisen von Rollen zu Benutzern finden Sie in Kapitel 2, Working With the Solaris Management Console (Tasks) in System Administration Guide: Basic Administration.
Aktivieren Sie die TCP-Wrapper.
# inetadm -M tcp_wrappers=TRUE |
Konfigurieren Sie die Zugriffskontroll-Richtlinie der TCP-Wrapper gemäß der Beschreibung in der Manpage hosts_access(3)
Diese Manpage finden Sie im Verzeichnis /usr/sfw/man auf der SFW CD-ROM, die zusammen mit der Oracle Solaris CD-ROM ausgeliefert wird.