Hola!
Voy a documentar un poco la puesta a punto del servidor con Proxmox.
Para empezar, estoy usando un servidor dedicado de Scaleway. Ofrecen ya una imagen del SO Proxmox, aunque en la versión 7 que ya no tiene soporte. Les he escrito para ver si pueden subir una más reciente.
La instalación se realiza autónomamente y una vez acabada se puede acceder al panel sin problemas.
En cuanto a la creación de una red interna, esto es el fichero /etc/network/interfaces
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet manual
iface eno2 inet manual
auto vmbr0
iface vmbr0 inet static
address XXX.XXX.XXX.XXX/24
netmask 255.255.255.0
gateway XXX.XXX.XXX.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
# hwaddress A4:BF:01:1E:58:48
auto vmbr1
iface vmbr1 inet static
address 10.10.10.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
Des del panel de configuración se ve así:
Parte de esta configuración y de la siguiente la he realizado gracias a las aportaciones en este hilo, del que saqué alguna configuración y este tutorial:
También configuré un servidor DHCP:
apt install dnsmasq
vi /etc/dnsmasq.d/vnet
# /etc/dnsmasq.d/vnet
dhcp-range=10.10.10.3,10.10.10.100,12h
dhcp-option=option:dns-server,XX.XXX.XX.6
dhcp-option=option:dns-server,XX,XXX,XX.7
Los DNS los he sacado del panel de configuración del nodo.
systemctl stop systemd-resolved
systemctl disable systemd-resolved
# En la última instalación tuve que parar 'named'
systemctl stop named
systemctl start dnsmasq
Con esto, he podido instalar correctamente nuevos VM en los que instalar servicios y estos podían acceder a la red e Internet.
Redirección de Dominios
Para redirigir los dominios de los diferentes servicios a los VMs he instalado y configurado el proxy nginx.
apt install nginx python3-certbot-nginx
ln -s /usr/sbin/nginx /bin/
rm /etc/nginx/sites-enabled/default
vi /etc/nginx/sites-available/forum
server {
listen 80;
listen [::]:80;
server_name discourse.anartist.org;
location / {
proxy_pass https://10.10.10.10:80/;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
ln -s /etc/nginx/sites-available/forum /etc/nginx/sites-enabled/
certbot --nginx -d discourse.anartist.org
El fichero final de nginx para discourse sería:
# enforce HTTPS
server {
listen 80;
listen [::]:80;
server_name discourse.anartist.org;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name discourse.anartist.org;
access_log /var/log/nginx/discourse.access.log;
error_log /var/log/nginx/discourse.error.log;
# SSL
ssl_certificate /etc/letsencrypt/live/discourse.anartist.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/discourse.anartist.org/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/discourse.anartist.org/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
# ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 8.8.8.8;
client_max_body_size 100m;
location / {
proxy_pass https://10.10.10.10:443/;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
