Cómo montar un servidor proxy con Ubuntu Server en Azure
El objetivo de este artículo es explicar detalladamente cómo montar un potente y estable servidor proxy en Azure, de modo que podemos utilizarlo para infinidad de cosas, tales como navegación anónima o poder disfrutar del contenido de Netflix en una diferente región a la que nos encontramos físicamente.
Este artículo consta en varias fases, en las que trataré de guiarte paso por paso en cada una de ellas:
- Montar una Máquina Virtual en Azure con Ubuntu Server
- Realizar unos ajustes en Azure a nivel de firewall e IP pública
- Instalar y configurar el servicio Squid
- Configurar el Proxy LAN de nuestro equipo
Para darle más valor al artículo, he preparado un script en PowerShell con el que cómodamente podremos encender y apagar la máquina virtual en Azure, y a su vez reconfigura y restablece la configuración Proxy LAN de nuestro PC. Muy bien, ¡empecemos!
Crear la Máquina Virtual
- Iniciamos sesión en Azure con nuestra suscripción, y nos vamos a crear un nuevo recurso.
- Buscamos Ubuntu Server, y elegimos la versión más reciente que encontremos. En mi caso ha sido Ubuntu Server 17.10, Publisher Canonical.
- Ahora seleccionamos el modelo de implementación, eligiendo “Resource Manager”, pulsamos en Crear.
- En el proceso de creación de la VM, se nos pedirá algunos datos. Podéis tomar como ejemplo mi configuración:
- Básico:
- Nombre: LinuxProxy
- Tipo de disco de VM: SSD
- Nombre de usuario: dalonso
- Tipo de autenticación: Contraseña
Contraseña: ************** - Suscripción: Visual Studio Enterpsie
- Grupo de Recursos (nuevo): LinuxProxy
- Ubicación: Centro Occidental de EEUU (West Central US)
Es importante que os apuntéis todos estos datos, los vamos a necesitar más adelante.
- Tamaño:
- B2S Estándar
- Configuración:
- Aquí no es necesario que toquéis nada, tal vez sólo recomendaría incluir una hora de pagado (Ej. 0:30:00) y cambiar la zona horaria “UTC +1”
Algunos ajustes a nivel de Azure VM
- Cuando termine de implementarse la VM, nos vamos a Configuración > Redes, y añadimos una regla de puerto de entrada. El puerto 20000 es ideal para ser utilizado como proxy.
- Y de manera opcional, también podemos establecer que la asignación de nuestra IP pública sea estática. Para ello, debemos irnos al recurso de Dirección IP Pública:Este cambio forzará el reinicio de la VM. Una vez esté reiniciada, seguimos con el siguiente paso.
xxx
Instalar y configurar Squid en Ubuntu
- Volvemos a nuestra VM, y copiamos la dirección IP Pública.
- Para conectarnos a la VM, vamos a hacerlo por SSH con Putty. Copiamos la IP, y conforme está, hacemos clic en Open.
- Aceptamos la alerta de Seguridad, y seguidamente iniciamos sesión con los datos que especificamos en el proceso de creación de la máquina virtual (paso 4).
- Ahora vamos a instalar squid con el comando “sudo apt-get install squid”, y confirmamos lo que nos pregunte con la tecla “Y“.
- Antes de ponernos a editar la configuración de squid, vamos a realizar un backup con el comando “sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.org”.
- Editamos la configuración de squid con el comando “sudo vim /etc/squid/squid.conf”
- Buscamos donde están los registros http_access, y:
- Opción A (Configuración básica)
- Cambiamos http_access deny all por http_access allow all
- Añadimos http_port 20000
- Opción B (Configuración avanzada, para mayor seguridad)
- Añadimos: acl myhome src 123.123.123.123 (con tu IP pública de casa)
- Añadimos: http_access allow myhome
- Opción A (Configuración básica)
- Añadimos: http_port 20000
Yo recomiendo la opción B, aunque la opción A realmente no supone una potencial vulnerabilidad. Esto es algo que podemos debatir a parte Os comparto un breve vídeo donde os muestro detalladamente cómo establecer la configuración de la opción B.
- Ahora reiniciamos el servicio Squid con el comando “sudo service squid restart”
- Y por último, comprobamos que el servicio funciona correctamente. Para ello, vamos a hacer un telnet indicando la IP de nuestro servidor y puerto 20000
Configurar nuestro PC para conectarnos al proxy
- Para probar nuestro proxy, vamos a nuestro PC y buscamos “Configurar el servidor proxy”, y se nos abrirán las propiedades de Internet.
- Pulsamos sobre Configuración de LAN. Marcamos el check de Servidor proxy y añadimos la IP del servidor y el puerto 20000. Por último, Aceptamos y aceptamos.
Comprobar y disfrutar
Para probar rápidamente si lo hemos hecho bien, podemos abrir nuestro navegador y accedemos al sitio web http://www.cualesmiip.com. Rápidamente nos reconocerá si realmente estamos navegando a través de nuestro proxy.
Ou yeah! “Navegas a través del proxy…” y la IP de nuestro servidor en Azure. Ahora vamos con otra prueba todavía más interesante…
Como podéis ver, en este catálogo vemos muchas películas que todavía no están disponibles en España!
Script PowerShell para facilitarnos las próximas tareas
Una vez montada, configurada y testeada toda la infraestructura, sólo tendremos que encender la máquina virtual y conectarnos al proxy cada vez que queramos utilizarlo, y apagarla y desactivar el proxy cuando terminemos de usarla. Para facilitar todo esto, he creado un script en PowerShell que conecta con nuestra suscripción de Azure, y cómodamente podremos encender y apagar la máquina virtual, y nos reconfigura el Proxy LAN de nuestro PC para usarlo. Mola, eh?
Para utilizar el script, únicamente tendremos que editar el fichero proxy_config.xml, y ejecutar el script AzureProxyNetflix.ps1. Esto es lo que incluye el archivo XML:
<?xml version="1.0" encoding="utf-8"?> <azure> <server>132.123.123.123</server> <port>20000</port> <rg_name>itproxy</rg_name> <vm_name>itproxy</vm_name> <subscription>Visual Studio Enterprise</subscription> </azure>
Una vez ejecutado el script, lo primero que debemos hacer es conectarnos a nuestra suscripción de Azure, para ello simplemente pulsamos la tecla 0, y una vez estemos conectados, ya podremos hacer uso de las otras dos opciones:
- (1) Enciende la Máquina Virtual de Azure, reconfigura nuestra LAN para conectarlo a nuestro servidor Proxy, y activa el checkbox.
- (2) Primero desactiva el uso del proxy LAN, y seguidamente apagará nuestra máquina virtual de Azure. Hay que ser paciente, puede tardar un poquito en completarse el proceso de encendido y apagado de la máquina virtual.