Come descritto nell’articolo Mettere in sicurezza un VPS, in modo da migliorare la sicurezza, configuriamo SSH nel modo seguente:
root@pve:~# grep -v ^# /etc/ssh/sshd_config
Include /etc/ssh/sshd_config.d/*.conf
Port 1329
Protocol 2
LogLevel VERBOSE
MaxAuthTries 3
MaxSessions 3
AllowAgentForwarding no
AllowTcpForwarding no
ClientAliveCountMax 2
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
KbdInteractiveAuthentication no
UsePAM yes
PrintMotd no
Banner none
X11Forwarding no
PermitRootLogin yes # Consentiamo al momento l'accesso tramite utente root, in quanto l'host si trova nella rete locale
TCPKeepAlive yes
MACs hmac-sha1,hmac-sha2-256,hmac-sha2-512
Per le spiegazioni, si rimanda al precedente articolo. Una volta modificato il file /etc/ssh/sshd_config
, bisogna riavviare il servizio:
systemctl restart ssh.service && systemctl restart sshd.service
NOTA: per eliminare la schermata di benvenuto, dare il seguente comando, una volta che il collegamento sia avvenuto correttamente: echo "" > /etc/motd
Proxmox firewall #
In generale, configurare il firewall su qualsiasi dispositivo è estremamente importante, poiché permette di limitare le connessioni a specifici indirizzi IP o subnet e migliorare quindi la sicurezza complessiva del sistema.
Il firewall di Proxmox si basa su iptables
e filtra il traffico di rete a livello di hypervisor. È possibile gestire il firewall tramite l’interfaccia web o direttamente dalla linea di comando.
Configurazione delle zone #
È possibile suddividere le regole di firewall in zone. Di default, in Proxmox VE sono disponibili quattro zone:
Input
: gestisce il traffico in ingresso proveniente da reti esterneOutput
: gestisce il traffico in uscita verso reti esterneForward
: gestisce il traffico tra macchine virtuali e container
Abilitare il firewall #
Il firewall di Proxmox è disabilitato per impostazione predefinita. Per un funzionamento corretto del firewall è necessario:
- abilitare il firewall nelle impostazioni del Datacenter
- abilitare il firewall nelle impostazioni del singolo nodo
- abilitare il firewall nelle impostazioni della VM
- abilitare il firewall nelle impostazioni di ogni scheda di rete della VM
Proxmox Ports #
Le porte utilizzate da Proxmox sono le seguenti:
- Interfaccia web PVE: 8006 (TCP)
- Interfaccia web PBS: 8007 (TCP)
- VNC Web console: 5900-5999 (TCP, WebSocket)
- Proxy SPICE: 3128 (TCP)
- SSH: 22 (TCP)
- rpcbind: 111 (UDP)
- sendmail: 25 (TCP, in uscita)
- Traffico interno del cluster (corosync): 5405-5412 (UDP)
- Migrazione live: 60000-60050 (TCP)
È fondamentale, se si decide di abilitare il firewall, configurare correttamente le regole per queste porte, in modo da garantire il corretto funzionamento dei servizi associati e non bloccare inavvertitamente le funzioni di Proxmox.
Alcune precisazioni #
-
Le regole create a livello di Datacenter si applicano ai nodi che ne fanno parte, ma non incidono sulle VM o sui container configurati all’interno del nodo
-
Le regole di firewall impostate per un nodo specifico influenzeranno solo quel nodo e non il Datacenter, né le VM o i container in esso contenuti
-
Finché il firewall non è abilitato, nessuna delle regole configurate verrà effettivamente applicata
-
Una volta abilitato, il firewall bloccherà tutto il traffico in ingresso per impostazione predefinita, pertanto qualsiasi richiesta di connessione su una porta senza una corrispondente regola di permesso verrà bloccata
Configurazione del firewall a livello di Datacenter #
La prima regola da creare consente l’accesso alla GUI di Proxmox tramite la porta 8006
, ed è impostata a livello di Datacenter. Per configurarla, selezionare Datacenter>Firewall>Add
per aggiungere una nuova regola. Si consiglia di creare una regola anche per consentire l’accesso tramite SSH sulla porta corretta (nel nostro caso 1329
).
É possibile raffinare ulteriormente le regole precedenti specificando un indirizzo IP o una subnet di origine e il tipo di protocollo. In questo modo, si limita l’accesso a quella porta soltanto agli indirizzi o alle subnet autorizzate.
Il firewall non verrà attivato finché non lo si abilita esplicitamente. Per farlo, andare in Options
nella sezione Firewall:
Per impostazione predefinita, tutto il traffico in ingresso è bloccato. Quindi, se le regole non sono configurate correttamente, potrebbe risultare impossibile accedere al sistema.
Invece, sempre per impostazione predefinita, il traffico in uscita e tra VM/container é consentito.
Nell’esempio illustrato, abbiamo configurato il firewall per consentire l’accesso a Proxmox tramite la porta 8006
e, contestualmente, tramite la porta 8007
, la quale viene utilizzata per accedere alla pagina web di Proxmox Backup. Inoltre, abbiamo previsto la possibilità di inviare pacchetti ICMP per testare la connettività di rete e consentito l’accesso SSH sulla porta 1329, il tutto esclusivamente dalla rete con indirizzo 192.168.0.0/24. In questo modo, l’accesso viene garantito solo ai dispositivi appartenenti a quella specifica subnet, riducendo il rischio di accessi non autorizzati da altre reti.
Configurazione del firewall a livello di nodo #
La configurazione del firewall a livello di nodo funziona esattamente come quella a livello di Datacenter. Tuttavia, le regole si applicano solo al nodo specificato, mentre le VM o i container non erediteranno le regole firewall dal nodo su cui risiedono. Per questo motivo, bisogna creare regole di firewall per ogni VM/container in maniera individuale.
Da ricordare che, per poter utilizzare il firewall a livello di nodo/VM, bisogna averlo abilitato anche a livello di Datacenter.
Come già specificato, i nodi ereditano le regole di firewall configurate a livello di Datacenter. Quindi, se si desidera che tutti i nodi di un cluster seguano le stesse regole, è opportuno configurarle a livello di Datacenter.
Configurazione del firewall per VM/container #
Le VM e i container non ereditano le regole firewall dal nodo su cui risiedono.
La configurazione del firewall a livello di VM funziona esattamente come quella dei livelli precedenti. Una volta create le regole firewall, assicurarsi che sia attivo: Firewall > Options > Firewall > Yes
. Dopo aver abilitato il firewall, le regole configurate verranno applicate immediatamente.
Anche in questo caso, di default tutto il traffico in entrata viene bloccato.
Security Groups #
I Security Groups
e gli IP alias
possono essere impiegati nelle regole firewall per consentire o bloccare il traffico basandosi sul gruppo o sull’alias.
Si possono definire dei gruppi contenenti un insieme di regole e poi assegnarli alle risorse, facilitandone la gestione e il mantenimento.
Comandi da terminale #
Alcuni dei principali comandi da linea di comando:
pve-firewall enable
: abilita il firewallpve-firewall disable
: disabilita il firewallpve-firewall status
: mostra lo stato corrente del firewallpve-firewall reload
: ricarica i file di configurazionepve-firewall log
: visualizza il log del firewall