4
Duplicity 0.6.18: Probleme mit nicht Standard-SSH-Port
In einigen Distributionen (z.b. CentOS 6 oder Ubuntu 12.04 LTS) wird derzeit als Paket noch immer nur Version 0.6.18 von Duplicity (für eine vereinfachte Konfiguration kann ich Duply empfehlen) ausgeliefert und das kann einen vor ein „größeres“ Problem stellen. Besagte Version kommt bei SSH-Verbindungen nur mit dem Standard-Port 22 klar und liefert leider auch nur eine etwas irreführende Fehlermeldung („BackendException: ssh connection to domain.com:1234 failed: Unknown server domain.com“). Sucht man nach besagter Fehlermeldung und durchstöbert die Mailinglisten und Forenbeiträge kann man das Problem eingrenzen (i.d.R. liegt es an einem fehlenden „known_hosts“-Eintrag oder eben an einer ignorierten Portangabe). Die Lösungsvorschläge sind:
- Update
- Patchen einer bzw. mehrerer Dateien
- Ändern des Ports bzw. Verwendung einer anderen Verbindungsart
Auf die Schnelle konnte ich für CentOS leider keine aktualisierte Version von Duplicity als RPM finden und ein manuelles Update kam nicht in Frage (ich wollte auf dem Produktivsystem keine „unnötigen“ Pakete installieren). Das Patchen empfand ich auch als zu mühsam, zumal sich der eine oder andere Eintrag auch widersprach und ich keine Lust auf langwieriges „trial and error“ hatte. Eine Änderung des Ports auf dem anderen Server wollte ich eigentlich auch nicht machen und eine andere Verbindungsart stand auch nicht zur Debatte.
Da ich kurz zuvor auf einem anderen Server an der Firewall basteln musste, ist mir ein „einfacher“ Workaround eingefallen. Wie wärs mit dem „vortäuschen“ eines SSH-Servers auf dem Standardport durch eine entsprechenden „Firewall“-Regel auf dem Zielserver?
iptable -t nat -A PREROUTING -i eth0 --src 123.123.123.123/32 -p tcp --dport 22 -j REDIRECT --to-ports 1234
Ist sicherlich nicht die schönste Variante, in meinem Fall aber zum einen Möglich (wg. des entsprechenden Zugriffs auf dem Zielserver) und zum anderen auch ohne groß in die Systeme einzugreifen.