SeeksTheMoon
15.11.03, 18:29
Helft mir mal bitte, ob folgender Gedanke klappen kann:
Hintergrund:
------------
Ein Bekannter von mir sitzt in einem LAN, das externe Zugriffe nur auf die Ports 443 und 80 gestattet.
Bei mir läuft auf einem Server ein apache und der belegt diese Ports. ssh ist für den Bekannten also nicht möglich, weil das ja auf dem Server auf 22 läuft.
Wir haben es mal über einen Tunnel versucht und das hat auch geklappt, aber das nimmt dem apachen einen Port weg. Wir wollen beides: ssh-Zugriff und dem apachen seinen Frieden (es sollen ja auch noch andere Leute auf den apachen zugreifen können)
Idee:
-----
Ich glaube, ich hab eine Möglichkeit gefunden, wie man ohne Tunneln auf ssh zugreifen kann (nämlich per iptables auf dem Server):
Der Bekannte startet bei sich seinen ssh-Client um auf meinen Server zu kommen, aber mit Zielport 80, wo eigentlich mein Apache läuft.
Seine TCP-Pakete kommen in diesem Fall von seinem Port 22 (richtig?).
Wenn ja, kann ich das doch bei mir umleiten:
iptables --table nat --append PREROUTING --protocol tcp --destination-port 80 --source-port 22 -jump DNAT --to localhost:22
Dieser Befehl leitet einkommende Pakete, die vom Senderport 22 kommen (also von seinem SSH-Client) und auf den lokalen 80er Port gehen (also den web-Server) auf den lokalen 22er um (also meinen sshd auf dem Server).
Würde das gehen?
Erweiterung:
------------
Das könnte man dann noch um seine IP- oder MAC-Adresse erweitern, oder mit Type of Service nur auf ssh-Anfragen beschränken, um es noch restriktiver zu machen.
Normale Anfragen auf Port 80 sollten nach wie vor klappen, z.B, per Webbrowser, aber alles von seinem ssh-Client sollte umgeleitet werden.
Stimmts?
Hintergrund:
------------
Ein Bekannter von mir sitzt in einem LAN, das externe Zugriffe nur auf die Ports 443 und 80 gestattet.
Bei mir läuft auf einem Server ein apache und der belegt diese Ports. ssh ist für den Bekannten also nicht möglich, weil das ja auf dem Server auf 22 läuft.
Wir haben es mal über einen Tunnel versucht und das hat auch geklappt, aber das nimmt dem apachen einen Port weg. Wir wollen beides: ssh-Zugriff und dem apachen seinen Frieden (es sollen ja auch noch andere Leute auf den apachen zugreifen können)
Idee:
-----
Ich glaube, ich hab eine Möglichkeit gefunden, wie man ohne Tunneln auf ssh zugreifen kann (nämlich per iptables auf dem Server):
Der Bekannte startet bei sich seinen ssh-Client um auf meinen Server zu kommen, aber mit Zielport 80, wo eigentlich mein Apache läuft.
Seine TCP-Pakete kommen in diesem Fall von seinem Port 22 (richtig?).
Wenn ja, kann ich das doch bei mir umleiten:
iptables --table nat --append PREROUTING --protocol tcp --destination-port 80 --source-port 22 -jump DNAT --to localhost:22
Dieser Befehl leitet einkommende Pakete, die vom Senderport 22 kommen (also von seinem SSH-Client) und auf den lokalen 80er Port gehen (also den web-Server) auf den lokalen 22er um (also meinen sshd auf dem Server).
Würde das gehen?
Erweiterung:
------------
Das könnte man dann noch um seine IP- oder MAC-Adresse erweitern, oder mit Type of Service nur auf ssh-Anfragen beschränken, um es noch restriktiver zu machen.
Normale Anfragen auf Port 80 sollten nach wie vor klappen, z.B, per Webbrowser, aber alles von seinem ssh-Client sollte umgeleitet werden.
Stimmts?