ip und port redirecten

superbear

Member
Hallo ich habe mal eine frage zu IP/Port Weiterleitungen.

Ich habe folgendes Problem:

Ich habe einen root-Server auf dem ein OpenVPN Server läuft.
Da ich häufig hinter einer Firewall/Proxy sitze, die mir die Connection zu meinem Server blockt habe ich den Server auf Port 443 eingestellt und nutze den desproxy auf dem client um eine normale TCP-Verbindung durch einen HTTP-TCP-Tunnel zu jagen.

Das Problem ist nun nur, das mein Apache auf dem Server natürlich auch gerne den Port 443 für https hätte.

Meine Frage nun ist es möglich auf einem anderen Server den port 443 lauschen zu lassen und dann auf meinen root server zu redirecten, aber auf nen anderen port?

also das der client ne verbindung auf port 443 aufbaut und die auf meinem server aber auf nem anderen port ankommt, damit mein apache auch wieder https auf 443 sprechen kann?

wäre super wenn ihr ne lösung wisst, falls sowas überhaupt geht :D
 
hm dazu müsstest du den setup noch etwas mehr erläutern.
möchtest du dass im prinzip beide dienste (https und openvpn) auf dem port laufen? das wird schwierig...
wenn du zwei öffentliche IPs/rechner hast kannst natürlich mittels einer firewall oder einem ssh-tunnel den port 443 von dem einen auf porrt XYZ des anderen umlenken.
aber dann würde es glaube ich mehr sinn machen einfach openvpn von einem auf den http oder hhtps des anderen rechners weiterzuleiten.
 
warum fragst du nicht einfach deinen admin, ob er dir port 1194 auf der firewall freischaltet? wenn er das macht, duerfte sich das problem ja erledigt haben. falls er das nicht macht, bedeutet das wohl dass du keine openvpn verbindung aufmachen sollst. in dem falle wuerde ich mir dann gedanken machen ob es okay ist gegen den willen des admins zu handeln... (hint: meistens ist es nicht okay...) evt. hat man ja sogar was unterschrieben, dass man sowas nicht tut?

gruss
 
Mach ich seit Jahren so mittels pf(4), geht natuerlich mit jedem Paketfilter
Code:
rdr on $ext_if proto tcp from $work_ip to any port 443 -> 127.0.0.1 port 22

Damit komme ich dann von Arbeit aus nicht mehr auf meine HTTPS Seite, aber die kann ich mir ja mittels ssh(1) PortForwarden :)

PS: Kenne desproxy nicht, aber wenn du keine Authentifizierung brauchst, dann reicht da sogar ein aktuelles netcat bzw. nc(1). Folgendes in .ssh/config
Code:
Host foo
 ProxyCommand /usr/bin/nc -X connect -x proxy-host:8080 %h %p
 
in dem falle wuerde ich mir dann gedanken machen ob es okay ist gegen den willen des admins zu handeln... (hint: meistens ist es nicht okay...) evt. hat man ja sogar was unterschrieben, dass man sowas nicht tut?

du hast schon recht ich will sicher nicht meinen job verlieren deshalb, mich interessiert mehr die möglichkeit ob ich das hinbekomme, denn dann wüsste ich für nen proxy den ich mal aufsetze, dass da ne schwachstelle ist.

Es wäre also eher ein Projekt um was für die Zukunft zu lernen, nicht um es wirklich bei der arbeit einzusetzen...zumal ich gar kein openvpn auf der arbeit installieren kann, wegen fehlender rechte.

Andererseits dachte ich wäre es interessant für WLAN Cafè's, da da ja jeder mitsniffen könnte, könnte man sich so in sein VPN einwählen, und verschlüsselt eMails abrufen...wobei ist dann für alle anderen der 443 auch dicht?...sollte man vielleicht noch überlegen :D


Mach ich seit Jahren so mittels pf(4), geht natuerlich mit jedem Paketfilter

die frage ist das sollte auch mit windows clients gehen :) daher würde mich interessieren ob man pf auch unter windows compilen kann oder obs da nen port schon gibt.

