Apri solo il traffico web necessario al tuo server SLES 15

Scenario di esempio: Immaginiamo un amministratore che prepara un server SLES 15 fittizio chiamato web01 per ospitare un piccolo sito web pubblico. L'obiettivo è consentire il traffico HTTP in entrata sulla porta TCP 80 mantenendo disponibile il percorso di amministrazione SSH esistente. Questo è un esempio illustrativo, non un resoconto di un test né un'affermazione secondo cui ogni installazione di SLES 15 abbia gli stessi nomi di interfaccia o gli stessi servizi.

Su SLES 15, firewalldfirewalld è il framework firewall predefinito e firewall-cmdlo controlla. Innanzitutto, identifica la zona attiva e verifica l'accesso remoto; quindi aggiungi il servizio minimo necessario a tale zona nella configurazione permanente e riavvia. La Guida alla sicurezza e alla protezione di SLES 15 SP7 di SUSE documenta questo modello basato sulle zone e la distinzione tra regole di runtime e regole permanenti. Questi passaggi presuppongono che firewalld sia installato e in esecuzione; i sistemi più vecchi aggiornati potrebbero richiedere una verifica di migrazione separata.

1. Verificare il servizio e la zona attiva prima di modificare le regole

Connettiti tramite la console del server o una sessione di gestione che puoi ripristinare in caso di interruzione dell'accesso alla rete. Se sei connesso tramite SSH, mantieni la sessione aperta mentre apporti modifiche al firewall. Verifica che firewalld sia in esecuzione e controlla quale zona possiede l'interfaccia:

sudo firewall-cmd --state
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --get-default-zone

Il primo comando dovrebbe riportare running. Il comando active-zones elenca le zone a cui sono assegnate interfacce o indirizzi sorgente; potrebbe mostrarne più di una. Nell'esempio fittizio web01, supponiamo che riporti publice l'interfaccia ens192. Utilizzare la zona collegata all'interfaccia di rete in ingresso nei comandi successivi. Non dare per scontato che l'interfaccia si chiami eth0e non dare per scontato publicche sia attiva solo perché è un'impostazione predefinita comune.

Vista illustrativa del terminale che mostra firewalld in esecuzione e l'interfaccia ens192 assegnata alla zona pubblica.
Visualizzazione esemplificativa del terminale per il controllo iniziale: firewalld risulta in esecuzione e ens192 appare nella zona pubblica.

Se il servizio non è in esecuzione, verificarne lo stato prima di avviarlo: sudo systemctl status firewalld. Nelle installazioni standard di SLES 15, firewalld è installato e abilitato per impostazione predefinita, ma i profili immagine, gli aggiornamenti o i criteri locali possono differire. Se è installato ma arrestato, avviarlo e abilitarlo solo dopo aver verificato che i criteri correnti manterranno l'accesso necessario: sudo systemctl enable --now firewalld. Su un host gestito da remoto, verificare l'accesso alla console e le autorizzazioni SSH prima di attivare un firewall di cui non si conoscono le regole correnti.

2. Conferma la definizione del servizio e mantieni SSH

Un servizio firewalld è un insieme denominato di porte e protocolli. Controlla la definizione locale prima di aprirlo:

sudo firewall-cmd --info-service=http
sudo firewall-cmd --zone=public --list-all

Su SLES, il httpservizio predefinito corrisponde alla porta TCP 80. L'elenco delle zone consente di verificare i servizi e le porte attualmente consentiti. Sostituisci publiccon la zona attiva che hai trovato. Se amministri il server tramite SSH, assicurati sshche sia consentito in quella zona prima di procedere. Il comportamento di installazione di SLES e le policy esistenti possono variare, quindi verifica invece di basarti su supposizioni. Se il demone SSH installato è in ascolto su una porta non standard, una sshvoce di servizio generica potrebbe non corrispondere; verifica prima la porta di ascolto effettiva del demone e le policy del firewall esistenti.

