Merge pull request #488 from jcastro/docs/review-security

docs: review security documentation in all seven translations
This commit is contained in:
MacRimi
2026-10-18 13:31:07 +02:00
committed by GitHub
30 changed files with 3450 additions and 84 deletions
+152
View File
@@ -0,0 +1,152 @@
{
"meta": {
"title": "Fail2Ban | Documentazione ProxMenux",
"description": "Installa Fail2Ban con tre jails ottimizzati per Proxmox (SSH aggressivo, Proxmox UI 8006, ProxMenux Monitor 8008). Include la correzione journald MaxLevelStore, servizi di registro personalizzati per l'affidabilità, backend nftables/iptables rilevati automaticamente e SSH MaxAuthTries rafforzamento.",
"ogTitle": "Fail2Ban | Documentazione ProxMenux",
"ogDescription": "Protezione contro la forza bruta per SSH e le interfacce web Proxmox, con correzioni di journald e del backend specifiche per Proxmox."
},
"header": {
"title": "Fail2Ban",
"description": "Installa Fail2Ban per Proxmox: tre jail (SSH aggressivo, interfaccia Proxmox su 8006, ProxMenux Monitor su 8008 e proxy inverso), correzione del livello journald per salvare gli eventi SSH, due servizi che copiano il journal in file per aggirare un problema del backend systemd, rilevamento del backend firewall e rafforzamento SSH con MaxAuthTries.",
"section": "Sicurezza"
},
"intro": {
"title": "Cosa fa",
"body": "Installa Fail2Ban dai repository Debian e scrive una configurazione Proxmox che protegge subito SSH, interfaccia web Proxmox e ProxMenux Monitor. Se rileva una installazione esistente, offre invece un menu per reinstallare o rimuovere."
},
"firstLaunch": {
"heading": "dialogo di primo lancio",
"body": "Se Fail2Ban non è installato, lo script mostra una conferma con ciò che installerà e configurerà. Annulla termina senza modifiche; confermare avvia l'installazione.",
"imageAlt": "Conferma di installazione di Fail2Ban con tre jail, correzione di journald e rafforzamento SSH"
},
"jails": {
"heading": "Le tre jail",
"headerJail": "Jail",
"headerProtects": "Protegge",
"headerRetries": "Tentativi / Finestra",
"headerBan": "Durata del blocco",
"rows": [
{
"jail": "[sshd]",
"protects": "SSH (modalità aggressive — include ddos, mode, normal)",
"retries": "2 / 60 min",
"ban": "9 ore"
},
{
"jail": "[proxmox]",
"protects": "Proxmox web UI (porta 8006)",
"retries": "3 / 10 min",
"ban": "1 ora"
},
{
"jail": "[proxmenux]",
"protects": "ProxMenux Monitor (porta 8008 + proxy inverso http/https)",
"retries": "3 / 10 min",
"ban": "1 ora"
}
],
"outro": "Impostazioni predefinite globali da <code>jail.local</code>: <code>ignoreip = 127.0.0.1/8 ::1</code>, <code>ignoreself = true</code>,<code> bantime = 86400</code> (fallback di 24 ore per jails che non lo sovrascrivono), <code>maxretry = 2</code>, <code>findtime = 1800</code>."
},
"journald": {
"heading": "Perché la correzione journald è importante",
"intro": "Proxmox fornisce <code>/etc/systemd/journald.conf</code> con <codeNw>MaxLevelStore=warning</codeNw>. journald scarta i messaggi di livello <em>inferiore</em> a warning prima di salvarli. SSH e PAM segnalano gli errori di autenticazione ai livelli <em>info</em> / <em>notice</em>, quindi:",
"diagram": {
"sshLabel": "SSH / PAM",
"sshDetail": "errore di autenticazione\n(livello info / notice)",
"journaldLabel": "journald",
"journaldDetail": "MaxLevelStore=warning\n→ evento scartato senza avviso",
"fail2banLabel": "Fail2Ban",
"fail2banDetail": "non vede niente\n→ non vieta mai nulla",
"arrowLabel": "Proxmox predefinito"
},
"afterDiagram": "L'installatore rileva questo e scrive un drop-in a <codeXs>/etc/systemd/journald.conf.d/proxmenux-loglevel.conf</codeXs> aumentando sia <code>MaxLevelStore</code> che <code>MaxLevelSyslog</code> a <code>info</code>:",
"code": "[Journal]\nMaxLevelStore=info\nMaxLevelSyslog=info",
"outro": "Poi riavvia <code>systemd-journald</code>. Il drop-in viene rimosso su disinstallazione, ripristinando il default Proxmox originale."
},
"loggers": {
"heading": "Perché due servizi logger personalizzati",
"intro1": "Fail2Ban può leggere direttamente il journal systemd (<code>backend = systemd</code>), ma su Proxmox questo backend ha problemi noti con i processi worker di <code>pvedaemon</code>: gli eventi di autenticazione compaiono nel journal ma non sempre vengono rilevati. Il problema riguarda occasionalmente anche <code>sshd</code>.",
"intro2": "ProxMenux crea due piccoli servizi systemd che seguono le unità interessate con <code>journalctl -f</code> e aggiungono ogni riga a un file. Fail2Ban legge questi file con il backend affidabile <code>backend = auto</code> (modalità file):",
"headerService": "Servizio",
"headerSource": "Unità di origine",
"headerOutput": "File di uscita",
"rows": [
{
"service": "proxmox-auth-logger.service",
"source": "pvedaemon.service",
"output": "/var/log/proxmox-auth.log"
},
{
"service": "ssh-auth-logger.service",
"source": "ssh.service",
"output": "/var/log/ssh-auth.log"
}
],
"outro": "Entrambi i servizi sono dichiarati <code>PartOf=fail2ban.service</code> in modo da riavviare con Fail2Ban e fermarsi con esso. Modalità 640 di proprietà di <code>root:adm</code> sui file di registro. Il terzo registro utilizzato dalla prigione <code>[proxmenux]</code> (<code>/var/log/proxmenux-auth.log</code>) è scritto direttamente dall'app ProxMenux Monitor Flask — nessun servizio logger necessario per questo."
},
"backend": {
"heading": "Auto-detezione backend Firewall",
"intro": "L'installatore sonda l'host: se <code>nft list ruleset</code> funziona, sceglie <code>nftables</code> come l'azione di divieto. In caso contrario torna a <code>iptables-multiport</code> / <code>iptables-allports</code>. La scelta è scritta in <code>jail.local</code>:",
"code": "# nftables host\nbanaction = nftables\nbanaction_allports = nftables[type=allports]\n\n# iptables host (fallback)\nbanaction = iptables-multiport\nbanaction_allports = iptables-allports"
},
"hardening": {
"heading": "Rafforzamento SSH: MaxAuthTries",
"intro": "Il controllo Lynis <strong>SSH-7408</strong> raccomanda <code>MaxAuthTries 3</code> in <code>sshd_config</code>. La jail SSH usa <code>maxretry = 2</code> per bloccare dopo errori ripetuti; MaxAuthTries limita i tentativi nella stessa connessione. Questa impostazione aggiunge protezione anche quando Fail2Ban è fermo per manutenzione.",
"installerIntro": "L'installatore:",
"items": [
"Legge il valore attuale di <code>MaxAuthTries</code> (o di default a 6 se assente).",
"Lo salva a <code>/usr/local/share/proxmenux/sshd_maxauthtries_backup</code>.",
"Modifica <code>sshd_config</code> direttamente: sostituisce la riga esistente, rimuove il commento dalla riga commentata o ne aggiunge una nuova.",
"Ricarica <code>sshd</code> senza riavviarlo, mantenendo attive le sessioni esistenti."
],
"outro": "Su disinstallazione, il valore originale salvato viene ripristinato e <code>sshd</code> viene ricaricato di nuovo."
},
"manage": {
"heading": "Gestire un'installazione esistente",
"intro": "Se Fail2Ban è già installato, lo script lo rileva e mostra un menu di gestione invece di ripetere l'installazione.",
"headerAction": "Azione",
"headerWhat": "Che cosa fa",
"rows": [
{
"action": "Reinstallare",
"what": "Esegue nuovamente l'installazione completa e riscrive tutte le jail con i valori attuali di ProxMenux. Usalo quando un aggiornamento modifica le raccomandazioni."
},
{
"action": "Rimuovi",
"what": "Arresta fail2ban e i due servizi di logger, elimina il pacchetto apt, rimuove tutti i jail / file filtro, elimina il drop-in journald (ripristinando le impostazioni predefinite di Proxmox) e ripristina il SSH originale MaxAuthTries."
}
]
},
"verify": {
"heading": "Verifica che funzioni.",
"intro": "Dopo l'installazione, comandi utili dall'host:",
"code": "# Service status and version\nsystemctl status fail2ban\nfail2ban-client --version\n\n# All active jails\nfail2ban-client status\n\n# Detail on one jail\nfail2ban-client status sshd\nfail2ban-client status proxmox\nfail2ban-client status proxmenux\n\n# Currently banned IPs in a jail\nfail2ban-client status sshd | grep \"Banned IP\"\n\n# Manually unban an IP (use this if you ban yourself)\nfail2ban-client unban 192.0.2.10\n\n# Tail the auth logs Fail2Ban watches\ntail -f /var/log/ssh-auth.log\ntail -f /var/log/proxmox-auth.log\ntail -f /var/log/fail2ban.log"
},
"troubleshoot": {
"heading": "Risoluzione dei problemi",
"neverBansTitle": "Fail2Ban corre ma non vieta mai nulla",
"neverBansBody": "Verifica che <code>tail -f /var/log/ssh-auth.log</code> riceva una voce dopo un tentativo SSH con password errata da un'altra macchina. Se rimane vuoto, controlla <code>systemctl status ssh-auth-logger.service</code>. Se il logger è attivo, consulta gli eventi recenti con <code>journalctl -u ssh.service -n 50 --no-pager -p info</code> e verifica che il drop-in journald consenta il livello <em>info</em>.",
"monitorEmptyTitle": "ProxMenux Monitor jail non ha voci anche dopo accessi non riusciti",
"monitorEmptyBody": "Il <code>[proxmenux]</code> jail legge <code>/var/log/proxmenux-auth.log</code>, che è scritto dall'app ProxMenux Monitor Flask - non da un logger journald. Se non esegui il Monitor, il file rimane vuoto e il jail non si attiva mai. Questo è previsto; la configurazione jail è innocua. Se esegui il Monitor e il registro è vuoto, controlla la configurazione di registrazione Flask.",
"selfBanTitle": "Ho bloccato il mio stesso accesso",
"selfBanIntro": "Da una console / IPMI / iKVM (o da un altro IP whitelist):",
"selfBanCode": "fail2ban-client unban '<'YOUR_IP'>'\n\n# To prevent it next time, edit /etc/fail2ban/jail.local and add your IP:\nignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 203.0.113.42\n\n# Then reload\nfail2ban-client reload",
"aptFailTitle": "apt-get non riesce: ''Unable to locate package fail2ban''",
"aptFailBody": "L'host manca il repos Debian (comune sulle installazioni di Barebones Proxmox). L'installatore rileva questo e scrive <code>/etc/apt/sources.list.d/debian.sources</code> con il nome giusto in codice (<code>bookworm</code> / <code>trixie</code>) prima di riprovare. Se non riesce ancora, controllare <code>/etc/os-release</code> per <code>VERSION_CODENAME</code> e confermare che l'URL repo è raggiungibile.",
"lockoutTitle": "SSH mi blocca dopo l'installazione",
"lockoutBody": "L'installatore imposta <code>MaxAuthTries=3</code>. Se il tuo password manager / agente richiama più chiavi, puoi superarlo su un singolo tentativo di connessione. Limitare le chiavi offerte: <code>ssh -o IdentitiesOnly=yes -i ~/.ssh/specific_key user@host</code>. O sollevare temporaneamente <code>MaxAuthTries</code> in <code>sshd_config</code> mentre si debug."
},
"files": {
"heading": "File scritti",
"code": "/etc/fail2ban/jail.local # global defaults + [sshd]\n/etc/fail2ban/jail.d/proxmox.conf # [proxmox]\n/etc/fail2ban/jail.d/proxmenux.conf # [proxmenux]\n/etc/fail2ban/filter.d/proxmox.conf # auth-failure regex for pvedaemon\n/etc/fail2ban/filter.d/proxmenux.conf # auth-failure regex for Monitor\n/etc/systemd/system/proxmox-auth-logger.service # journal → file (pvedaemon)\n/etc/systemd/system/ssh-auth-logger.service # journal → file (sshd)\n/etc/systemd/journald.conf.d/proxmenux-loglevel.conf # MaxLevelStore=info\n/etc/ssh/sshd_config # MaxAuthTries=3 (in-place edit)\n/var/log/proxmox-auth.log # written by logger service\n/var/log/ssh-auth.log # written by logger service\n/var/log/proxmenux-auth.log # written by Monitor Flask app\n/usr/local/share/proxmenux/sshd_maxauthtries_backup # for restore on uninstall"
},
"related": {
"heading": "Correlati",
"monitorLabel": "ProxMenux Monitor → Scheda di sicurezza",
"monitorTail": " — installazione dal pannello, stato delle jail in tempo reale, IP bloccati e regolazione di tentativi e durata del blocco per ogni jail dal browser.",
"lynisLabel": "Lynis",
"lynisTail": " — esegui un audit prima e dopo per verificare che il controllo SSH-7408 sia soddisfatto.",
"securityLabel": "Panoramica della sicurezza",
"securityTail": "— di nuovo alla panoramica della sezione."
}
}
+70
View File
@@ -0,0 +1,70 @@
{
"meta": {
"title": "Sicurezza Proxmox — Fail2Ban e audit di rafforzamento Lynis | ProxMenux",
"description": "Due strumenti di sicurezza installabili per Proxmox VE: Fail2Ban (prevenzione delle intrusioni per SSH, interfaccia web Proxmox e ProxMenux Monitor) e Lynis (analisi della sicurezza e del rafforzamento del sistema, installato dal repository ufficiale GitHub).",
"ogTitle": "Sicurezza Proxmox — Fail2Ban e audit di rafforzamento Lynis",
"ogDescription": "Fail2Ban e Lynis per Proxmox VE: prevenzione delle intrusioni e audit di rafforzamento, installati e gestiti da ProxMenux.",
"twitterTitle": "Sicurezza Proxmox | ProxMenux",
"twitterDescription": "Fail2Ban e Lynis per Proxmox VE: prevenzione delle intrusioni e audit di rafforzamento."
},
"header": {
"title": "Sicurezza",
"description": "Due strumenti complementari per Proxmox VE: difesa attiva (Fail2Ban blocca gli IP che attaccano SSH o le interfacce web) e audit locale (Lynis cerca lacune nel rafforzamento e assegna un punteggio da 0 a 100). Ognuno ha un menu di installazione e gestione che rileva installazioni esistenti prima di ogni azione.",
"section": "Sicurezza"
},
"intro": {
"title": "Difesa attiva e audit locale",
"body": "Rispondono a domande diverse. <strong>Fail2Ban</strong> risponde a <em>«Ci stanno attaccando ora?»</em> monitorando i log di autenticazione e bloccando gli IP responsabili. <strong>Lynis</strong> risponde a <em>«Quanto è rafforzata la sicurezza di questo host?»</em> con un audit singolo e raccomandazioni concrete. Usali insieme: Lynis indica cosa migliorare e Fail2Ban reagisce agli attacchi in corso."
},
"opening": {
"heading": "Apertura del menu",
"body": "Dal menu principale di ProxMenux seleziona <strong>Sicurezza</strong>. Vedrai questo:",
"imageAlt": "Menu di sicurezza con opzioni Fail2Ban e Lynis"
},
"pick": {
"heading": "Scegli il tuo strumento",
"body": "I due strumenti di sicurezza sono indipendenti — installare uno, entrambi, o nessuno. Ogni scheda qui sotto salta alla sezione che spiega lo strumento in dettaglio."
},
"cards": {
"fail2ban": {
"title": "Fail2Ban",
"body": "Prevenzione attiva delle intrusioni. Controlla i log di autenticazione SSH e web e blocca gli IP dopo errori ripetuti.",
"bullets": [
"Tre jails: SSH, Proxmox UI (8006), ProxMenux Monitor (8008)",
"Corregge le impostazioni predefinite di Proxmox journald che bloccano i registri di autenticazione",
"Rilevamento automatico nftables / iptables",
"Indurimento SSH: MaxAuthTries=3 (Consiglio di Lynis)"
]
},
"lynis": {
"title": "Lynis",
"body": "Auditor locale di sicurezza. Analizza l'host e mostra un punteggio di rafforzamento e suggerimenti concreti per correggere i problemi.",
"bullets": [
"Installato dal repository ufficiale CISOfy su GitHub (versione più recente)",
"Punteggio di rafforzamento 0–100 ed elenco di avvisi e suggerimenti",
"Audit e aggiornamento dal menu",
"Progettato in sola lettura: non modifica mai il sistema"
]
}
},
"workflowTip": {
"title": "Flusso di lavoro che utilizza entrambi",
"body": "Esegui prima Lynis per vedere il punteggio iniziale e le raccomandazioni principali. Applica le correzioni desiderate. Poi installa Fail2Ban: implementa automaticamente la protezione SSH contro la forza bruta e regola <code>MaxAuthTries</code> in <code>sshd_config</code> per soddisfare il controllo SSH-7408. Esegui di nuovo Lynis per verificare il miglioramento."
},
"fail2banSection": {
"heading": "Fail2Ban",
"body": "ProxMenux installa Fail2Ban con una configurazione specifica per Proxmox. Oltre alla jail SSH standard protegge l'interfaccia web Proxmox e ProxMenux Monitor. Aggira due problemi specifici: un'impostazione journald che scarta gli eventi di autenticazione e un problema del backend systemd che impedisce la lettura affidabile di alcune fonti del registro. La pagina dettagliata spiega installazione, tre jail, correzione di journald, rafforzamento SSH e risoluzione dei problemi.",
"optionTitle": "Fail2Ban — installazione e gestione",
"optionDescription": "Tre jail preconfigurate (sshd aggressivo, interfaccia Proxmox su 8006, ProxMenux Monitor su 8008 e proxy inverso), rilevamento di nftables/iptables, correzione di journald e rafforzamento SSH con MaxAuthTries."
},
"lynisSection": {
"heading": "Lynis",
"body": "ProxMenux clona Lynis da <code>github.com/CISOfy/lynis</code> in <code>/opt/lynis</code> e lo rende disponibile come <code>/usr/local/bin/lynis</code>. Evita il pacchetto Debian perché è indietro di diverse versioni principali rispetto al progetto originale. La pagina dettagliata spiega installazione, audit, aggiornamento, disinstallazione, lettura del rapporto e azioni sui risultati.",
"optionTitle": "Lynis — installazione, audit e gestione",
"optionDescription": "Installa l'ultimo Lynis dal repo ufficiale CISOfy GitHub (non il vecchio pacchetto Debian), esegue controlli di sistema con punteggio di indurimento e aggiornamenti tramite git pull."
},
"componentStatus": {
"heading": "Stato del componente",
"body": "Entrambi gli installatori registrano il loro stato in <code>/usr/local/share/proxmenux/components_status.json</code> sotto la categoria <code>security</code>. ProxMenux utilizza questo file per decidere se mostrare l'installazione o il menu di gestione delle operazioni successive, e gli stessi dati alimentano le dashboard nel ProxMenux Monitor quando presente."
}
}
+170
View File
@@ -0,0 +1,170 @@
{
"meta": {
"title": "Lynis | Documentazione ProxMenux",
"description": "Installa la versione più recente di Lynis dal repository ufficiale CISOfy su GitHub, esegui un audit con punteggio di rafforzamento 0–100 e aggiorna tramite git pull. Auditor in sola lettura: non modifica il sistema.",
"ogTitle": "Lynis | Documentazione ProxMenux",
"ogDescription": "Installa ed esegui Lynis su Proxmox VE. Installazione dal repository originale GitHub, audit e aggiornamento."
},
"header": {
"title": "Lynis",
"description": "Clona la versione più recente di Lynis dal repository ufficiale CISOfy su GitHub, la rende disponibile come /usr/local/bin/lynis e offre audit, aggiornamento, reinstallazione e disinstallazione dal menu. L'analisi è in sola lettura: produce rapporti senza modificare il sistema.",
"section": "Sicurezza"
},
"intro": {
"title": "Cosa fa",
"body": "Installa Lynis, auditor di sicurezza open source di CISOfy, dal repository GitHub in <code>/opt/lynis</code> e crea un lanciatore in <code>/usr/local/bin/lynis</code> per renderlo disponibile nel <code>PATH</code>. Se rileva una installazione esistente, mostra un menu per audit, aggiornamento, reinstallazione o rimozione."
},
"manageMenu": {
"heading": "Menu di gestione (dopo l'installazione)",
"intro": "Una volta che Lynis è installato, ogni successiva invocazione apre il menu di gestione invece di rifare l'installatore. Da qui si avvia un audit, si aggiorna tramite git pull, reinstalla o disinstalla:",
"imageAlt": "Menù di gestione Lynis con controllo, aggiornamento, reinstallare e rimuovere le opzioni"
},
"whyUpstream": {
"heading": "Perché il repository ufficiale GitHub invece di apt",
"intro": "Debian distribuisce Lynis tramite apt, ma il pacchetto è spesso indietro di diverse versioni principali. Nuovi controlli, correzioni per nuovi vettori di attacco e raccomandazioni migliorate arrivano prima su GitHub. Lynis è uno script shell autonomo, senza compilazione e senza dipendenze di installazione oltre a <code>git</code>; clonare il repository è quindi il metodo raccomandato da CISOfy.",
"headerSource": "Fonte",
"headerPath": "Install path",
"headerUpdate": "Metodo di aggiornamento",
"headerFresh": "Aggiornamento della versione",
"rows": [
{
"sourceRich": "<strong>ProxMenux (questo script)</strong>",
"path": "/opt/lynis/",
"update": "git pull (dal menu)",
"fresh": "Ultima versione del progetto originale"
},
{
"sourceRich": "<strong>Debian apt</strong>",
"path": "/usr/bin/lynis",
"update": "apt upgrade",
"fresh": "Spesso mesi / anni dietro"
}
]
},
"install": {
"heading": "Come funziona l'installazione",
"node1Label": "github.com/CISOfy/lynis",
"node1Detail": "git clone\n(installa prima git se manca)",
"node2Label": "/opt/lynis/",
"node2Detail": "repository completo\nincluso lo script ./lynis",
"node3Label": "/usr/local/bin/lynis",
"node3Detail": "wrapper:\ncd /opt/lynis && ./lynis $@",
"outro": "Il wrapper è obbligatorio — Lynis insiste per essere eseguito dalla propria directory perché carica percorsi relativi per plugin e dati del profilo. L'involucro nasconde quel dettaglio così <code>lynis audit system</code> funziona da qualsiasi luogo."
},
"detection": {
"heading": "Sentieri di rilevamento",
"intro": "Prima di mostrare il menu, lo script controlla tre posizioni per decidere se Lynis è già presente:",
"items": [
"<code>/usr/local/bin/lynis</code> — wrapper installato da ProxMenux",
"<code>/opt/lynis/lynis</code> — percorso diretto (nel caso in cui l'involucro sia stato rimosso)",
"<code>/usr/bin/lynis</code> — versione apt-installata, se l'utente l'ha installato in quel modo prima"
],
"outro": "Se trova uno di questi percorsi apre il menu di gestione. Lo script <strong>non</strong> disinstalla Lynis installato con apt; rimuove solo quello gestito in <code>/opt/lynis</code> e il relativo lanciatore."
},
"audit": {
"heading": "Eseguire un audit",
"intro": "Dal menu di gestione scegli <strong>Esegui audit di sicurezza ora</strong>. Equivale a eseguire:",
"code": "lynis audit system --no-colors",
"outro": "L'audit richiede da 30 secondi ad alcuni minuti secondo le dimensioni dell'host. Lo output viene mostrato direttamente nel terminale, senza animazione di attesa. Lynis organizza i controlli per categoria e marca ogni test come <ok>[ OK ]</ok>, <warn>[ WARNING ]</warn> o <sugg>[ SUGGESTION ]</sugg>. Il riepilogo finale mostra i dati principali:",
"summary": "================================================================================\n\n Lynis security scan details:\n\n Hardening index : 76 [############ ]\n Tests performed : 247\n Plugins enabled : 0\n\n Components:\n - Firewall [V]\n - Malware scanner [X]\n\n Lynis modules:\n - Compliance status [?]\n - Security audit [V]\n - Vulnerability scan [V]\n\n================================================================================"
},
"report": {
"heading": "Leggere il rapporto",
"intro": "Le due sezioni importanti sono <strong>Warnings</strong> (le cose che si devono risolvere presto) e <strong>Suggestions</strong> (raccomandazioni per migliorare l'indurimento). Ogni elemento porta un ID di controllo come <code>SSH-7408</code> — utile quando si cerca i documenti Lynis per la razionalità e la correzione.",
"headerMarker": "Marcatore",
"headerMeaning": "Significato",
"headerAction": "Azione",
"rows": [
{
"markerRich": "<strong>OK</strong>",
"meaning": "Test superato",
"action": "Niente."
},
{
"markerRich": "<strong>WARNING</strong>",
"meaning": "Problema reale, fix consigliato",
"action": "Leggi la descrizione del controllo, pianifica una correzione"
},
{
"markerRich": "<strong>SUGGESTION</strong>",
"meaning": "Miglioramento dell'indurimento disponibile",
"action": "Applica se adatto al modello di minaccia"
}
],
"outro": "Il rapporto completo e i dati leggibili dalla macchina sono scritti a <code>/var/log/lynis.log</code> e <code>/var/log/lynis-report.dat</code> da Lynis stesso."
},
"pairFail2ban": {
"title": "Combina con Fail2Ban",
"body": "SSH-7408 (MaxAuthTries) è uno degli avvisi più comuni. Installazione di <link>Fail2Ban</link> da ProxMenux lo sgombera automaticamente perché l'installatore imposta <code>MaxAuthTries=3</code> come parte della sua fase di indurimento SSH. Eseguire Lynis di nuovo dopo per confermare che l'avvertimento è andato."
},
"update": {
"heading": "Aggiornamento Lynis",
"body": "Nel menu, <strong>Aggiorna Lynis all'ultima versione</strong> esegue <code>git pull --quiet</code> in <code>/opt/lynis</code>. Se la directory esiste ma non è una copia di lavoro Git, per esempio dopo una copia manuale dei file, lo script esegue una reinstallazione completa."
},
"reinstall": {
"heading": "Reinstallare / disinstallare",
"headerAction": "Azione",
"headerWhat": "Che cosa fa",
"rows": [
{
"actionRich": "<strong>Reinstalla</strong>",
"whatRich": "Rimuove <code>/opt/lynis</code>, clona nuovamente da GitHub e ricrea il lanciatore. Usalo se la copia locale è danneggiata."
},
{
"actionRich": "<strong>Rimuovi</strong>",
"whatRich": "Elimina <code>/opt/lynis</code> e <code>/usr/local/bin/lynis</code>. I registri a <code>/var/log/lynis*</code> sono mantenuti (sono storia dell'audit). Un Lynis apt-installed a <code>/usr/bin/lynis</code> è lasciato intatto."
}
]
},
"cli": {
"heading": "Opzioni utili CLI",
"intro": "Una volta installato, Lynis può essere invocata direttamente da una shell con opzioni extra non esposte dal menu:",
"code": "lynis show version # version + build date\nlynis show commands # list every available command\nlynis show details TEST-ID # explain a specific control\nlynis audit system --quick # skip slow tests (e.g. malware scan)\nlynis audit system --pentest # treat host as untrusted (more aggressive)\nlynis update info # check if a newer Lynis is available\n\n# Filter the report log for just the warnings\ngrep \"Warning\" /var/log/lynis.log\n\n# Same, for suggestions only\ngrep \"Suggestion\" /var/log/lynis.log"
},
"troubleshoot": {
"heading": "Risoluzione dei problemi",
"cloneTitle": "git clone non riesce durante l'installazione",
"cloneBody": "L'host ha bisogno di accesso alla rete e DNS per raggiungere <code>github.com</code>. Da una console: <code>curl -sI https://github.com</code> e <code>git ls-remote https://github.com/CISOfy/lynis.git</code> riveleranno l'errore effettivo (DNS, TLS, proxy, repo URL). Se è richiesto un proxy, impostare <code>https_proxy</code> nell'ambiente prima di ri-inviare il menu.",
"notFoundTitle": "lynis: comando non trovato dopo l'installazione",
"notFoundIntro": "L'involucro a <code>/usr/local/bin/lynis</code> non è stato creato o rimosso. Correzione più rapida: reinstallare dal menu. Correzione manuale:",
"notFoundCode": "cat > /usr/local/bin/lynis <<'EOF'\n#!/bin/bash\ncd /opt/lynis && ./lynis \"$@\"\nEOF\nchmod +x /usr/local/bin/lynis",
"sshTitle": "L'audit mostra \"Warning: Test SSH-7408 — MaxAuthTries set incorrectly\"",
"sshIntro": "Il daemon SSH consente troppi tentativi auth per connessione. Installare <link>Fail2Ban</link> da ProxMenux (che imposta automaticamente <code>MaxAuthTries=3</code>) o modificare <code>/etc/ssh/sshd_config</code> a mano:",
"sshCode": "sed -i 's/^#?MaxAuthTries.*/MaxAuthTries 3/' /etc/ssh/sshd_config\nsystemctl reload sshd",
"scoreTitle": "Score è andato giù dopo un aggiornamento Proxmox",
"scoreBody": "Eseguire <code>lynis update info</code> prima — un aggiornamento Lynis potrebbe aver aggiunto nuovi controlli che contrassegnano la configurazione esistente. Aggiornare Lynis dal menu, ri-audit e affrontare i nuovi risultati."
},
"files": {
"heading": "File scritti",
"code": "/opt/lynis/ # full Lynis git checkout\n/usr/local/bin/lynis # wrapper script (cd + exec)\n/var/log/lynis.log # human-readable audit log (Lynis itself)\n/var/log/lynis-report.dat # machine-readable report (Lynis itself)"
},
"sample": {
"heading": "Rapporto di esempio",
"intro": "ProxMenux Monitor genera per ogni esecuzione di Lynis un PDF multipagina dalla <link>scheda Sicurezza</link>. La prima pagina riepiloga punteggio di rafforzamento, informazioni di sistema e stato della sicurezza. Le successive spiegano ogni avviso, elencano i suggerimenti per impatto e includono l'inventario dei pacchetti usato nell'audit.",
"imageAlt": "Prima pagina del Lynis Security Audit Report PDF — Riepilogo esecutivo con Hardening Index 71/100, blocco informazioni di sistema e panoramica della postura di sicurezza con firewall, malware scanner e pacchetti installati conteggio",
"captionPrefix": "Prima pagina di un rapporto campione. Il PDF completo (",
"captionLink": "campione",
"captionSuffix": ") continua con avvisi dettagliati, suggerimenti e la lista dei pacchetti installati.",
"cli": "Sul lato CLI gli stessi dati sono in <code>/var/log/lynis-report.dat</code> (file piatto leggibile dalla macchina) e <code>/var/log/lynis.log</code> (il registro di esecuzione leggibile dall'uomo). Il PDF viene generato su richiesta da ProxMenux Monitor — l'esecuzione di <code>lynis</code> dalla riga di comando non ne produce uno."
},
"related": {
"heading": "Correlati",
"items": [
{
"href": "/docs/monitor/dashboard/security",
"label": "ProxMenux Monitor → Scheda di sicurezza",
"tail": "— eseguire l'audit, sfogliare i rapporti storici e scaricare il PDF direttamente dal cruscotto."
},
{
"href": "/docs/security/fail2ban",
"label": "Fail2Ban",
"tailRich": " — attua il SSH protezione brute-force che Lynis raccomanda."
},
{
"href": "/docs/security",
"label": "Panoramica della sicurezza",
"tail": "— di nuovo alla panoramica della sezione."
}
]
}
}
@@ -0,0 +1,169 @@
{
"meta": {
"title": "HTTPS per ProxMenux Monitor — certificato dell'host Proxmox o percorsi personalizzati | ProxMenux",
"description": "Fornisce ProxMenux Monitor via HTTPS con il certificato dell'host Proxmox (rilevato automaticamente, incluso quello Let’s Encrypt installato tramite ACME di Proxmox) o con un certificato personalizzato in qualsiasi percorso sul disco.",
"ogTitle": "HTTPS per ProxMenux Monitor — Host Proxmox o certificato personalizzato",
"ogDescription": "Abilitare HTTPS sulla porta 8008 con il certificato host Proxmox o qualsiasi coppia di .pem / .key personalizzata."
},
"header": {
"title": "HTTPS per ProxMenux Monitor",
"description": "Attiva HTTPS per Monitor sulla porta 8008 con il certificato dell'host Proxmox rilevato automaticamente o uno personalizzato sul disco. L'opzione Proxmox preferisce il certificato ACME, se presente, e riutilizza Let’s Encrypt gestito da Proxmox senza un'ulteriore attività di rinnovo.",
"section": "Sicurezza"
},
"intro": {
"title": "Che cosa questa pagina copre",
"body": "Come cambiare il Monitor da HTTP a HTTPS nel pannello Impostazioni → Sicurezza, ciò che ogni fonte di certificato indica effettivamente sul disco, come l'opzione Proxmox si comporta quando l'host ha un cert Let's Encrypt e come impostare percorsi personalizzati se si gestisce certs al di fuori di Proxmox."
},
"wheresetting": {
"heading": "Dove si trova l'impostazione",
"body": "Apri Monitor e vai in <strong>Impostazioni → Sicurezza → HTTPS / SSL</strong>. Il pannello mostra HTTP o HTTPS e, se HTTPS non è attivo, le fonti di certificato rilevate.",
"imageAlt": "Impostazioni → Sicurezza → HTTPS / Pannello SSL nel Monitor che mostra lo stato HTTPS-off, il certificato Proxmox auto-determinato (soggetto, emittente, scadenza) e l'opzione Usa Certificato personalizzato",
"caption": "Pannello Impostazioni → Sicurezza → HTTPS / SSL prima dell'attivazione. Monitor mostra il certificato usato da Proxmox e permette di sceglierlo con un clic."
},
"twoways": {
"heading": "Due modi per abilitare HTTPS",
"proxmox": {
"title": "Usa certificato Proxmox",
"summary": "Un clic: Monitor riutilizza il certificato presentato da Proxmox VE sulla porta 8006.",
"items": [
"Rilevato automaticamente, nessun percorso da digitare",
"Preferisce il certificato ACME se presente, altrimenti quello autofirmato predefinito",
"Proxmox gestisce il rinnovo; Monitor convalida e carica il certificato alla prossima nuova connessione TLS"
]
},
"custom": {
"title": "Usa certificato personalizzato",
"summaryRich": "Puntare il Monitor su una coppia <code>.pem</code> / <code>.key</code> ovunque sul disco.",
"items": [
"Solo percorsi assoluti (il processo Monitor deve essere in grado di leggere entrambi)",
"Utile quando i cert vengono da <code>certbot</code>, <code>acme.sh</code> o una wildcard",
"Gestisci tu il rinnovo: riavvia Monitor quando cambiano i file"
]
}
},
"proxmoxCert": {
"heading": "Certificato di Proxmox — ciò che effettivamente indica",
"intro": "Proxmox VE mantiene due coppie di certificati in <code>/etc/pve/local/</code>:",
"table": {
"headers": {
"file": "File",
"origin": "Origine",
"when": "Quando il Monitor lo usa"
},
"rows": [
{
"fileRich": "<code>pveproxy-ssl.pem</code><br /><code>pveproxy-ssl.key</code>",
"originRich": "Certificato personalizzato caricato tramite l'UI Proxmox — compreso il certificato Let's Encrypt rilasciato sotto <em>Datacenter → Nodo → Certificati → ACME</em>.",
"when": "Preferito se entrambi i file esistono; Monitor usa il certificato presentato da Proxmox."
},
{
"fileRich": "<code>pve-ssl.pem</code><br /><code>pve-ssl.key</code>",
"originRich": "Certificato autofirmato generato al momento di installazione dal Proxmox PKI.",
"whenRich": "Fallback quando non è presente nessun <code>pveproxy-ssl.pem</code>."
}
]
},
"callout": {
"title": "Stessa priorità di Proxmox stesso",
"bodyRich": "<code>pveproxy</code> applica la stessa selezione: scegliendo Proxmox, Monitor usa il certificato presentato dall'interfaccia Proxmox su 8006, senza copie né un processo di rinnovo separato."
}
},
"letsencrypt": {
"heading": "Ottenere un certificato Let's Encrypt tramite Proxmox ACME",
"intro": "Proxmox VE include un client ACME. <em>«Order Certificate Now»</em> salva il risultato in <code>/etc/pve/local/pveproxy-ssl.pem</code>, letto da Monitor. I cinque passi seguenti riassumono la <extlink1>guida ufficiale Proxmox</extlink1> nei comandi necessari.",
"prereqs": {
"title": "Prerequisiti",
"items": [
"Il nodo ha un vero nome DNS (non solo un IP) che indica.",
"<strong>O</strong> porta 80 raggiungibile da Internet (verifica HTTP-01, la più semplice), <strong>oppure</strong> un provider DNS con credenziali API (DNS-01, funziona dietro NAT e supporta wildcard).",
"Un indirizzo email per l'account ACME."
]
},
"step1": {
"heading": "Passo 1 — Registrare l'account ACME",
"introRich": "Sostituisci l'email con il tuo. Il nome dell'account <code>default</code> è solo un'etichetta — è possibile utilizzare qualsiasi stringa.",
"code": "pvenode acme account register default you@example.com",
"afterRich": "Proxmox chiede di accettare i termini di servizio Let's Encrypt. Dopo di che l'account è persistito sotto <code>/etc/pve/priv/acme/</code> e la scheda ACME nella GUI lo mostrerà."
},
"step2": {
"heading": "Passo 2 — Scegli un tipo di sfida",
"http01Rich": "<strong>HTTP-01</strong> è il più semplice: è costruito in, nessun plugin aggiuntivo. Let's Encrypt si collega a <code>http://&lt;your-host&gt;/.well-known/acme-challenge/...</code> sulla porta 80, quindi la porta 80 deve essere aperta da internet pubblico al nodo — tipicamente una porta avanti sul router.",
"dns01Rich": "<strong>DNS-01</strong> funziona senza esporre la porta 80 (buona per le homelab dietro CG-NAT) ed è l'unica opzione per i certificati jolly. Aggiungi un plugin DNS una volta con il token API del tuo fornitore. Esempio Cloudflare:",
"code": "pvenode acme plugin add dns cf \\\n --api cloudflare \\\n --data CF_Token=YOUR_CLOUDFLARE_API_TOKEN",
"outroRich": "Per altri provider (Gandi, OVH, AWS Route 53, ecc.) consulta <code>pvenode acme plugin add dns --help</code>. Proxmox include <extlink2>tutti i plugin DNS di acme.sh</extlink2>."
},
"step3": {
"heading": "Passo 3 — Legare il dominio al nodo",
"http01Rich": "Per HTTP-01 (utilizza il plugin <code>standalone</code> integrato):",
"code1": "pvenode config set --acme domains=host.example.com,account=default",
"dns01": "Per DNS-01 con il plugin Cloudflare di Step 2:",
"code2": "pvenode config set --acmedomain0 domain=host.example.com,plugin=cf\npvenode config set --acme account=default",
"wildcardRich": "Certificato wildcard? Aggiungi <code>domain=*.example.com</code> in una voce separata <code>--acmedomainN</code>. I certificati wildcard richiedono DNS-01."
},
"step4": {
"heading": "Passo 4 — Ordinare il certificato",
"code": "pvenode acme cert order",
"afterRich": "La prima esecuzione richiede tipicamente 30–60 secondi mentre la sfida si propaga. Su successo Proxmox scrive <code>/etc/pve/local/pveproxy-ssl.pem</code> + <code>.key</code>, riavvia <code>pveproxy</code>, e un cron di rinnovo è programmato automaticamente (Let's Encrypt certs sono validi 90 giorni; Proxmox rinnova a 60)."
},
"step5": {
"heading": "Passo 5 — Verificare l'emittente",
"code": "openssl x509 -in /etc/pve/local/pveproxy-ssl.pem -noout -issuer",
"afterRich": "Dovrebbe stampare un emittente a partire da <code>O = Let's Encrypt</code>. Se invece legge <code>CN = Proxmox Virtual Environment</code> l'ordine non è riuscito e il file è ancora l'auto-firmato PVE cert — eseguire <code>pvenode acme cert order --debug 1</code> per vedere perché."
},
"gui": {
"title": "Preferisci la GUI? Stessi cinque passi",
"bodyRich": "<em>Datacenter → ACME</em> registra l'account; <em>Datacenter → ACME → Plugins</em> aggiunge il plugin DNS; <em>Node → Certificates → ACME</em> associa il dominio; <em>Order Certificates Now</em> esegue il passo 4. I comandi precedenti sono utili per script e sistemi senza interfaccia grafica."
}
},
"switchToHttps": {
"heading": "Passare il Monitor a HTTPS",
"bodyRich": "Quando <code>/etc/pve/local/pveproxy-ssl.pem</code> è firmato da Let's Encrypt, apri <strong>Impostazioni → Sicurezza → HTTPS / SSL</strong>, verifica che l'emittente sia <em>Let's Encrypt</em> e non la CA locale Proxmox, poi fai clic su <strong>Usa certificato Proxmox</strong>. Monitor si riavvia e il caricamento successivo usa HTTPS su 8008 con una catena pubblicamente attendibile. I rinnovi ACME successivi sono convalidati e selezionati alla prossima nuova connessione TLS, senza controlli periodici né riavvio al rinnovo. <strong>Aggiorna certificato</strong> rimane disponibile in Sicurezza per diagnosi e recupero."
},
"custom": {
"heading": "Certificato personalizzato — quando utilizzarlo",
"intro": "Fai clic su <strong>Usa certificato personalizzato</strong> e inserisci due percorsi assoluti:",
"items": [
"<strong>Certificato</strong>: catena completa in PEM (<code>.pem</code> o <code>.crt</code>).",
"<strong>Chiave privata</strong>: chiave corrispondente in PEM (<code>.key</code>)."
],
"outro": "Entrambi i file sono letti dal processo Monitor all'avvio. Assicurarsi che rimangano leggibili dall'utente l'unità systemd viene eseguita come (root per impostazione predefinita). Località comuni quando ACME è gestito fuori Proxmox:",
"code": "# certbot\n/etc/letsencrypt/live/<your-host>/fullchain.pem\n/etc/letsencrypt/live/<your-host>/privkey.pem\n\n# acme.sh\n~/.acme.sh/<your-host>_ecc/fullchain.cer\n~/.acme.sh/<your-host>_ecc/<your-host>.key",
"symlinkCallout": {
"title": "Obiettivi Symlink vs. file",
"bodyRich": "<code>certbot</code> memorizza i file reali in <code>/etc/letsencrypt/archive/</code> e il percorso <code>live/</code> è un symlink. Indirizzi il Monitor al simlink <code>live/</code>, non il file <code>archive/</code> — in questo modo ogni ciclo di rinnovo semplicemente riscrive l'obiettivo di symlink e il Monitor raccoglie il nuovo cert all'inizio del servizio successivo."
}
},
"afterHttps": {
"heading": "Dopo aver attivato HTTPS",
"bodyRich": "Salvataggio del cambiamento scrive <code>/etc/proxmenux/ssl_config.json</code> e attiva un riavvio dell'unità <code>proxmenux-monitor</code> systemd. La scheda del browser perderà la sua connessione corrente — ricaricarla su <code>https://&lt;host&gt;:8008/</code>. Il primo carico con un cert Let's Encrypt non dovrebbe mostrare alcun avvertimento; con il Proxmox auto-firmato cert il browser richiederà un'eccezione, la stessa che per la porta 8006.",
"reverse": {
"heading": "Proxy inversi e webhook",
"bodyRich": "Quando il Monitor passa a HTTPS, gli URL Proxmox VE webhook registrati per le notifiche girano automaticamente da <code>http://</code> a <code>https://</code>. Le voci webhook esistenti vengono riscritte la prossima volta che viene salvata o ri-detetta una regola di notifica, quindi non è necessaria alcuna modifica manuale della configurazione di notifica Proxmox."
}
},
"trustCa": {
"heading": "Considerare attendibile la CA autofirmata di Proxmox",
"intro1Rich": "Per mantenere il certificato predefinito Proxmox senza ACME, importa la CA radice del cluster nell'archivio di fiducia del sistema o del browser. Monitor rileva <code>/etc/pve/local/pve-ssl.pem</code> come certificato alternativo. Il client considera attendibile l'emittente; l'URL deve comunque corrispondere a un nome del certificato.",
"intro2Rich": "Il file CA vive a <code>/etc/pve/pve-root-ca.pem</code> su ogni nodo. In un cluster il percorso è sul filesystem <code>pmxcfs</code> condiviso in modo che tutti i nodi condividono la stessa radice, e una singol'importazione copre l'intero datacenter. Copialo sulla tua macchina:",
"code": "scp root@<your-host>:/etc/pve/pve-root-ca.pem ./pve-root-ca.pem",
"thenImport": "Poi importarlo sul lato cliente:",
"items": [
"<strong>Linux (intero sistema):</strong> esegui <code>sudo cp pve-root-ca.pem /usr/local/share/ca-certificates/pve-root-ca.crt</code> e poi <code>sudo update-ca-certificates</code>. I browser che usano l'archivio di sistema (Chromium, Edge) riconoscono la CA dopo il riavvio; Firefox usa un archivio proprio e richiede l'importazione manuale seguente.",
"<strong>macOS:</strong> apri il file <code>.pem</code> con doppio clic in Accesso Portachiavi, aggiungilo al portachiavi <em>Sistema</em> e imposta <em>Attendibilità → Considera sempre attendibile</em>.",
"<strong>Windows:</strong> clic destro sul file → <em>Installa certificato</em> → inseriscilo in <em>Autorità di certificazione radice attendibili</em>.",
"<strong>Firefox (qualsiasi sistema operativo):</strong> <em>Impostazioni → Privacy e sicurezza → Certificati → Mostra certificati → Autorità → Importa</em>; seleziona <em>Considera attendibile questa CA per identificare siti web</em>."
],
"standalone": {
"title": "Nodi standalone fuori da un cluster",
"bodyRich": "Ogni host Proxmox non incluso ha il proprio <code>pve-root-ca.pem</code>. Se gestisci diversi host standalone, ripeti la copia/importazione per ciascuno, o unisciti a un cluster in modo da condividere una singola radice."
}
},
"disable": {
"heading": "Disabilitare HTTPS",
"bodyRich": "Fai clic su <strong>Disabilita HTTPS</strong> nello stesso pannello. Monitor si riavvia con HTTP non cifrato, utile se un certificato personalizzato non è leggibile e il servizio non parte. Non serve una disinstallazione separata e i file di certificato non vengono modificati.",
"stateCallout": {
"title": "Dove viene salvato lo stato",
"bodyRich": "<code>/etc/proxmenux/ssl_config.json</code> memorizza i percorsi di cert attivo e la fonte (<code>none</code>, <code>proxmox</code>, <code>custom</code>). Cancellare il file è equivalente a disabilitare HTTPS — il prossimo inizio il Monitor rientra a HTTP."
}
}
}