PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Port Forwarding bei Webservern



diablo80
21.09.06, 14:03
Hallo,

ich habe mir einen LVS aufgebaut. Das System besteht aus zwei webservern in einem privaten netz und einem Loadbalancer mit Anschluss ans Internet und dem privaten netz. So ich will jetzt eine Portweiterleitung einrichten bei der ich dann mit

ssh xxx.xxx.xxx.xxx -p 5000 auf den ersten Webserver komme und mit

xxx.xxx.xxx.xxx -p 5001 auf den zweiten Webserver komme. An sich ist die Portweiterleitung nicht das Problem, den mit

iptables -A PREROUTING -t nat -p tcp -i bond0 -d xxx.xxx.xxx.xxx --dport 5000 -j DNAT --to 192.168.1.2:22
iptables -A PREROUTING -t nat -p tcp -i bond0 -d xxx.xxx.xxx.xxx --dport 5001 -j DNAT --to 192.168.1.5:22
beim Loadbalancer funktioniert der Aufruf auch. Aber wenn ich mich einlogge, dann kommt die Meldung, dass er den Fingerprint nicht kennt und fragt mich ob ich ihn zu meiner known_hosts hinzufügen will. Das bestätige ich und ich komme meinetwegen auf den ersten webserver, will ich anschließend auf den zweiten server, dann kommt die Meldung

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
...
]

Wie kann man das beheben, das man sowohl auf den ersten Server mit dem port 5000 als auch auf den zweiten server mit dem port 5001 kommt?

thx

marce
21.09.06, 14:11
Du kannst in der ssh-Konfig einstellen, dass er den Fingerprint nicht überprüft - dieser ist von der IP abhängig und daher hast Du für die gleiche IP 2 verschiedene Fingerprints, das meckert er natürlich an.

Alternativ vor dem Connect die .ssh/known_hosts löschen oder für den User auf "nicht beschreibbar" setzen...

diablo80
21.09.06, 14:16
Das habe ich schon versucht, in der ssh_config strict checking auf no zu setzen, aber er macht es trotzdem. Ich weis nicht woran das liegt oder existiert noch eine andere Datei die man editieren muss?

Ich dachte auch, dass es vielleicht noch ne andere Lösung geben würde, wie man sich auf den webservern einloggen kann ohne ständig erst per Hand über den Loadbalancer gehen zu müssen.

diablo80
21.09.06, 14:27
Ich habe das Problem gerade selber gelöst. Zuerst habe ich mich zum ersten server eingeloggt und den key aus der known_hosts woanders gespeichert und wieder daraus gelöscht. Dann in den zweiten Server Eingeloggt und auch den key in die known_hosts speichern lassen. Danach den vorherigen gesicherten key auch einfach in die Datei known_hosts reingepackt et viola es läuft.
Ich weis zwar nicht, ob das so gut es aber es funktioniert.

Pronitron
21.09.06, 14:33
Hi,
ich kenne das, da ich mich öfter mal auf Rechnern hinter einer Firewall einlogge.
Zum Glück zeigt ein DNS-Wildcard auf die Firewall, deshalb habe ich in meine .ssh/config folgendes gepackt:



host rechner1
hostname rechner1.domain.de
port 5000
user user1

host rechner2
hostname rechner2.domain.de
port 5001
user user2


Login dann mit "ssh rechner1" bzw "ssh rechner2". Klappt sehr gut und sollte eigentlich auch mit Einträgen in der /etc/hosts zu bewerkstelligen sein und sogar mit gleichen hostname-Einträgen. Im schlimmsten Falle gibt's eine Warnung, weil es in beiden Fällen die gleiche IP ist.
Und ganz ohne Spielereien mit der .ssh/known_hosts...

Robert