Vista illustrativa del terminale che mostra il servizio HTTP predefinito, inclusa la porta TCP 80
Esempio di verifica del servizio: la definizione del servizio HTTP elenca la porta TCP 80.

3. Aggiungi HTTP in modo permanente, quindi carica le regole salvate

Firewalld mantiene configurazioni separate in fase di esecuzione e permanenti. Un comando normale modifica solo le regole attive in fase di esecuzione; --permanentsalva la configurazione ma non attiva immediatamente la modifica. Per web01, aggiungi il servizio HTTP alla zona che possiede la sua interfaccia pubblica:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload

Utilizzare --zoneesplicitamente in modo che la regola non possa essere inserita in una zona predefinita non intenzionale. Un ricaricamento applica le regole permanenti all'esecuzione. Le modifiche non salvate solo in fase di esecuzione vengono scartate durante il ricaricamento, quindi esaminare e conservare tutte le regole temporanee di cui si ha bisogno intenzionalmente prima di eseguirle. Per testare un servizio prima di renderlo permanente, è possibile eseguirlo prima sudo firewall-cmd --zone=public --add-service=httpsenza --permanent; se funziona, aggiungere la regola permanente e ricaricare. Un test solo in fase di esecuzione viene perso dopo un ricaricamento o un riavvio del firewall.

Visualizzazione illustrativa del terminale che mostra l'aggiunta permanente di HTTP alla rete pubblica e il ricaricamento di firewalld.
Sequenza di comandi a scopo illustrativo: salvare le autorizzazioni HTTP nella directory pubblica, quindi ricaricare firewalld per applicarle.

Se hai bisogno di una singola porta anziché di un servizio predefinito, specifica sia la porta che il protocollo, ad esempio --add-port=8080/tcp. Fallo solo se l'applicazione è effettivamente in ascolto su quella porta. Un'autorizzazione del firewall non avvia un server web, non crea una regola del gruppo di sicurezza cloud né configura un router a monte; tutti i livelli di rete devono consentire il traffico.

4. Verifica l'accesso e rimuovi le regole che non ti servono più

Verifica le configurazioni in esecuzione e quelle salvate:

sudo firewall-cmd --zone=public --list-services
sudo firewall-cmd --permanent --zone=public --list-services
sudo firewall-cmd --check-config

L'output dovrebbe essere incluso httpin entrambi gli elenchi di servizi e il controllo della configurazione dovrebbe completarsi senza segnalare errori. Verificare inoltre che l'applicazione sia in ascolto localmente, ad esempio con sudo ss -lntp, e testare il sito da un client sulla rete prevista. Un elenco del firewall conferma una regola, non la raggiungibilità end-to-end: DNS, un firewall cloud, il routing e il server web stesso possono comunque bloccare o far fallire la richiesta.

Visualizzazione illustrativa del terminale che mostra HTTP nell'elenco dei servizi della zona pubblica insieme a SSH
Esempio di output di verifica: HTTP compare tra i servizi della zona pubblica, mentre SSH rimane nell'elenco.

Se HTTP non è più necessario, rimuovere la regola salvata e ricaricare: sudo firewall-cmd --permanent --zone=public --remove-service=http, seguito da sudo firewall-cmd --reload. Ricontrollare gli elenchi di runtime e permanenti in seguito. Evitare di svuotare tutte le regole o di passare a una zona attendibile per risolvere un singolo problema di accesso; tali modifiche più ampie possono esporre servizi non correlati.

Note sulla fonte

Per indicazioni specifiche sulla release, consultare la Guida alla sicurezza e alla protezione di SUSE SLES 15 SP7 . Per informazioni sul comportamento dei comandi nelle diverse versioni di firewalld, consultare la documentazione di firewall-cmd e il riferimento alla configurazione runtime rispetto alla configurazione permanentefirewall-cmd --help . Le opzioni disponibili possono variare a seconda della versione di firewalld inclusa in un particolare service pack di SLES; pertanto , se un comando non è disponibile, consultare la documentazione locale .

