10

Proxmox 4 : changer le port d’écoute de l’interface web sur 443 ou un autre

L’interface Web d’administration des serveurs Proxmox est gérée par le serveur API PVE Proxy. Les paramètres par défaut d’accès à l’interface Web de Proxmox est à l’écoute sur le port 8006 pour les connexions HTTPS entrantes.

Il été vue sur le blog, comment changer le port 8006 par un autre sur les versions antérieurs de Proxmox, cependant avec la nouvelle version de Proxmox cette technique est devenue obsolète.

Depuis la version 4 de Proxmox, il n’est plus possible de modifier Pve Proxy pour le forcer à écouter sur un autre port que celui par défaut (8006).

Alors comment faire ?
La réponse est simple : NGINX 8-)

Proxmox 4 : changer le port d’écoute de l’interface web sur 443 ou un autre avec l’aide de NGINX

Le but du tutoriel est d’expliquer comment utiliser Nginx en reverse proxy pour :

  • Rediriger les demandes HTTP à utiliser le protocole HTTPS,
  • Ajoutez votre propre certificat à utiliser pour HTTPS,
  • Écouter sur le port HTTPS standard (port 443 ou autres).

Installer et configurer NGINX

La première étape consiste à installer Nginx sur le serveur Proxmox ou une instance virtuelle, qui permettra dans ce cas de gérer plusieurs Proxmox. Dans le cas de ce tutoriel, l’installation est faite sur le serveur Proxmox.

  • Installer Nginx :
  • apt install nginx
  • Créér un certificat SSL : voir OpenSSL
  • Configuration du block Server Nginx :
  • rm -f /etc/nginx/sites-available/default
    nano /etc/nginx/sites-available/proxmox-gui
    

    Le block server :

    upstream proxmox {
        server 10.X.X.X; ### Adresse Ip sur serveur Proxmox
    }
    
    server {
        listen 80 default_server;
        rewrite ^(.*) https://$host$1 permanent;
    }
    
    server {
        listen 443; ## c'est ici qu'on choisi le port d'écoute
        server_name _;
        ssl on;
        ssl_certificate /etc/nginx/ssl/certs/cert.crt;
        ssl_certificate_key /etc/nginx/ssl/certs/cert.key;
        proxy_redirect off;
        location / {
            proxy_pass https://$host$1:8006;
        }
    }
    
  • Création du lien symbolique pour la prise en compte de ce block par Nginx :
  • ln -sf /etc/nginx/sites-available/proxmox-gui /etc/nginx/sites-enabled/
  • Test de la configuration de Nginx :
  • nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    
  • Redémarrer le serveur Nginx pour la prise en compte de la nouvelle configuration :
  • systemctl restart nginx
  • Test de l’accès à l’interface web sur le port 443 :
  • proxmox-https

Aidé par jamescoyle.net

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

10 commentaires

  1. On peut le faire aussi avec iptables on redirige les paquets en entré sur le port 8006 vers le port 443.
    Fonctionnel et marche derrière un proxy.

  2. Merci maitrefou,
    je vais regarder comment faire avec iptables, ce qui permet de ne pas ajouter de brique en plus :-)

  3. iptables -t nat -I PREROUTING -d -p tcp –dport 443 -j DNAT –to-destination :8006

    :)

  4. iptables -t nat -I PREROUTING -d -p tcp –dport 443 -j DNAT –to-destination :8006
    Bad argument `tcp’
    Try `iptables -h’ or ‘iptables –help’ for more information.

  5. essais ça :
    [shell]iptables -t nat -I PREROUTING -p tcp –dport 443 -j REDIRECT –to-ports 8006[/shell]

  6. Super la méthode nginx mais quand on veut ouvrir une VM par la console, il demande un mot de passe !

  7. Ca semble fonctionner sans nginx mais avec redirection de port:
    iptables -A INPUT -p tcp –dport 8080 -j ACCEPT
    iptables -A INPUT -p udp –dport 8080 -j ACCEPT
    iptables -t nat -A PREROUTING -i vmbr0 -p tcp –dport 8080 -j REDIRECT –to-port 8006
    iptables -t nat -A PREROUTING -i vmbr0 -p udp –dport 8080 -j REDIRECT –to-port 8006

  8. Merci !

    Le contournement avec IPtable est une bonne technique aussi je trouve

  9. dans la partie adrreess est ce que je met l’address ip du proxmox ??

  10. En 7.1-1 ça se passe là : /usr/share/perl5/PVE/Service/pveproxy.pm (ligne 73)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.