Proxy + NAT en máquinas virtuales

En la entrada de hoy os voy a enseñar a configurar una máquina virtual en modo NAT, para poder tener conexión a internet, si en nuestra organización está implantado un proxy en la red local a la que estamos conectados.

Lo que explico a continuación es una experiencia y algo nuevo que he aprendido y que me ha ocurrido recientemente en mi nuevo curro. Os cuento los detalles…

Primer día…

Imaginaos el llegar a un nuevo puesto de trabajo y encontraros con una configuración de red tan estricta y tan segura, que hasta la tarea más sencilla que puedes llegar a hacer en tu día a día cómo sysadmin se te complica.

A lo mejor soy el único al que le ha pasado esto (no lo creo), aun así os cuento mi “problemilla”… .

Estaba yo tan feliz el primer día de curro, leyendo info que me dieron en la nueva empresa, accesos, credenciales, preparando mi equipo … etc, entre estas tareas básicas que suele hacer cualquier persona el primer día, opté también por crearme un par de maquinitas virtuales en mi PC con VirtualBox.

La idea era simple, tener un par de máquinas (una Debian y una CentOS) para realizar X pruebas cuando me hiciera falta.

Lo que siempre suelo hacer, es configurar las tarjetas de red de las VM en modo Bridge (adaptador puente), para que me tome así una IP de mi red local y poder conectarme más tarde por SSH, mediante Putty, a esa máquina (por preferencia, prefiero trabajar con una sesión SSH en lugar de con el entorno de VirtualBox).

Empiezan los problemas

Una vez tengo instalada las máquinas (ISO netinstall), me pongo a hacer lo típico, actualizar repositorios, instalar paquetería y demás.

Pues bien, cuando intento hacer un update o install de algo, me salta el típico error de que no se pueden resolver ni conectar con las fuentes solicitadas.

Tras darle mil vueltas y mirar si la interfaz estaba Up, si yo tenía red en mi equipo …. etc etc etc, empiezo a mosquearme con que algo raro hay en esta red.

Tras mucho preguntar a mis nuevos compañeros, sólo una persona me aportó la solución que me valió y que ahora yo la explico.

La solución a este problema…

Cuando en una red local existe un Proxy, cualquier máquina virtual a la que le intentéis poner una interfaz en modo Bridge, no os funcionará.

De hecho ni tan siquiera el servicio DHCP de esa red os dará una IP dinámica.

La solución es indicar, a nivel de sistema operativo de la VM, el proxy que debe utilizar y establecer sí o sí, su interfaz en modo NAT.

Dependiendo el sistema operativo para cada caso, la configuración es distinta, a continuación os lo explico para un sistema operativo Debian y un CentOS…

Proxy cliente – Debian

En Debian, modificar los ficheros:

  • /etc/environment
    • proxy=http://ip_o_nombre_server_proxy:puerto
    • http_proxy=http://ip_o_nombre_server_proxy:puerto
    • https_proxy=http://ip_o_nombre_server_proxy:puerto
    • ftp_proxy=http://ip_o_nombre_server_proxy:puerto
  • /etc/apt/apt.conf
    • Acquire::http::Proxy “http://ip_o_nombre_server_proxy:puerto”
    • Acquire::https::Proxy “http://ip_o_nombre_server_proxy:puerto”
    • Acquire::ftp::Proxy “http://ip_o_nombre_server_proxy:puerto”
  • /etc/bash.bashrc export
    • export proxy=http://ip_o_nombre_server_proxy:puerto
    • export http_proxy=http://ip_o_nombre_server_proxy:puerto
    • export https_proxy=http://ip_o_nombre_server_proxy:puerto
    • export ftp_proxy=http://ip_o_nombre_server_proxy:puerto

Una vez realizadas estas modificaciones, reiniciar el servicio de red (service networking restart) y si no funciona, reiniciar la VM.

Proxy cliente – CentOS

En CentOS, modificar los ficheros:

  • /etc/rc.local
    • proxy=http://ip_o_nombre_server_proxy:puerto
    • http_proxy=http://ip_o_nombre_server_proxy:puerto
    • https_proxy=http://ip_o_nombre_server_proxy:puerto
    • ftp_proxy=http://ip_o_nombre_server_proxy:puerto
  • /etc/yum.conf
    • proxy=http://ip_o_nombre_server_proxy:puerto
    • http_proxy=http://ip_o_nombre_server_proxy:puerto
    • https_proxy=http://ip_o_nombre_server_proxy:puerto
    • ftp_proxy=http://ip_o_nombre_server_proxy:puerto

Una vez realizadas estas modificaciones, reiniciar el servicio de red (service network restart) y si no funciona, reiniciar la VM.

Espero que os sea de utilidad este post.

Hasta la próxima!!

Un salu2 Sys@dmins 🙂

About: Miguel Carretas Perulero

Miguel Carretas Perulero ha escrito 65 artículos en este blog.

Deja un comentario