Lascia un commento

Diagnosticare un server SUSE che si blocca nella schermata di arresto di systemd

Diagnosticare un server SUSE che si blocca nella schermata di arresto di systemd

Utilizza i processi systemd e il registro di avvio precedente per individuare un servizio, un punto di montaggio o una dipendenza di archiviazione che rallenta il sistema, quindi correggi il problema senza mascherarne la causa.

Apri solo il traffico web necessario al tuo server SLES 15

Apri solo il traffico web necessario al tuo server SLES 15

Utilizza firewall-cmd per ispezionare la zona attiva, consentire HTTP in modo sicuro, preservare l'accesso SSH e verificare che la regola sopravviva a un riavvio su SLES 15.

Diagnosticare gli errori di accesso a SLES PAM senza bloccare l'accesso.

Diagnosticare gli errori di accesso a SLES PAM senza bloccare l'accesso.

Individuare la causa di un errore PAM, ovvero il servizio, i criteri dell'account o il provider di identità, quindi ripristinare la corretta configurazione SLES preservando una sessione amministrativa funzionante.

Automatizza i backup coerenti di Nextcloud con Restic e Cron.

Automatizza i backup coerenti di Nextcloud con Restic e Cron.

Esegui il backup simultaneo dei file di Nextcloud e di MariaDB, pianifica snapshot crittografati di Restic tramite cron e verifica il ripristino senza mettere a rischio il server di produzione.

Metti ONLYOFFICE Docs dietro HAProxy senza interrompere la modifica

Metti ONLYOFFICE Docs dietro HAProxy senza interrompere la modifica

Configura HAProxy HTTPS, l'inoltro delle intestazioni, i timeout WebSocket e i controlli di integrità per ONLYOFFICE Docs, quindi verifica le modifiche e i salvataggi.

Aggiungere font al server di documenti ONLYOFFICE: Docker vs Linux

Aggiungere font al server di documenti ONLYOFFICE: Docker vs Linux

Installa i font personalizzati in ONLYOFFICE Document Server, confronta i mount Docker persistenti con le copie dirette, ricostruisci l'elenco dei font e verifica il risultato.

Debian 12 su un VPS con poca RAM: come ridurre i crash di MySQL dovuti a errori di memoria insufficiente (OOM).

Debian 12 su un VPS con poca RAM: come ridurre i crash di MySQL dovuti a errori di memoria insufficiente (OOM).

Diagnosticare i kill di MySQL OOM su Debian 12, verificare i limiti di memoria del VPS, configurare lo swap e ottimizzare la memoria e la concorrenza del database, senza promettere una soluzione universale.

Eseguire il backup e il ripristino di una casella di posta Zimbra CE utilizzando le esportazioni TGZ.

Eseguire il backup e il ripristino di una casella di posta Zimbra CE utilizzando le esportazioni TGZ.

Esporta una singola casella di posta Zimbra Community Edition, convalida il relativo backup TGZ e ripristina gli elementi mancanti senza sovrascrivere la posta esistente.

Consenti agli utenti autorizzati di creare stanze Jitsi con l'accesso tramite Keycloak.

Consenti agli utenti autorizzati di creare stanze Jitsi con l'accesso tramite Keycloak.

Consenti solo agli account approvati di avviare stanze Jitsi Meet utilizzando l'autenticazione tramite Keycloak e token, mantenendo al contempo la possibilità per gli ospiti di partecipare quando necessario.

Come configurare una VPN WireGuard Point-to-Site su Debian 12

Come configurare una VPN WireGuard Point-to-Site su Debian 12

Configura un server VPN WireGuard su Debian 12 per un client remoto. Configura le chiavi, l'inoltro IPv4, il NAT con nftables, l'accesso tramite firewall e i controlli di connessione.