Systemverwaltungshandbuch: IP Services

Überwachen undModifizieren der Transportschichtservices

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

Ausführliche Informationen zum inetd-Daemon finden Sie in der Manpage inetd(1M).

ProcedureSo protokollieren Sie die IP-Adressen aller eingehenden TCP-Verbindungen

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

  2. Aktivieren Sie die TCP-Verfolgung für alle Services, die vom inetd-Daemon verwaltet werden.


    # inetadm -M tcp_trace=TRUE
    

ProcedureSo fügen Sie Services hinzu, die das SCTP-Protokoll verwenden

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.


Hinweis –

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.

Bevor Sie beginnen

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.

  1. Melden Sie sich mit einem Benutzerkonten, das über Schreibrechte für Systemdateien verfügt, beim lokalen System an.

  2. 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
    
  3. 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
    
  4. 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.

  5. 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
  6. Aktivieren Sie den neuen Service:


    # inetadm -e FMRI
    
  7. 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

Beispiel 5–9 Hinzufügen eines Services, der das SCTP-Transportprotokoll verwendet

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

ProcedureSo verwenden Sie TCP-Wrapper zur Kontrolle des Zugriffs auf TCP-Services

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.

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

  2. Aktivieren Sie die TCP-Wrapper.


    # inetadm -M tcp_wrappers=TRUE
    
  3. 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.