GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo configurar su propio proxy web en Ubuntu 16.04 VPS

Este tutorial le muestra cómo configurar su propio proxy web en Ubuntu 16.04. Un proxy web es un sitio web donde un usuario ingresa una URL específica para desbloquear el sitio web. Hay una multitud de scripts de proxy web que se pueden usar para configurar su propio proxy web. Glype y proxy PHP se utilizará en este tutorial. Glype es un script de proxy web muy popular y PHP-Proxy es una buena alternativa. Puedes elegir uno de ellos. En mi prueba, PHP-Proxy es más rápido y funciona mejor con sitios web populares como Facebook, Twitter y YouTube, porque se actualiza activamente. Veremos cómo configurarlos con Apache/Nginx y habilitar HTTPS con Let's Encrypt.

Normalmente uso el proxy Shadowsocks y OpenConnect VPN para eludir la censura de Internet, pero existe la posibilidad de que estas dos herramientas estén bloqueadas en mi país. El proxy web es un buen método de respaldo ya que no tiene ninguna característica del proxy SOCKS y VPN. A los ojos del firewall de Internet, es solo tráfico HTTPS normal. Hay decenas de miles de proxies web gratuitos en línea. La desventaja es que una vez que esos proxies web públicos se vuelven conocidos, pueden bloquearse fácilmente. Configurar tu propio proxy web privado tiene la ventaja de que solo tú conoces su existencia.

Requisitos

Para seguir este tutorial, necesitará:

  • Un VPS (servidor privado virtual) que puede acceder libremente a sitios web bloqueados (fuera de su país o sistema de filtrado de Internet) y un nombre de dominio. Para VPS, recomiendo Vultr. Ofrecen VPS KVM de alto rendimiento con 512 millones de memoria por solo $ 2.5 por mes, lo cual es perfecto para su servidor proxy privado.
  • Instalar un servidor web y PHP

También necesita un nombre de dominio, por lo que podrá agregar el cifrado HTTPS para proteger su tráfico web. Recomiendo comprar nombres de dominio de NameCheap porque el precio es bajo y brindan protección de privacidad whois gratis de por vida.

Paso 1:Instale el servidor web y PHP

SSH en su Ubuntu 16.04 VPS. Si desea utilizar Nginx como servidor web, instale Nginx y PHP7 ejecutando el siguiente comando.

sudo apt install nginx php7.0-fpm php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip

Si desea utilizar Apache como servidor web, ejecute

sudo apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip

Paso 2:Descarga Glype o PHP-Proxy

Glipe

Descarga Glype ejecutando el siguiente comando.

wget https://www.php-proxy.com/download/glype-1.4.15.zip

Extraerlo a /var/www/proxy/ directorio.

sudo apt install unzip

sudo mkdir -p /var/www/proxy/

sudo unzip glype-1.4.15.zip -d /var/www/proxy/

Establecer www-data (usuario del servidor web) como propietario.

sudo chown www-data:www-data /var/www/proxy/ -R

Proxy PHP

Podemos usar Composer para descargar PHP-Proxy. Instale Composer desde el repositorio de Ubuntu 16.04.

sudo apt install composer

Luego descargue PHP-Proxy a /var/www/proxy/ directorio.

sudo mkdir -p /var/www/proxy/

sudo composer create-project athlon1600/php-proxy-app:dev-master /var/www/proxy/

Establecer www-data (usuario del servidor web) como propietario.

sudo chown www-data:www-data /var/www/proxy/ -R

Paso 3:configurar el servidor web

En este paso, debemos crear un bloque de servidor Nginx o un servidor virtual Apache para nuestro proxy web.

Crear bloque de servidor Nginx

Cree un bloque de servidor en /etc/nginx/conf.d/ directorio.

sudo nano /etc/nginx/conf.d/web-proxy.conf

Copie y pegue las siguientes líneas en el archivo. Reemplace proxy.example.com con su verdadero nombre de dominio. No olvide establecer un registro A en su administrador de DNS.

server {
        listen 80;
        server_name proxy.example.com;

        root /var/www/proxy/;
        index index.php;

        location / {
          try_files $uri $uri/ /index.php;
        }

         location ~ \.php$ {
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
                include snippets/fastcgi-php.conf;
        }
}

Guarde y cierre el archivo. Luego pruebe las configuraciones de Nginx.

sudo nginx -t

Si la prueba es exitosa, vuelva a cargar Nginx para que los cambios surtan efecto.

sudo systemctl reload nginx

