Linux.xinetd: Unterschied zwischen den Versionen
Zeile 27: | Zeile 27: | ||
im Verzeichnis /etc/xinet.d die neue Datei "soap" anlegen. | im Verzeichnis /etc/xinet.d die neue Datei "soap" anlegen. | ||
joe /etc/ | joe /etc/xinetd.d/soap | ||
service soap | service soap |
Aktuelle Version vom 14. März 2006, 17:27 Uhr
"xinetd als Redirector verwenden (in diesem Falle für SOAP auf einem fremden Server)"
- Problematik
Ein Fremdsystem stellt Web-Services in Form von SOAP Diensten zur Verfügung Aus Sicherheitsgründen wird die Befragung der SOAP - Routinen nur für einzelne fest eingestellte Client-IP Adressen freigschaltet. Ich selbst habe jedoch wechselnde IP Adressen, und kann somit keine IP Adresse an den SOAP Betreiber durchgeben.
- Lösungs-Strategie
Ein eigener dritter Server, der mir zur Verfügung steht, wird als SOAP-Gateway oder SOAP-Router oder SOAP-Redirector (wie man will) eingesetzt. Dessen IP wird vom SOAP Dienstleister freigeschaltet. Dieser Redirector kann auf einem gewissen vereinbarten Port angesteuert werden, leitet aber jeden Traffic an den eigentlichen SOAP Anbieter weiter.
Dienst, Eingangsseitig auf einen Port mappen
- WICHTIG: Damit die Umleitung funktioniert muss erst mal der Dienst dem System bekannt gemacht werden. Dieser muss genauso wie der spätere xinetd service genannt werden.
- TIPP: Spare Dir den Aufwand, und gebe im Service
type = UNLISTED
ein, dann sucht das System den Dienst nicht in der /etc/services. - In unserem Fall wollen wir den Aufwand mal machen!
SOAP als "dienst" erst mal bekannt machen
joe /etc/services
diese Zeile an passender Stelle hinzu:
soap 8081/tcp # my soap redirect
einzelne redirect Dienste hinzunehmen
im Verzeichnis /etc/xinet.d die neue Datei "soap" anlegen.
joe /etc/xinetd.d/soap
service soap { socket_type = stream wait = no flags = REUSE protocol = tcp type = UNLISTED # nur wenn "soap" in der /etc/services ungenannt ist port = 8081 # das ist der öffentliche Port user = root redirect = 80.139.34.230 80 # "Ziel-IP" "Ziel-Port" disable = no }
xinetd neu starten
- nach Änderungen der Dateien in /etc/xinet.d muss der Dienst über die Änderungen informiert werden.
# die PID des aktuellen xinetd ermitteln # die angegebene PID dann gut merken pgrep xinetd # Nun die PID in den folgende Befehl einsetzten kill -HUP <PID>
- unter Umständen gibt es mehrere PIDs (weis auch nicht warum). Besser ist es in diesem Fall den xinetd neu zu starten.
rcxinetd restart