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
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; } }
ln -sf /etc/nginx/sites-available/proxmox-gui /etc/nginx/sites-enabled/
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl restart nginx
Aidé par jamescoyle.net
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.
Merci maitrefou,
je vais regarder comment faire avec iptables, ce qui permet de ne pas ajouter de brique en plus :-)
iptables -t nat -I PREROUTING -d -p tcp –dport 443 -j DNAT –to-destination :8006
:)
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.
essais ça :
[shell]iptables -t nat -I PREROUTING -p tcp –dport 443 -j REDIRECT –to-ports 8006[/shell]
Super la méthode nginx mais quand on veut ouvrir une VM par la console, il demande un mot de passe !
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
Merci !
Le contournement avec IPtable est une bonne technique aussi je trouve
dans la partie adrreess est ce que je met l’address ip du proxmox ??
En 7.1-1 ça se passe là : /usr/share/perl5/PVE/Service/pveproxy.pm (ligne 73)