
Binden von Ports < 1024 auf UNIX 
Verwendung
Mit dem Internet Communication Manager (ICM) 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 die Ports selbst. Sollen konfigurierte Ports von
icmbnd gebunden werden, ändern Sie die Parameterspezifikation für icm/server_port_<xx> im Profil (Transaktion RZ11).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.
Voraussetzungen
Sie benötigen für Release 6.10 ein Kernel-Patch-Level über 37. Den Patchlevel Ihres Kernels können Sie auf Betriebssystemebene mit
dw -V oder icman -V ermitteln.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 icmbnd
chmod 4755 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=1Das 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.
icm/server_port_1 = PROT=HTTP, PORT=8080, TIMEOUT=30, EXTBIND=1

Bindeprogramm icmbnd
icmbnd
ist das Hilfsprogramm für den ICM zum Binden von Ports.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. |
optional |
Fehlermeldungen
Die folgenden Fehler können auftreten und werden von
icmbnd protokolliert:Notwendiges Argument wurde auf der Kommandozeile nicht angegeben.
Es wurde ein ungültiges Argument angegeben.
Eine der (obligatorischen) Optionen -S -l oder -p wurde nicht angegeben.
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>.Listen Port konnte nicht gebunden werden. Entweder fehlen die Berechtigungen zum Binden oder der Port ist bereits von einem anderen Programm gebunden.
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