cambiando el puerto de Proxmox

por | 24 julio, 2024

Por defecto muchos sabemos que proxmox utiliza el puerto 8006, sin embargo como en casi todo en Linux, podemos personalizar este puerto y por ejemplo utilizar uno estandar (443)

Lamentablemente proxmox no incluye una función nativa para poder cambiar este puerto, pero tenemos 2 opciones que nos permitirían hacer esto.

La primera, y la documentada es utilizar ngnix como proxy inverso, quizás alguno conocerá esta técnica donde básicamente colocamos un nginx o un apache a la escucha en los puertos correspondientes, el 80 y 443, y luego redirigimos al puerto de proxmox de manera interna, así el cliente no se percatará que en realidad esta consumiendo un servicio en el puerto 8006

Para instalar nginx basta con utilizar

apt install nginx

una vez instalado vamos a eliminar el sitio por defecto, también podemos borrar todo su contenido y pegar lo que les indicaré como paso 2

rm /etc/nginx/sites-enabled/default

Luego crearemos un nuevo archivo, el nombre es indiferente pero es relevante que termine en .conf y se encuentre en la ruta /etc/nginx/conf.d/

nano /etc/nginx/conf.d/proxmox.conf

Como paso 2 pegaremos lo siguiente cambiando «url» por el nombre con el cual lleguemos a nuestro proxmox

upstream proxmox {
    server "URL";
}
 
server {
    listen 80 default_server;
    rewrite ^(.*) https://$host$1 permanent;
}
 
server {
    listen 443;
    server_name _;
    ssl on;
    ssl_certificate /etc/pve/local/pve-ssl.pem;
    ssl_certificate_key /etc/pve/local/pve-ssl.key;
    proxy_redirect off;
    location / {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade"; 
        proxy_pass https://localhost:8006;
	proxy_buffering off;
	client_max_body_size 0;
	proxy_connect_timeout  3600s;
        proxy_read_timeout  3600s;
        proxy_send_timeout  3600s;
        send_timeout  3600s;
    }
}

Una nota importante, es que si manejamos certificados ssl personalizados, por ejemplo con let’s encrypt debemos apuntar a esos archivos en las siguientes lineas

    ssl_certificate /etc/pve/local/pve-ssl.pem;
    ssl_certificate_key /etc/pve/local/pve-ssl.key;

y finalmente reiniciamos el servicio nginx para que tome los nuevos cambios

systemctl restart nginx

y con eso ya tenemos nuestro proxmox en el puerto 443, de cierta forma

https://pve.proxmox.com/wiki/Web_Interface_Via_Nginx_Proxy

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *