Show TOC

Binden von Ports < 1024 auf UNIXLocate this document in the navigation structure

Verwendung

Mit dem Internet Communication Manager (ICM) /SAP Web Dispatcher können Sie auch auf UNIX privilegierte Ports mit Portnummer 0 bis einschließlich 1023 ( "well known ports") binden. Dazu wird das externe Bindeprogramm icmbnd mit ausgeliefert.

Im Standardfall bindet der ICM / Web Dispatcher die Ports selbst. Sollen konfigurierte Ports von icmbnd gebunden werden, verwenden die bei der Parameterspezifikation für icm/server_port_<xx> im Profil die Option EXTBIND=1.

Integration

Auf einem UNIX-System können nur Benutzer mit den Superuser-Berechtigungen ( "root") Ports < 1024 binden. Daher muss entweder der ICM-Prozess mit diesen Rechten ausgestattet werden, oder der Port muss von einem externen Programm gebunden und der Listensocket dann an den ICM übertragen werden.

Funktionsumfang

Aus Sicherheitsgründen sollte der ICM mit den Standardberechtigungen des <sid> adm-Benutzers des SAP-Systems laufen. Mit diesen Berechtigungen können alle Ports > 1023 gebunden werden, sofern sie nicht schon durch ein anderes Programm gebunden sind. Um Ports < 1024 binden zu können, wird icmbnd direkt vom ICM gestartet, der Port wird von icmbnd gebunden und der Listensocket an den ICM weitergereicht. Dazu muss icmbnd mit den folgenden Superuser-Berechtigungen ausgestattet werden:

        
chown root:sapsys icmbnd
        
chmod 4750 icmbnd
         

Mit dem Befehl ls -al sehen Sie dann die Berechtigungen für icmbnd. Sie sollten so aussehen:

rwsr-x     1 root     sapsys   1048044 Mar 20 16:19 icmbnd

Externes Binden aktivieren

Damit der ICM nicht versucht, den Port selbst zu binden, geben Sie eine zusätzliche Option bei der Konfiguration der Ports mit icm/server_port_ <xx> an: EXTBIND=1

Das Format für diesen Parameter hat damit die Form:

PROT= <protocol>, PORT= <port / service>[, TIMEOUT= <keepalive timeout>, EXTBIND=1]

TIMEOUT und EXTBIND sind optional.

Beispiel

icm/server_port_1 = PROT=HTTP, PORT=80, TIMEOUT=30, EXTBIND=1

Hinweis
  • In der Regel wird icmbnd direkt vom ICM aus aufgerufen, allerdings kann das Programm auch von extern aufgerufen werden, um neue Ports dem ICM bekannt zu machen. icmbnd kann natürlich auch zum Binden von Ports >= 1024 genutzt werden, jedoch verlängert sich dadurch die Startup-Zeit des ICM.

  • icmbnd.exe ist auch für Windows verfügbar. Da der Benutzer <sid> admauf diesem System jedoch beliebige Ports binden kann, ist der Einsatz hier nicht sinnvoll.

Bindeprogramm icmbnd

icmbnd ist das Hilfsprogramm für den ICM zum Binden von Ports.

Es kennt folgende Eingabeparameter:

icmbnd -S <server port>-l <listen port>-p <protocol>-k <keep alive>-t <trace level>-f <trace file>] -v[ersion]

icmbnd kann natürlich auch zum Binden von Ports >= 1024 genutzt werden, dir Startup-Zeit des ICM verlängert sich aber dadurch.

Damit das Executable icmbnd gefunden wird, muss einer der folgenden Parameter im Profil gesetzt sein.

  • SAPSYSTEMNAME: Dreibuchstabige System-ID des SAP-Systems

  • exe/icmbnd: Dateipfad für icmbnd

  • DIR_EXECUTABLE: Dateipfad zum Verzeichnis der ausführbaren Programme

Parameter

Dieses Programm hat die folgenden Parameter:

Parameter

Beschreibung

Optional/obligatorisch

-S <Server-Port>

Administrationsport des ICM, über den der Listensocket von icmbnd an den ICM übertragen wird.

Obligatorisch

-l <Listen-Port>

Port, der von icmbnd gebunden werden soll. Dies kann eine Portnummer oder ein Portname sein (z.B. HTTP, SMTP, NNTP).

Obligatorisch

-p <Protokoll>

Angabe des Protokolls für den zu bindenden Port (z.B. HTTP, HTTPS, SMTP).

Obligatorisch

-k <keep alive>>

Angabe des Keepalive-Timeouts (in Sekunden) für den zu bindenden Port. Wenn dieser Parameter nicht angegeben wird, wird der Standardwert des ICM übernommen.

Optional

-t <Trace-Level>

Angabe des Trace-Levels (1-3). Standardwert ist 1.

Optional

-f <Trace-File>>

Angabe des Namens des zu benutzenden Trace-Files. Standardwert ist dev_icmbnd.

Optional

-v [version]

icmbnd gibt die aktuelle Versionsinformation aus und beendet sich dann.

Optional

Fehlermeldungen

Die folgenden Fehler können auftreten und werden von icmbnd protokolliert:

  • Missing argument for option <option>

    Notwendiges Argument wurde auf der Kommandozeile nicht angegeben.

  • Illegal option <option>

    Es wurde ein ungültiges Argument angegeben.

  • Missing values for Service, listen port or protocol

    Eine der (obligatorischen) Optionen -S -l oder -p wurde nicht angegeben.

  • IcmConnect to port %d failed (rc=%d)

    Eine Verbindung zum ICM auf der Portnummer des Arguments -S <server port> konnte nicht erstellt werden. Bitte prüfen Sie die Angabe des Parameters -S <server port>.

  • NiBuf2Listen failed(rc=%d)

    Listen Port konnte nicht gebunden werden. Entweder fehlen die Berechtigungen zum Binden oder der Port ist bereits von einem anderen Programm gebunden.

  • IcmBndSendHdl failed (rc = %d)

    NiSendHandle failed (rc = %d)

    Der Listensocket konnte nicht zum ICM übertragen werden (Kommunikationsfehler).

Weitere Informationen

Weiterführende Informationen finden Sie auf folgenden Man-Pages:

chown, chmod, getuid, setreuid, seteuid, setfsuid