Tutorial: Crea tu propio Reverse Proxy para Ocultar la IP del Servidor final (Versión 2024)

Carlos Frias Seguir
Seguidores
68

1
Ro
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Desde
6 Nov 2016
Mensajes
8.101
Hola que tal betas 😎 ¿Cómo pasa el tiempo no? en el día de hoy les voy a mostrar a realizar lo siguiente, en su Versión Actualizada con HestiaCP

1727635650104.png

...A pedido de los usuarios (y los que me falto seguramente mencionar)

Ya no hacen tutoriales asi
Hola amigo, vestacp esta a punto de desaparecer como lo conocemos, será que las instrucciones serviran para hestiacp?
también me uno a la petición que te hicieron algunos por ahí de hacerlo usando HestiaCP

...Sin mas preambulos ¡Vamos al mambo! 👣

En este tutorial actualizado, aprenderemos a configurar un proxy reverso utilizando HestiaCP sobre Nginx. Desde el punto de vista público, mostraremos una IP de Latvia (por ejemplo, un VPS en veesp.com), mientras que a nuestro conocimiento privado, el servidor principal estará alojado en Estados Unidos.

¿Por qué utilizar este enfoque?

Este método es sumamente útil para quienes gestionan sitios web de series, películas, anime, contenido para adultos, o simplemente quieren ocultar la ubicación real de su servidor por razones estratégicas (por ejemplo, para protegerse de la competencia). Es ideal también para portales que reciben ataques frecuentes y que suelen estar obligados a migrar sus datos recurrentemente. Con este método, solo necesitas configurar el proxy y cambiar la IP, sin tocar los datos del servidor original. Además, si operas un sitio web de contenido warez o similar, cualquier reclamación legal llegaría solo a la empresa offshore (como el proveedor de VPS), que generalmente ignora estas solicitudes. ¿Genial, verdad?

Es cierto que siempre habrá quienes digan que hay formas de obtener la IP real del servidor de origen, pero este método ya pone una barrera significativa para la mayoría de las personas (y sinceramente, aún no he visto que se presenten estos casos, solo comentarios al respecto). Sin más preámbulos, ¡vamos al grano!

1) Compra tu servidor

Lo primero que haremos es adquirir un servidor, asegurándonos de que esté completamente limpio y sin configuraciones previas.

1727636160539.png


2) Ponemos un hostname (nombre del servidor) y llenamos datos (Ojos, Seleccionamos Ubuntu 22.04 TLS)

1727638373146.png


3) Datos del comprador (Pueden no ser reales, pero no debes usar VPN si vas a pagar con PayPal o Tarjeta)

1727636822807.png


4) Completamos la compra

1727637129421.png


1727637229825.png


5) Activamos la cuenta y listo, seguimos...

1727636901517.png


6) Después de poner la orden y pagar, nos entregaran el VPS en 5 minutos

1727637453530.png


1727637472681.png


7) Ahora bien, con los datos que recibimos por correo electrónico, entramos al VPS por SSH y lanzamos una instalación de HestiaCP

1727637363355.png


Normalmente el puerto SSH en Veesp por defecto es el 22 pero en otras empresas esto podría variar salvo que lo cambies a tu manera.

1727638047219.png


1727638481738.png


8) Vamos a copiar y pegar en la consola o bien escribir al pie de la letra la siguiente línea de comando con la cual daremos apertura la instalación.

Insertar CODE, HTML o PHP:
yes | apt -y update; apt -y upgrade; apt -y install wget curl nano perl perl-base; wget -4 wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh; bash hst-install.sh --phpfpm yes --multiphp no --vsftpd no --named no --mysql no --exim no --dovecot no --clamav no --spamassassin no --port 56464 --lang es --hostname server.private.lan --email tucorreo@proton.me --password Cambiame01@#$ --iptables no --fail2ban no --postgresql no --quota no --api no --force;

Ojos con el hostname, correo y contraseña puesto en la línea de comando, ademas tener en cuenta que la contraseña root del VPS es diferente a la del admin.

1727639064592.png


9) Escribes "Y" luego enter nuevamente (es posible que se tarde un rato)

1727639116189.png


(y si te sale algo como esto, toma en cuenta que es normal y no tardara más de unos 2-5 minutos adicionales en continuar por si solo)

1727638646681.png


(y/o bien si recibes una ventana como esta, le das enter dos veces para que el proceso continue con su destino sin tocar mas nada...)

1727638793586.png


1727638825195.png


y finalmente el Install de HestiaCP esta en curso...

1727639260411.png


Tomará al menos 10 minutos (o menos) en instalarse HestiaCP y no pasara de 20 minutos en proveedores con conexión a internet del malo.

10) A la salida de este mensaje, damos enter y esperamos de 2 a 5 minutos que concluya el reinicio del servidor

1727639388897.png


