Show TOC Anfang des Inhaltsbereichs

Funktionsdokumentation Binden von Ports < 1024 auf UNIX  Dokument im Navigationsbaum lokalisieren

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, ändern Sie die Parameterspezifikation für icm/server_port_<xx> im Profil.

icm/server_port_<xx> = PROT=<Protokoll>, PORT=<Port>, TIMEOUT=<timeout>, EXTBIND=1

Integration

Auf einem UNIX-System können nur Benutzer mit den Superuser-Berechtigungen 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=<Protokollname>, PORT=<Port oder Servicename> [, TIMEOUT=<keep alive timeout>, EXTBIND=1]

TIMEOUT und EXTBIND sind optional.

Beispiel

icm/server_port_1 = PROT=HTTP, PORT=8080, 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 ist auch für Windows verfügbar. Da der Benutzer <sid>adm auf 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.

Syntax

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

Hinweis

icmbnd kann natürlich auch zum Binden von Ports >= 1024 genutzt werden, dir Startup-Zeit des ICM verlängert sich aber dadurch. icmbnd ist auch für Windows verfügbar. Da der Benutzer <SID>adm auf diesem System jedoch beliebige Ports binden kann, ist der Einsatz hier nicht sinnvoll.                                                       

Achtung

Damit das Executable icmbnd gefunden wird, muss einer der beiden Parameter SAPSYSTEMNAME bzw. exe/icmbnd (Dateipfad für icmbnd, analog zu exe/icman) im Profil gesetzt sein. Alternativ dazu können Sie auch die Variable DIR_EXECUTABLE setzen (vgl. Beispiel: Profildatei eines SAP Web Dispatchers).

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 keep-alive-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 Namen 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).

Siehe auch:

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

chown, chmod, getuid,  setreuid, seteuid,  setfsuid

 

 

Ende des Inhaltsbereichs