Crear servidor virtual de Apache

Cree un servidor virtual Apache en /etc/apache2/sites-avaialable/ directorio.

sudo nano /etc/apache2/sites-available/web-proxy.conf

Copie y pegue las siguientes líneas en el archivo. Reemplace proxy.example.com con su verdadero nombre de dominio. No olvide establecer un registro A en su administrador de DNS.

<VirtualHost *:80>        
        ServerName proxy.example.com

        DocumentRoot /var/www/proxy

        ErrorLog ${APACHE_LOG_DIR}/proxy.error.log
        CustomLog ${APACHE_LOG_DIR}/proxy.access.log combined
</VirtualHost>

Guarde y cierre el archivo. Luego habilite este servidor virtual.

sudo a2ensite web-proxy.conf

Vuelva a cargar Apache para que los cambios surtan efecto.

sudo systemctl reload apache2

La interfaz web

Ahora visita proxy.example.com en su navegador web. Si usa Glype, será redirigido al panel de control de administración (proxy.example.com/admin.php ).

Si usa PHP-Proxy, puede ver un proxy web en funcionamiento esperando que ingrese una URL.

Ahora habilitemos HTTPS con Let's Encrypt.

Paso 4:habilite HTTPS con Let's Encrypt para su proxy web

Podemos instalar el cliente Let’s Encrypt (certbot) desde el PPA oficial ejecutando los siguientes comandos.

sudo apt install software-properties-common

sudo add-apt-repository ppa:certbot/certbot

sudo apt update

sudo apt install certbot

Nginx los usuarios también deben instalar el complemento Certbot Nginx.

sudo apt install python-certbot-nginx

Habilite HTTPS con el complemento Nginx.

sudo certbot --nginx --agree-tos --redirect --staple-ocsp -d proxy.example.com --email your-email-address

Apache los usuarios deben instalar el complemento Apache de Certbot.

sudo apt install python-certbot-apache

Habilite HTTPS con el complemento de Apache.

sudo certbot --apache --agree-tos --redirect --staple-ocsp -d proxy.example.com --email your-email-address

Si recibe el siguiente mensaje de error.

Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.

Consulte esta publicación en el foro Let's Encrypt para solucionarlo.

Una vez que el certificado se haya instalado correctamente, actualice su proxy en su navegador web para usar HTTPS.

(Opcional) Poner su proxy web detrás de CDN

Hay al menos tres formas en que un censor de Internet puede bloquear un sitio web:

  • Bloquear la dirección IP del sitio web.
  • Secuestrar la respuesta DNS para dar al usuario final una dirección IP incorrecta.
  • Bloquee la conexión TLS observando la Indicación del nombre del servidor (SNI)

Si le preocupa que los censores de Internet bloqueen su proxy web, puede colocar su proxy web detrás de una CDN (red de entrega de contenido) como Cloudflare. De esta manera, la dirección IP de su servidor está oculta y si el censor de Internet decide bloquear la dirección IP de Cloudflare, habrá daños colaterales ya que hay muchos otros sitios web que también usan la misma dirección IP. Esto hará que el censor de Internet se lo piense dos veces antes de hacerlo.

Para evitar el envenenamiento de DNS, el usuario final debe usar DNS sobre TLS o DNS sobre HTTPS. Para evitar la filtración de la información de SNI, el sitio web debe utilizar SNI encriptado.

Conclusión

¡Eso es todo! Espero que este tutorial te haya ayudado a crear tu propio proxy web en Ubuntu 16.04. Como siempre, si esta publicación le resultó útil, suscríbase a nuestro boletín informativo gratuito para obtener más consejos y trucos.


Ubuntu
  1. Cómo configurar e instalar Squid Proxy Server en Ubuntu 18.04

  2. Cómo verificar su versión de Ubuntu

  3. Cómo instalar Redis en Ubuntu 20.04/18.04

  4. Cómo configurar Nginx como proxy inverso en Ubuntu 20.04

  5. Ubuntu - ¿Cómo configurar una IP estática en Ubuntu?

Cómo instalar Envoy Proxy en Ubuntu 20.04

Configure su propio servidor VPN WireGuard en Ubuntu 20.04/18.04

Cómo configurar el servidor proxy Shadowsocks-libev en Ubuntu

Cómo configurar una IP estática en Ubuntu 20.04 (escritorio)

Envoy Proxy en Ubuntu 20.04:cómo instalarlo

¿Cómo configurar un Pptp Vpn en el propio servidor Ubuntu?