11) Una vez que HestiaCP esté instalado, habremos completado aproximadamente el 50% del proceso. Lo siguiente será mover las plantillas predeterminadas de HestiaCP y cargar únicamente el código específico con el que vamos a trabajar. HestiaCP funcionará como un panel de control para agregar y eliminar dominios, activar SSL con Let's Encrypt, o instalar un certificado personalizado sin necesidad de modificar el código manualmente desde la consola ni complicar el proceso.

Si tienes experiencia y prefieres trabajar sin un panel de control, puedes proceder de esa manera. Sin embargo, este tutorial está orientado a quienes buscan simplificar la configuración y evitar contratiempos (o para facilitarles la vida a los demás 😄). Personalmente, tengo la experiencia para hacerlo manualmente, ¡pero quiero hacerles todo más sencillo a ustedes!

1727640388455.png


Insertar CODE, HTML o PHP:
mv /usr/local/hestia/data/templates/web/nginx/ /usr/local/hestia/data/templates/web/nginx.old; mkdir /usr/local/hestia/data/templates/web/nginx/; cd /usr/local/hestia/data/templates/web/nginx/; rm -rf /etc/nginx/conf.d/1* /etc/nginx/conf.d/2* /etc/nginx/conf.d/3* /etc/nginx/conf.d/4* /etc/nginx/conf.d/5* /etc/nginx/conf.d/6* /etc/nginx/conf.d/7* /etc/nginx/conf.d/8* /etc/nginx/conf.d/9* /etc/nginx/conf.d/0*; mv /usr/local/hestia/data/packages /usr/local/hestia/data/packages.old; mkdir /usr/local/hestia/data/packages; wget -4 https://raw.githubusercontent.com/carlosfriascf/hestia22/master/default.pkg -O /usr/local/hestia/data/packages/default.pkg; wget -4 https://raw.githubusercontent.com/carlosfriascf/hestia22/master/default.pkg -O /usr/local/hestia/data/packages/system.pkg; sed -i '/Early-Data \$rfc_early_data/d' /etc/nginx/nginx.conf;

12) Vamos a pegar el siguiente código (y modificar lo que dice IPDESTINOFINALAQUI por la IP del servidor que tenemos en Estados Unidos, por ejemplo)

- Creamos la plantilla default.stpl, la podemos crear de la siguiente forma nano /usr/local/hestia/data/templates/web/nginx/default.stpl;

y luego insertamos lo siguiente... (nota con poner la IP del servidor o hosting en IPDESTINOFINALAQUI como destino/hacia)

Insertar CODE, HTML o PHP:
server {
    listen [::]:%proxy_ssl_port% ssl;
    listen %ip%:%proxy_ssl_port% ssl;
    server_name %domain_idn% %alias_idn%;
    error_log /var/log/%web_system%/domains/%domain%.error.log error;
    ssl_certificate %ssl_pem%;
    ssl_certificate_key %ssl_key%;
    ssl_stapling on;
    ssl_stapling_verify on;
    include %home%/%user%/conf/web/%domain%/nginx.hsts.conf*;
    location ~ /\.(?!well-known\/|file) {deny all; return 404;}
    location / {
        proxy_pass https://IPDESTINOFINALAQUI;
        location ~* ^.+\.(%proxy_extensions%)$ {
            try_files $uri @fallback;
            access_log /var/log/%web_system%/domains/%domain%.log combined;
            access_log /var/log/%web_system%/domains/%domain%.bytes bytes;
            expires max;
        }
    }
    location @fallback {proxy_pass https://IPDESTINOFINALAQUI;}
    location /error/ {alias %home%/%user%/web/%domain%/document_errors/;}
    proxy_hide_header Upgrade;
    include %home%/%user%/conf/web/%domain%/nginx.ssl.conf_*;
}

- Hacemos lo mismo con default.tpl, la podemos crear de la siguiente forma nano /usr/local/hestia/data/templates/web/nginx/default.tpl;

Insertar CODE, HTML o PHP:
server {
    listen [::]:%proxy_port%;
    listen %ip%:%proxy_port%;
    server_name %domain_idn% %alias_idn%;
    error_log /var/log/%web_system%/domains/%domain%.error.log error;
    include %home%/%user%/conf/web/%domain%/nginx.forcessl.conf*;
    location ~ /\.(?!well-known\/|file) {deny all; return 404;}
    location / {
        proxy_pass http://IPDESTINOFINALAQUI;
        location ~* ^.+\.(%proxy_extensions%)$ {
            try_files $uri @fallback;
            access_log /var/log/%web_system%/domains/%domain%.log combined;
            access_log /var/log/%web_system%/domains/%domain%.bytes bytes;
            expires max;
        }
    }
    location @fallback {proxy_pass http://IPDESTINOFINALAQUI;}
    location /error/ {alias %home%/%user%/web/%domain%/document_errors/;}
    include %home%/%user%/conf/web/%domain%/nginx.conf_*;
}

- Recuerda guardar los cambios, en nano los cambios se guardan CTRL + O (luego enter) y para salir CTRL + X...

1727641246911.png


13) Finalizando el proceso principal 🤖

Con esto, habremos concluido la parte más complicada del proceso. Ahora solo nos queda añadir la IP de nuestro proxy reverso a la lista blanca (Opcional) Si esta IP pertenece a un hosting compartido, es importante contactar al proveedor para que realice la configuración, evitando así posibles bloqueos automáticos por parte de la plataforma de seguridad. Por ejemplo, he tenido que enviar tickets a proveedores como HWPeru o Yada para solicitar exclusiones en herramientas como Bitninja, ya que suelen bloquear con frecuencia las IP de nuestros proxies.

1727641603583.png


(Nota: Este paso solo aplica si estás usando un hosting compartido, en cuyo caso es recomendable enviar un ticket al soporte técnico.)

14) Una vez la IP este en lista blanca en nuestro firewall o bien que la empresa de hosting nos comente que hizo la exclusión, pasamos a borrar el dominio de pruebas que genero HestiaCP al momento de la instalación y finalmente creamos el que vamos a pasar por Proxy.

