Crear un proxy HTTP con tinyproxy en Ubuntu 16.04

En Tutoriales y Guías por

Ya han sido varias las ocasiones en las que hablamos sobre como configurar un proxy en nuestro servidor VPS, pero en esta ocasión vamos a hacerlo con un servidor proxy muy liviano. A lo largo de este tutorial vamos a mostrar como instalar un proxy HTTP anónimo en Ubuntu 16.04 empleando el servidor tinyproxy para Linux.

Crear un proxy HTTP con tinyproxy en Ubuntu 16.04

Antes de avanzar, quiero mostrar otros tutoriales relacionados que pueden ser de utilidad e incluso una mejor opción:

Como instalar un proxy HTTP anónimo en Ubuntu 16.04

El proceso de instalación y configuración nos guiará para conseguir un proxy HTTP anónimo, entendiendo por anónimo que no mostrará nuestra IP real, sino la del servidor. Hemos empleado un VPS barato para realizar todas las pruebas con tinyproxy y asegurarnos de que los pasos aquí explicados funcionan correctamente.

¿Qué es tinyproxy?

Es un software de código abierto y gratuito que podemos emplear en los sistemas operativos Linux, nosotros hemos elegido Ubuntu por su simplicidad. El código fuente está disponible en Github, donde además podemos reportar bugs o problemas.

Instalando tinyproxy en Ubuntu 16.04.

En primer lugar comprobamos que tenemos nuestro sistema operativo actualizado ejecutando los comandos:

apt-get update

apt-get upgrade

Para instalar tinyproxy desde los repositorios de Ubuntu emplearemos el comando:

apt-get install tinyproxy

Tras ejecutar el comando anterior comenzará el proceso de instalación, en el que si todo ha ido bien no nos debería mostrar ningún error.

Configurando tinyproxy como proxy anónimo.

El proceso de configuración pasa por editar el archivo de configuración tinyproxy.conf con algún editor de texto, como nosotros vamos a trabajar a través de la consola emplearemos nano como editor, por lo que ejecutamos el siguiente comando:

nano /etc/tinyproxy.conf

En otras distribuciones Linux puede ser que tinyproxy se instale en su propia carpeta y el archivo de configuración lo encontremos en /etc/tinyproxy/tinyproxy.conf, pero este no es el caso de Ubuntu.

Ahora tenemos en pantalla el archivo de configuración y debemos realizar los ajustes necesarios para conseguir nuestro objetivo.

Restringir / permitir acceso al proxy en base a la IP.

En primer lugar buscamos la sección del archivo de configuración donde se gestionan las diferentes IP que tienen acceso al servidor proxy. En esta configuración de ejemplo quiero permitir el acceso a todas las IP, así que elimino la línea por defecto Allow 127.0.0.1 que sólo permite conexiones locales.

Si quisiésemos permitir acceso sólo a nuestra IP, tendríamos que emplear una configuración con nuestra IP, Allow 10.10.10.10, donde 10.10.10.10 lo remplazaríamos con nuestra dirección IP.

Cambiar el puerto por defecto.

Por motivos de seguridad, es una buena práctica cambiar el puerto por defecto, ya que alguien podría usar nuestro proxy sin permiso. Para evitarnos problemas, elegiremos un puerto por encima del valor 1024, incluso es recomendable emplear valores altos para evitar conflictos con otros programas.

En este ejemplo voy a emplear como puerto el 15632. Procedo a editar la línea correspondiente del archivo de configuración que por defecto trae el puerto 8888 configurado, por lo que tras editar la línea quedaría: Port 15632

Eliminar la cabecera HTTP VIA.

Tinyproxy viene configurado por defecto para usar la cabecera HTTP VIA que compromete nuestra seguridad, ya que el proxy dejaría de ser anónimo y pasaría a ser transparente, es decir, mostraría nuestra IP real.

Como no queremos que se muestre nuestra IP real desactivamos la cabecera VIA: DisableViaHeader Yes

Con esto tenemos todo listo, guardamos nuestra configuración y reiniciamos el proxy.

¿Cómo iniciar, para y reiniciar tinyproxy?

  • Reiniciar: /etc/init.d/tinyproxy restart
  • Iniciar: /etc/init.d/tinyproxy start
  • Parar: /etc/init.d/tinyproxy stop

¿Dónde está el archivo log de tinyproxy?

Es bueno conocer la ubicación por defecto del archivo log donde se almacenan los errores, ya que si algo no nos funciona correctamente, podemos encontrar información valiosa en este archivo para tratar de solucionar el problema.

/var/log/tinyproxy/tinyproxy.log

¿Configurar nuestro proxy anónimo en FireFox?

Ya tenemos nuestro proxy HTTP listo para funcionar, tan sólo debemos configurar nuestro navegador para usarlo y así ocultar nuestra IP. He elegido el navgeador FireFox porque la configuración del proxy es mucho más sencilla.

Accedemos al panel de Opciones → Avanzado → Red y en el apartado de Conexión le damos a Configuración.

Firefox opciones de red

En la nueva ventana agregamos los datos de nuestro proxy de tal manera que quede algo asi:

Firefox configuracion de conexion

Fijarse bien en que hay que introducir la IP y el puerto de nuestro proxy en los campos “Proxy HTTP” y “Proxy SSL”.

Conclusiones finales.

Los inconvenientes que me he encontrado son:

  • Tiempos de respuesta mayores si los comparamos con los que ofrece un tunel socks.
  • Soporte limitado para el protocolo HTTPS, ya que tinyproxy solo redirige el tráfico HTTPS empleando el método CONNECT.
  • La versión que está en los repositorios de Ubuntu parece algo antigua (en el momento de escribir este tutorial es la versión 1.8.3). Esto lo podemos solucionar compilando nosotros mismos el código fuente de la última versión, pero eso lo dejamos para un próximo articulo.

Hemos podido ver que el proxy funciona correctamente y mantiene nuestro anonimato al navegar, pero si aun así quieres revisar alguna alternativa a tinyproxy te dejo las siguientes opciones:

  • polipo es gratuito y de código abierto.
  • Privproxy similar al anterior e incluso capaz de filtrar la publicidad de las webs.
  • Squid el más completo de todos, pero también el más complejo.