Linux.xinetd: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
"xinetd als Redirector verwenden (in diesem Falle für SOAP auf einem fremden Server)"<br>
"xinetd als Redirector verwenden (in diesem Falle für SOAP auf einem fremden Server)"<br>
<br>
<br>
# Problematik<br>
* Problematik<br>
<br>
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 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.


Ein eigener dritter Server, der mir zur Verfügung steht, wird als SOAP Gateway oder Router oder 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.
* Lösungs-Strategie


# SOAP als "dienst" erst mal bekannt machen
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 <code>type =  UNLISTED</code> 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
   joe /etc/services
Zeile 15: Zeile 21:
diese Zeile an passender Stelle hinzu:
diese Zeile an passender Stelle hinzu:


   soap 6666/tcp  # my soap redirect
   soap 8081/tcp  # my soap redirect


# den redirect Dienst bei xinetd noch hinzunehmen
== einzelne redirect Dienste hinzunehmen ==


im Verzeichnis /etc/xinet.d die neue Datei "soap" anlegen
im Verzeichnis /etc/xinet.d die neue Datei "soap" anlegen.
 
joe /etc/xinetd.d/soap


-----------------------------------
  service soap
  service soap
  {  
  {  
Zeile 28: Zeile 35:
   flags = REUSE
   flags = REUSE
   protocol = tcp
   protocol = tcp
   port = 6666
  type = UNLISTED              # nur wenn "soap" in der /etc/services ungenannt ist
   user = root
   port = 8081                  # das ist der öffentliche Port
   redirect = 80.139.34.230 80
   user = root    
   redirect = 80.139.34.230 80   # "Ziel-IP" "Ziel-Port"
   disable = no
   disable = no
  }
  }
-----------------------------------


# xinetd verlassen, die neue Konfiguration zu berücksichtigen
== 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.


  ps -A | grep xinetd
  rcxinetd restart
// Nun die PID des xinetd merken und im folgenden Befehl einsetzen
kill -USR2 <PID>

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