Temas relacionados a la programación
Foto de Usuario
moiseseccam

Ranking Troomes
Mensajes: 51
Registrado: 25 Abr 2020, 15:40

Crea tu propio Reverse Proxy para ocultar la IP del servidor final

Mensaje por moiseseccam » 26 Sep 2020, 18:14

Para estos fines, los rusos son los mejores.

Imagen

De cara al publico una IP de Rusia (un VPS ruso por ejemplo en veesp.com) y a solo nuestro conocimiento, un servidor en los Estados Unidos.

¿En que los beneficia esto? Para quienes tienen sitios web de series, películas, anime o por el simple hecho de evitar que su competencia conozca donde se aloja realmente (a saber que fines) y tener que por el motivo que sea migrar cada cierto tiempo su data, sirve mucho para portales que reciben ataques y luego tienes que verte obligado a migrar la data de forma recurrente pues con esto solamente montas un proxy y cambias la IP más nunca tocas la data (y si eres pirata con un sitio web del tipo warez... las reclamaciones no llegan al destino final, solo a la empresa offshore el cual los ignora) ¿Impresionante no?

De manera obvia no faltara el que diga que siempre hay formas de conseguir la IP pero este método de por si ya se lo dificulta a una población muy grande (igual, no me ha tocado ver esos casos, solo personas hablando de que se puede) sin mas palabreo, vamos al caso.

1) Voy y compro mi servidor (se debe hacer en un servidor que este en blanco)

Imagen

2) Le ponemos un hostname (nombre de la maquina) y llenamos datos (Ojos, Seleccionamos CentOS 7 x64 como distribución de linux)

Imagen

3) Después de poner la orden y pagar, nos entregaran el VPS como en 5-10 minutos

Imagen

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

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.+


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

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.

Le vamos a poner "y" seguido enter y finalmente esperamos a que termine todo ese proceso automatizado...

5) Una vez instalado tendremos un 50% del trabajo realizado, lo próximo que vamos a realizar sera mover las plantillas que trae VestaCP por defecto y cargar únicamente el código con el cual vamos a trabajar. Vesta únicamente nos servirá como un control panel para agregar y borrar los dominios, activar SSL con Let's Encrypt o instalar uno propio sin tener que estar modificando código por consola ni escalar a mayores.

Si tienes conocimientos como para realizar esto sin un control panel pues adelante con ello, pero esto fue realizado para quienes no quieren luchar con ello :D (O facilitarle a las personas la existencia xD)


6) 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/vesta/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)

server {
listen *:%proxy_ssl_port% ssl;
server_name %domain_idn% %alias_idn%;
ssl_certificate %ssl_pem%;
ssl_certificate_key %ssl_key%;
error_log /var/log/httpd/domains/%domain%.error.log error;

location / {
proxy_pass https://IPDESTINOFINALAQUI:443;
location ~* ^.+\.(%proxy_extentions%)$ {
root %sdocroot%;
access_log /var/log/httpd/domains/%domain%.log combined;
access_log /var/log/httpd/domains/%domain%.bytes bytes;
expires max;
try_files $uri @fallback;
}
}

location @fallback {
proxy_pass https://IPDESTINOFINALAQUI:443;
}

include %home%/%user%/conf/web/snginx.%domain%.conf*;
}

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

server {
listen *:%proxy_port%;
server_name %domain_idn% %alias_idn%;
error_log /var/log/httpd/domains/%domain%.error.log error;

location / {
proxy_pass http://IPDESTINOFINALAQUI:80;
location ~* ^.+\.(%proxy_extentions%)$ {
root %docroot%;
access_log /var/log/httpd/domains/%domain%.log combined;
access_log /var/log/httpd/domains/%domain%.bytes bytes;
expires max;
try_files $uri @fallback;
}
}

location @fallback {
proxy_pass http://IPDESTINOFINALAQUI:80;
}

include %home%/%user%/conf/web/nginx.%domain%.conf*;
}

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

7) Hecho esto, hemos concluido con el trabajo pesado... Todo lo que tenemos que hacer ahora es poner la IP de nuestro Proxy Reverso en lista blanca (si la IP que estamos poniendo es de un hosting compartido, debemos pedir al hosting que lo haga para evitar baneos de IP por desconocimiento de su plataforma de seguridad)

8) 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 VestaCP al momento de la instalación y finalmente creamos el que vamos a pasar por Proxy.

- Entramos al VestaCP el cual viene siendo IPDELPROXY:8083 con https, omitimos el Certificado SSL inseguro y le damos a Log In.
Imagen

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

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

- Ponemos nuestro dominio, lo agregamos :D
Imagen

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

9) Finalmente... Vamos a Cloudflare o nuestro Administrador DNS, luego cambiamos la IP del servidor en Estados Unidos por la del Proxy.

- Se modifica el @ (el registro A del domain.tld y el www en caso de que sea un Record A y no un CNAME)
Imagen

10) Concluimos activando el Certificado SSL y comprobando los resultados...
Imagen

RESULTADO:
Imagen


Responder