kannste mir vielleicht nochmal eben erklären was ext_if ist? Ist das dein lan interface was mit dem inet verbunden ist?
und machste damit nur ne http verbindung auf port 443 auf deinen server? also läuft dein sshd auf port 443 oder was tut dieser befehl genau?
 
die frage ist das sollte auch mit windows clients gehen :) daher würde mich interessieren ob man pf auch unter windows compilen kann oder obs da nen port schon gibt.

pf laeuft auf dem ssh Server. Der Client ist voellig egal. Hauptsache du hast ein ProxyCommand fuer dein ssh.

kannste mir vielleicht nochmal eben erklären was ext_if ist? Ist das dein lan interface was mit dem inet verbunden ist?
und machste damit nur ne http verbindung auf port 443 auf deinen server? also läuft dein sshd auf port 443 oder was tut dieser befehl genau?

Er macht einen redirect (rdr) aller Pakete, welche von $workip auf port 443 reinkommen (externes interface, also DSL modem) und biegt die Verbindung auf localhost:22 um. sshd(8) laeuft nur auf Port 22. Port 443 ist durch den Webserver belegt.

Wenn du redirect+NAT machst, kann der Port 443 auch auf einem ganz anderen Server liegen.

Und wenn du von wechselnder IP kommst bzw. immer die Wahl zwischen https und ssh haben willst kannst du dich ja mal in Portknocking einlesen.
 
fett thx,

das ja mal cool genau sowas suchte ich...jetzt muss ich nur noch schaun wie das mit der dynip ist aber dasklappt sicher auch...

ich werde mal nach port knocking suchen thx

sonst frage ich nochmal nach.

EDIT: Also ich habe mir mal Portknocking von der Idee her angeschaut.

Meinst du dass ich das dann so machen soll? Bzw geht das so:

Wenn keiner anklopft, dann ist port 443 dem apachen zugeteilt.
Wenn ein Client nun mit dem richtigen Muster anklopft, dann werden alle seine anfragen an port 443 mithilfe von pf und rdr auf den port vom vpn-server umgeleitet?
 
Zuletzt bearbeitet:
so gehts von Post zu Post, Thema zu Thema...

Superbear, wie aus Deinem anderen Post ersichtlich (http://www.bsdforen.de/showthread.php?t=19391), haben wir es mit einem Debian Linux zu tun. Mit pf geht es da nicht weit, die Logik im allgemeinen wird aber auch mit iptables replizierbar sein.

Die Schwierigkeit, Port 443 oder eher SSL ist verschlüsselt und man kann Traffic nicht auf Basis des Inhaltes umleiten. Aber ein knocking-Verfahren wäre natürlich eine Lösung dafür. Wie das Verfahren zu Portknocking beschreibt, brauchst Du einen Daemon, welcher das Firewall-Protokoll ausliest. Bei richtigem knock wird die Anfrage wie Du sagst umgeleitet.

- auf dem Port nach aussen lauscht die Firewall mit NAT
- Standard-NAT zu einem internen Apachen (127.0.0.1:443)
- Nach knock an OpenVPN (127.0.0.1:1094)

mit ipfilter bzw. pf unter BSD ist das sicher lösbar. Soweit ich weiss, sollte es unter Linux/iptables auch machbar sein. Mit portknocking habe ich selber aber auch keine Erfahrung. Lies doch mal: http://www.netfilter.org/documentation/index.html#documentation-howto. Knockd wird auch hier beschrieben: http://de.gentoo-wiki.com/Port_Knocking.

Letzten Endes ist das hier aber dann leider nicht mehr BSD-Unix.
 
hey Bytesplit,

danke ja stimmt BSD ist das wirklich nicht, ich werde mich einfach mal einlesen und mein Glück versuchen, wenn ich noch allgemeine Fragen habe kann ich mich ja nochmal melden.

EDIT:
Mir fällt gerade was auf: Wenn ich nen Portknocking Deamon betreibe und dann aber auch aus geschützten Umgebungen ins VPN will, dann kann ich ja nicht auf Ports knocken, die vom Proxy blockiert werden.

dh. ich hätte wahrscheinlich nur die Ports 80, 443 und das in TCP UDP.
Damit könnte ich ja nicht so den aufwendigen knock machen.
 
Zuletzt bearbeitet:
Zurück
Oben