Túnel yum tráfico a través de otro servidor a través de ssh

10

Estoy ejecutando un escritorio de Fedora detrás de un proxy corporativo que bloquea el yumtráfico (específicamente *.gzy *.bz2). Tengo acceso a una máquina RedHat separada a través de ssh que puede descargar todo lo que quiera.

Cuando lo hago yum updatey otros comandos yum: ¿Es posible enrutar ese tráfico a la máquina RedHat para que haga las descargas por mí? No tengo acceso de root en la máquina RedHat pero puedo iniciar sesión y usar wget para descargar archivos. ¿Si es así, cómo?

jax
fuente

Respuestas:

21

Mi solución era similar a la de @ slm, pero usé SOCKS porque era más simple y no requería instalación de proxy en el servidor o el cliente.

Ejecute todos los comandos en la computadora con acceso restringido.

en yum.confestablecer el proxy de la siguiente manera

proxy=socks5h://localhost:1080

de un tipo de terminal

ssh -D 1080 YOUR_USER@YOUR_SERVER_WITH_FULL_WEB_ACCESS

presione enter y escriba su contraseña.

ahora, en un terminal separado (no el ssh) escriba

yum update
jax
fuente
1
Intenté usar la configuración del proxy socks5h en yum.conf, pero yum se queja de que no es http, https o ftp. (usando Centos6)
gnac
Mi solución funciona con Fedora 20 y 21. Cent y Fedora tienen distribuciones similares, por lo que es un poco extraño que no funcione.
jax
Hola, el comando ssh que mencionaste debe ejecutarse en la computadora con acceso restringido ¿verdad? En caso afirmativo, me pregunto cómo el firewall no se bloqueará y causará el error "ssh: conéctese al host YOUR_SERVER_WITH_FULL_WEB_ACCESS puerto 22: No hay ruta al host". ¿Se puede acceder a YOUR_SERVER_WITH_FULL_WEB_ACCESS desde la máquina restringida?
Hei
@Hei sí, "YOUR_SERVER_WITH_FULL_WEB_ACCESS" debe ser accesible desde su máquina. En mi caso, mi internet estaba restringido localmente.
jax
4

Debería poder proxy del tráfico de YUM a través de la conexión SSH de la siguiente manera:

  1. agregar al /etc/yum.confen el servidor protegido:

    proxy=http://127.0.0.1:8080
    
  2. desde el servidor con acceso ssh normal entrante / saliente:

    $ ssh -R 8080:ssh.server:8080 [email protected]
    
  3. En el servidor donde desea ejecutar comandos YUM:

    $ yum update
    

Referencias

slm
fuente
Solo necesito algunas aclaraciones. (Me referiré a mi escritorio Fedora como desktopy al servidor RedHat con acceso de descarga completo como server). Así que supongo que tendré que hacerlo proxy=http://127.0.0.1:8080en mi desktopya que esta es la computadora que necesita las actualizaciones de yum y también ssh -R 8080:ssh.server:8080 [email protected]en mi desktop. ¿Dónde entra la serverconfiguración en esto o no hay ninguno?
jax
2
Te estás perdiendo el paso de ejecutar un proxy HTTP que escucha en el puerto 8080 ssh.server.
Gilles 'SO- deja de ser malvado'
@Gilles, ¿necesito el proxy en mi desktopo server? Si no es el servidor, no puedo instalarlo porque no tengo acceso de root
jax
@jax Debe ejecutar el proxy en la máquina con la conexión a Internet. No necesita ejecutarlo como root. Tinyproxy es fácil de configurar (hay muchas alternativas).
Gilles 'SO- deja de ser malvado'
@Gilles, he encontrado en otros lugares que puede crear un proxy Socks que aparentemente enruta el tráfico TCP automáticamente. ssh -D 8888 user@serveren el escritorio, entonces debes decirle a yum que use este servidor proxy=socks5h://localhost:8888. Entonces, ¿puedes ver algún problema con esto? Significaría que no necesito instalar nada en la máquina del servidor, lo cual es ideal en mi caso porque es una máquina compartida. No podré probarlo hasta el lunes.
jax