Forwarder/Proxy mit netcat/socat

26/06/2015 - 10:35 von Christian Winther | Report spam
Hallo Miteinander,

ich hoffe, ich bin mit meiner Fragestellung hier richtig. Ansonsten
bitte besser geeignet NG mitteilen.

Problem:

Ich muss einer Workstation (WS), welche in einem gesonderten Netzbereich
steht, den Zugriff auf einen zentralen Lizenzserver ermöglichen.
Direkte Abfrage ist nicht möglich, d.h., ich kann nicht mit der
eigentlichen IP des Lizenzservers anfragen, da dieser IP-Bereich in dem
gesonderten Netzbereich nicht erlaubt ist, d.h., kein einfaches Routing
möglich. Ich muss mit einer anderen IP anfragen und diese Anfrage
geeignet umsetzten. Der Lizenzserver (FlexLM .o.à.) arbeitet wie folgt:

- WS fragt an Port 13334 an und bekommt anderen Port (53071) mitgeteilt,
auf welchem sie mit dem Lizenzserver dann permanente Verbindung hàlt.

Habe einen viruellen Linuxserver (Debian 8.1) aufgesetzt, welcher 2 Nics
hat und damit aus beiden Netzen erreichbar ist. Des weiteren habe ich
unter /etc/init.d/ eine service eingerichtet, welcher im Startfall eine
Script unter /etc/ aufruft. Das funktioniert bis auf u.g. Probleme,
d.h., die Dienste starten und ich sehe die Ports im Status LISTEN.

1. Versuch mit Netcat:

In dem Script unter /etc/ stehen folgende Befehle:

# Löschen vorhandener nc-Prozesse
#
pkill nc > /dev/null 2>&1
#
# nc-Prozesse starten
#
nc -l -s <ip von linux-host in Netz 1> -p 13334 -c "nc <ip von
lizenzserver in Netz2> 13334" &
nc -l -s <ip von linux-host in Netz 1> -p 53071 -c "nc <ip von
lizenzserver in Netz2> 53071" &

Das funktioniert - aber nur einmal. D.h., beim ersten Aufruf des
Programms auf der WS, welches den Lizenzserver abfragt, funktioniert die
Abfrage und die Verbindung zum Lizenzserver wird hergestellt. Wird das
Programm beendet, wird auch die TCP/IP-Verbindung beendet. Allerdings
werden dadurch auch die TCP/IP-Vebindungen auf dem Linux-Host, welche
durch nc im LISTEN-Mode aufgebaut wurden, beendet.
Das ist weniger gut ...


2. Versuch mit socat:

In dem Script unter /etc/ stehen folgende Befehle:

# Löschen vorhandener nc-Prozesse
#
pkill socat > /dev/null 2>&1
#
# socat-Prozesse starten
#
socat :TCP4-LISTEN:<ip von linux-host in Netz
1>:13334,reuseaddr,fork,su=nobody TCP4:<ip von lizenzserver in
Netz2>:13334" &

socat :TCP4-LISTEN:<ip von linux-host in Netz
1>:53071,reuseaddr,fork,su=nobody TCP4:<ip von lizenzserver in
Netz2>:53071" &


Das funktioniert gar nicht (auch ohne reuseaddr,fork,su=nobody).
Die Ports sind im Status LISTEN, die Verbindung von der WS zum
Linux-Host auf Port 13334 steht, mehr aber auch nicht.


Frage an die Gemeinde:

Wo ist mein Denk-/Konfigurations-Fehler?
Wie macht man das richtig/besser/anders?

MfG Christian
 

Lesen sie die antworten

#1 Tim Ritberg
26/06/2015 - 11:01 | Warnen spam
Am 26.06.2015 um 10:35 schrieb Christian Winther:
Hallo Miteinander,

ich hoffe, ich bin mit meiner Fragestellung hier richtig. Ansonsten
bitte besser geeignet NG mitteilen.

Problem:

Ich muss einer Workstation (WS), welche in einem gesonderten Netzbereich
steht, den Zugriff auf einen zentralen Lizenzserver ermöglichen.
Direkte Abfrage ist nicht möglich, d.h., ich kann nicht mit der
eigentlichen IP des Lizenzservers anfragen, da dieser IP-Bereich in dem
gesonderten Netzbereich nicht erlaubt ist, d.h., kein einfaches Routing
möglich. Ich muss mit einer anderen IP anfragen und diese Anfrage
geeignet umsetzten. Der Lizenzserver (FlexLM .o.à.) arbeitet wie folgt:

- WS fragt an Port 13334 an und bekommt anderen Port (53071) mitgeteilt,
auf welchem sie mit dem Lizenzserver dann permanente Verbindung hàlt.
...






Hört sich nach einer Aufgabe für SNAT/DNAT an.

man iptables

Tim

Ähnliche fragen