- Entramos al Hestia cual viene siendo IPDELPROXY:56464 (o en su defecto 8083) con https, omitimos el Certificado y le damos a Next & Enter.

1727641742952.png


1727641800961.png


- Nos dirigimos hacia "Web" para ver el listado de dominios existentes...

1727641898632.png


- Borramos esto y agregamos el nuestro pulsando el botón verde (+) para agregar el nuestro.

1727641954991.png


1727641972396.png


1727642132186.png


- Ponemos nuestro dominio, lo agregamos 😁

1727642104418.png


- Y listo, este es el mensaje que nos confirmara del buen trabajo que hemos realizado😇

1727642192053.png


15) Configuración final: Actualizando el DNS

Finalmente, dirígete a Cloudflare o al panel de tu administrador de DNS. Allí, cambia la IP del servidor ubicado en Estados Unidos por la IP de tu proxy.

- Modifica el registro @ (es decir, el registro A de tu dominio principal domain.tld) y, si corresponde, también el www. Asegúrate de que, si www está configurado como un registro A, lo cambies igualmente a la nueva IP del proxy. Si es un CNAME, verifica que esté correctamente redirigido al dominio principal.

1727643886375.png


16) Concluimos activando el Certificado SSL y comprobando los resultados...

1727642483451.png


1727642619146.png


RESULTADO:


1727642870403.png


1727642370916.png


Si tienes alguna pregunta, corrección, inquietud, o aporte, será más que bienvenido. No es ninguna molestia, así que puedes enviarme un mensaje privado o dejar un comentario en este tema, y con gusto te responderé. Estaré al pendiente de cualquier novedad ¡Nos vemos en el próximo tutorial! 😊

Por cierto, si deseas conocer más sobre los servicios que ofrezco, solo haz clic en el enlace de mi firma😎
 
Última edición:

Daniel Muñoz

1
Pi
Programador
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Desde
20 Mar 2009
Mensajes
5.981
Maravilloso, muchisimas gracias.
 

Country Boy

Eta
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Desde
23 Feb 2016
Mensajes
1.289
Gracias tigre, te has lucido con este tutorial!
 

m16u31

Zeta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
23 Sep 2018
Mensajes
1.974
gracias, esto me servirá mucho en las próximas semanas.
 

mrtiki10001

1
Pi
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
¡Excelente comerciante!
Suscripción a IA
Desde
10 Abr 2020
Mensajes
5.535
Calidad en su maxima expresiòn
 

Plaga

Moderador
1
Sigma
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
¡Excelente comerciante!
Suscripción a IA
Desde
15 Abr 2009
Mensajes
11.048
Muchas gracias Carlos, excelente aporte a la comunidad!
 

jordi23

VIP
Gamma
Hospedaje
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Suscripción a IA
Desde
29 Sep 2023
Mensajes
239
eres un crack :cool:

buen tutorial
 

produpromo

1
Mi
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Suscripción a IA
Desde
2 Feb 2016
Mensajes
3.051
Se va a favoritos. En un día de estos lo pruebo, solo por curiosidad y aprendizaje 😅
 

Roberto3321

VIP
1
Xi
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Desde
22 Jul 2016
Mensajes
4.014
Si que es Bellisimoo :)
 

Gregh

Ómicron
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Desde
20 Sep 2016
Mensajes
4.631
Gran aporte muchas gracias 👍 👍 👍
 

fededav

VIP
Delta
Programador
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Desde
1 Jul 2019
Mensajes
727
Gracias por el tutorial eres un crack!!
 
Arriba