Tunnel trafic yum via un autre serveur via ssh

10

J'exécute un bureau Fedora derrière un proxy d'entreprise qui bloque le yumtrafic (spécifiquement *.gzet *.bz2). J'ai accès à une machine RedHat séparée via ssh qui peut télécharger tout ce qu'il veut.

Quand je fais yum updateet d'autres commandes yum: Est-il possible d'acheminer ce trafic vers la machine RedHat pour faire les téléchargements pour moi? Je n'ai pas d'accès root sur la machine RedHat mais je peux me connecter et utiliser wget pour télécharger des fichiers. Si c'est le cas, comment?

jax
la source

Réponses:

21

Ma solution était similaire à @ slm, mais j'ai plutôt utilisé SOCKS car elle est plus simple et ne nécessite aucune installation de proxy sur le serveur ou le client.

Exécutez toutes les commandes sur l'ordinateur avec un accès restreint.

dans yum.confdéfinir le proxy comme suit

proxy=socks5h://localhost:1080

à partir d'un type de terminal

ssh -D 1080 YOUR_USER@YOUR_SERVER_WITH_FULL_WEB_ACCESS

appuyez sur entrée et saisissez votre mot de passe.

maintenant, dans un terminal séparé (pas le ssh)

yum update
jax
la source
1
J'ai essayé d'utiliser le paramètre de proxy socks5h dans yum.conf, mais yum se plaint que ce n'est pas http, https ou ftp. (en utilisant Centos6)
gnac
Ma solution fonctionne avec Fedora 20 et 21. Cent et Fedora une distribution similaire, donc c'est un peu bizarre que cela ne fonctionne pas.
jax
Salut, la commande ssh que vous avez mentionnée devrait être exécutée sur l'ordinateur avec un droit d'accès restreint? Si oui, je me demande comment le pare-feu ne se bloquera pas et provoquera l'erreur comme "ssh: connectez-vous à l'hôte YOUR_SERVER_WITH_FULL_WEB_ACCESS port 22: Pas de route vers l'hôte". YOUR_SERVER_WITH_FULL_WEB_ACCESS est accessible depuis la machine restreinte?
Hei
@Hei oui, "YOUR_SERVER_WITH_FULL_WEB_ACCESS" doit être accessible depuis votre machine. Dans mon cas - mon internet était restreint localement.
jax
4

Vous devriez pouvoir proxy du trafic de YUM sur la connexion SSH comme ceci:

  1. ajouter au /etc/yum.confsur le serveur protégé:

    proxy=http://127.0.0.1:8080
    
  2. depuis le serveur avec un accès ssh normal entrant / sortant:

    $ ssh -R 8080:ssh.server:8080 [email protected]
    
  3. Sur le serveur sur lequel vous souhaitez exécuter les commandes YUM:

    $ yum update
    

Références

slm
la source
J'ai juste besoin de quelques clarifications. (Je ferai référence à mon bureau Fedora comme desktopet au serveur RedHat avec un accès de téléchargement complet comme server). Donc je suppose que je devrai faire proxy=http://127.0.0.1:8080sur mon desktopcomme c'est l'ordinateur qui a besoin des mises à jour yum et ssh -R 8080:ssh.server:8080 [email protected]sur mon desktopaussi. D'où vient la serverconfiguration ou n'y en a-t-il pas?
jax
2
Vous manquez l'étape d'exécution d'un proxy HTTP qui écoute sur le port 8080 ssh.server.
Gilles 'SO- arrête d'être méchant'
@Gilles ai-je besoin du proxy sur mon desktopou server? Si ce n'est pas le serveur, je ne peux pas l'installer car je n'ai pas d'accès root
jax
@jax Vous devez exécuter le proxy sur la machine avec la connexion Internet. Vous n'avez pas besoin de l'exécuter en tant que root. Tinyproxy est facile à installer (il existe de nombreuses alternatives).
Gilles 'SO- arrête d'être méchant'
@ Gilles, j'ai découvert ailleurs que vous pouvez créer un proxy Socks qui achemine apparemment automatiquement le trafic TCP. ssh -D 8888 user@serversur le bureau, alors vous devez dire à yum d'utiliser ce serveur proxy=socks5h://localhost:8888. Pouvez-vous voir un problème avec cela? Cela signifierait que je n'ai pas besoin d'installer quoi que ce soit sur la machine serveur, ce qui est idéal dans mon cas car c'est une machine partagée. Je ne pourrai pas le tester avant lundi.
jax