Tunneln Sie den yum-Verkehr über ssh über einen anderen Server

10

Ich verwende einen Fedora-Desktop hinter einem Unternehmens-Proxy, der den yumDatenverkehr blockiert (speziell *.gzund *.bz2). Ich habe über ssh Zugriff auf eine separate RedHat-Maschine, die alles herunterladen kann, was sie möchte.

Wenn ich es tue yum updateund andere yum-Befehle: Ist es möglich, diesen Datenverkehr an den RedHat-Computer weiterzuleiten, um die Downloads für mich durchzuführen? Ich habe keinen Root-Zugriff auf dem RedHat-Computer, kann mich jedoch anmelden und mit wget Dateien herunterladen. Wenn das so ist, wie?

jax
quelle

Antworten:

21

Meine Lösung war ähnlich wie die von @ slm, aber ich habe stattdessen SOCKS verwendet, da dies einfacher ist und keine Proxy-Installation auf dem Server oder Client erfordert.

Führen Sie alle Befehle auf dem Computer mit eingeschränktem Zugriff aus.

im yum.confSatz als Proxy folgt

proxy=socks5h://localhost:1080

von einem Terminaltyp

ssh -D 1080 YOUR_USER@YOUR_SERVER_WITH_FULL_WEB_ACCESS

Drücken Sie die Eingabetaste und geben Sie Ihr Passwort ein.

Jetzt in einem separaten Terminal (nicht dem SSH-Typ)

yum update
jax
quelle
1
Ich habe versucht, die Proxy-Einstellung socks5h in yum.conf zu verwenden, aber yum beschwert sich, dass es sich nicht um http, https oder ftp handelt. (mit Centos6)
Gnac
Meine Lösung funktioniert mit Fedora 20 & 21. Cent und Fedora mit ähnlichen Distributionen, daher ist es etwas seltsam, dass es nicht funktioniert.
Jax
Hallo, der von Ihnen erwähnte Befehl ssh sollte auf dem Computer mit eingeschränktem Zugriff ausgeführt werden, oder? Wenn ja, frage ich mich, wie die Firewall nicht blockiert und den Fehler "ssh: Verbindung zum Host herstellen YOUR_SERVER_WITH_FULL_WEB_ACCESS Port 22: Keine Route zum Host" verursacht. IHR_SERVER_WITH_FULL_WEB_ACCESS ist von der eingeschränkten Maschine aus erreichbar?
Hei
@Hei ja, "YOUR_SERVER_WITH_FULL_WEB_ACCESS" muss von Ihrem Computer aus zugänglich sein. In meinem Fall war mein Internet lokal eingeschränkt.
Jax
4

Sie sollten in der Lage sein, den Datenverkehr von YUM über die SSH-Verbindung wie folgt zu übertragen:

  1. /etc/yum.confauf dem geschützten Server hinzufügen :

    proxy=http://127.0.0.1:8080
    
  2. vom Server mit normalem eingehenden / ausgehenden SSH-Zugriff:

    $ ssh -R 8080:ssh.server:8080 [email protected]
    
  3. Auf dem Server, auf dem Sie YUM-Befehle ausführen möchten:

    $ yum update
    

Verweise

slm
quelle
Ich brauche nur ein paar Klarstellungen. (Ich beziehe mich auf meinen Fedora-Desktop als desktopund den RedHat-Server mit vollem Download-Zugriff als server). Ich denke, ich muss das proxy=http://127.0.0.1:8080auf meinem desktopComputer tun, da dies der Computer ist, der die leckeren Updates benötigt, und ssh -R 8080:ssh.server:8080 [email protected]auf meinem Computer desktop. Woher kommt die serverKonfiguration oder gibt es keine?
Jax
2
Sie verpassen den Schritt, einen HTTP-Proxy auszuführen, der Port 8080 überwacht ssh.server.
Gilles 'SO - hör auf böse zu sein'
@ Gilles brauche ich den Proxy auf meinem desktopoder server? Wenn es nicht der Server ist, kann ich es nicht installieren, weil ich keinen Root-Zugriff habe
jax
@jax Sie müssen den Proxy auf dem Computer mit der Internetverbindung ausführen. Sie müssen es nicht als root ausführen. Tinyproxy ist einfach einzurichten (es gibt viele Alternativen).
Gilles 'SO - hör auf böse zu sein'
@ Gilles, ich habe an anderer Stelle festgestellt, dass Sie einen Socks-Proxy erstellen können, der anscheinend den TCP-Verkehr automatisch weiterleitet. ssh -D 8888 user@serverAuf dem Desktop müssen Sie yum anweisen, diesen Server zu verwenden proxy=socks5h://localhost:8888. Können Sie also ein Problem damit sehen? Es würde bedeuten, dass ich nichts auf dem Server installieren muss, was in meinem Fall ideal ist, da es sich um einen gemeinsam genutzten Computer handelt. Ich werde es erst am Montag testen können.
Jax