Come configurare i profili AppArmor per le applicazioni personalizzate su SUSE SLES 15

Nota sulla versione, verificata il 6 ottobre 2026: questa procedura si applica a SUSE Linux Enterprise Server (SLES) 15 SP7 e ai sistemi SLE 15 compatibili che utilizzano AppArmor. SUSE documenta che AppArmor è installato ed eseguito di default su SLES 15 SP7. SUSE Linux 16.0 rimuove AppArmor e utilizza SELinux al suo posto, quindi non applicare i comandi seguenti alla versione 16.0; fare riferimento alla guida comparativa di SUSE Linux 16.0 e alla documentazione di SELinux per tale versione.

AppArmor è un modulo di sicurezza per Linux che limita l'accesso di un programma alle risorse. Un profilo è la policy associata a un eseguibile: può consentire o negare l'accesso a file, funzionalità e altre risorse. Questa guida ti accompagnerà dalla verifica della piattaforma all'implementazione di un profilo testato, con una fase di apprendimento graduale per ridurre al minimo il rischio di malfunzionamenti imprevisti nell'applicazione personalizzata.

Cosa bisogna preparare prima di creare un profilo?

Se l'applicazione è importante, utilizza una finestra di test o di manutenzione. È necessario un account amministratore con i privilegi di amministratore sudo, il percorso effettivo del file eseguibile dell'applicazione e un elenco delle normali attività che essa svolge. Includi le attività in background, l'avvio e l'arresto, il ricaricamento della configurazione, i caricamenti o le esportazioni, le attività pianificate e qualsiasi funzione connessa alla rete. Un profilo appreso da un singolo avvio non può dedurre funzionalità che non vengono mai utilizzate.

È fondamentale sapere dove l'applicazione legge e scrive i dati, quale account la esegue e se avvia processi di supporto. Quando possibile, evitare di eseguire test su dati di produzione sensibili. Registrare lo stato attuale del servizio e conservare una copia di qualsiasi profilo esistente prima di apportare modifiche.

Come si fa a verificare che AppArmor sia disponibile in questa versione di SUSE?

Innanzitutto, verifica la versione del sistema operativo e lo stato attuale di AppArmor:

cat /etc/os-release
sudo aa-status
Comando da terminale che mostra cat /etc/os-release prima di controllare la versione di SUSE.
Innanzitutto, verifica la versione di SUSE; il comando mostrato legge il file di identificazione del sistema operativo.
Comando da terminale che mostra sudo aa-status per ispezionare i profili AppArmor caricati.
Utilizza il comando aa-status per verificare se AppArmor è attivo e quali profili sono caricati.

Verificare che il sistema riporti SLES 15 SP7 o un'altra versione la cui documentazione supporti AppArmor. Su SLES 15 SP7, la guida SUSE afferma che AppArmor è installato ed eseguito per impostazione predefinita. Se non è presente, SUSE documenta l'installazione con sudo zypper in -t pattern apparmor. Se il servizio è installato ma non in esecuzione, esaminare i criteri di avvio del sistema e lo stato del servizio prima di abilitarlo; non disabilitare il modulo di sicurezza per aggirare un problema dell'applicazione. Consultare la guida introduttiva ad AppArmor per SLES 15 SP7 e la guida agli strumenti da riga di comando di AppArmor per SLES 15 SP7 per dettagli specifici della versione.

Come si identifica il file eseguibile che AppArmor dovrebbe analizzare?

I profili AppArmor sono associati ai percorsi dei programmi, quindi identifica l'eseguibile effettivo anziché presumere che il comando digitato dall'utente sia il binario. Per un comando disponibile tramite il percorso della shell, esegui:

command -v myapp
Il comando da terminale `command -v myapp` viene utilizzato per individuare il file eseguibile di un'applicazione.
Sostituisci "myapp" con il comando dell'applicazione e verifica il percorso dell'eseguibile risolto prima di eseguire la profilazione.

Per un servizio, esamina la definizione dell'unità e i dettagli del processo utilizzando gli strumenti disponibili sul tuo sistema. Uno script di avvio, un collegamento simbolico o un interprete potrebbero portare a un eseguibile diverso da quello previsto. Risolvi un percorso noto con readlink -f /path/to/myappdove appropriato. Sostituisci il percorso assoluto verificato in ogni comando seguente; /usr/local/bin/myappè solo un esempio.

Prima di creare un profilo, verifica se ne esiste già uno in /etc/apparmor.d. SUSE memorizza i profili in questa posizione e il nome del file solitamente sostituisce le barre nel percorso dell'eseguibile con dei punti. Ad esempio, /usr/local/bin/myappcorrisponde a un nome file come usr.local.bin.myapp. Non sovrascrivere un profilo esistente del fornitore o gestito localmente senza averlo prima esaminato. SUSE elenca anche profili aggiuntivi in /usr/share/apparmor/extra-profiles​​; un profilo adatto può fornire un punto di partenza, ma deve comunque essere esaminato per la tua applicazione e la tua release ( documentazione del repository dei profili SUSE ).

Come si genera un profilo iniziale in modo sicuro?

Eseguire lo strumento di generazione del profilo come amministratore, utilizzando il percorso completo del file eseguibile:

sudo aa-genprof /usr/local/bin/myapp
Comando da terminale sudo aa-genprof /usr/local/bin/myapp per avviare un profilo AppArmor iniziale.
Avvia aa-genprof con il percorso eseguibile verificato; il percorso qui riportato è solo un esempio da sostituire.

aa-genprofCrea un profilo iniziale e imposta il programma in modalità di segnalazione durante l'esecuzione. La modalità di segnalazione registra le violazioni delle policy ma non blocca l'operazione negata, consentendo di osservare il comportamento prima dell'applicazione delle restrizioni. Segui le istruzioni dello strumento; dopo aver eseguito l'applicazione, utilizza l'opzione di scansione per esaminare gli eventi registrati. SUSE descrive questo processo come iterativo, non come una garanzia che il profilo suggerito automaticamente sia completo.

Quali azioni dovresti testare e dove riscontri i rifiuti?

Mentre il profilo è in modalità di segnalazione, utilizza l'applicazione come farebbe un normale operatore. Testa i flussi di lavoro ordinari e le attività meno frequenti ma supportate, tra cui letture, scritture, caricamenti, generazione di report, riavvii dei servizi e processi ausiliari. Mantieni il test realistico: un programma potrebbe utilizzare file o processi secondari diversi per un'esportazione rispetto alla schermata iniziale.

Esamina i messaggi del kernel e il registro di controllo per individuare gli eventi di AppArmor:

sudo journalctl -k | grep -i apparmor
Il comando da terminale journalctl -k viene reindirizzato al comando grep -i apparmor per esaminare i messaggi di AppArmor nel kernel.
Dopo aver eseguito il programma, esaminare i messaggi del kernel per individuare eventuali eventi di AppArmor; questo comando visualizza le voci corrispondenti, se presenti.

A seconda della configurazione di registrazione del sistema, SUSE fa riferimento anche a /var/log/audit/audit.log, journalctl | grep -i apparmor, e dmesg -T. Una corrispondenza mancante in una vista del log non dimostra che il profilo sia corretto: verifica che l'applicazione sia stata eseguita e controlla il servizio di logging e altre posizioni di log documentate. Non considerare un profilo generato come testato solo perché l'applicazione si avvia una volta.

Come si dovrebbe rivedere e perfezionare il profilo?

Come utente root, utilizza i seguenti comandi aa-logprofper elaborare gli eventi registrati e rispondere alle richieste:

sudo aa-logprof
Il comando da terminale sudo aa-logprof consente di visualizzare gli eventi registrati da AppArmor e le regole del profilo.
Utilizza aa-logprof per esaminare gli accessi osservati e decidere quali rientrano nelle policy dell'applicazione.

Per ogni evento, chiedetevi se l'accesso è necessario per un'attività applicativa documentata. Consentite solo il percorso, la modalità di accesso o la funzionalità strettamente necessari al programma. La lettura di un file di configurazione potrebbe essere prevista; una scrittura non pianificata in una directory non correlata potrebbe segnalare un errore o un componente separato che necessita di indagine. Regole troppo ampie indeboliscono il contenimento, mentre regole troppo restrittive possono compromettere attività valide.

  • Non accettare automaticamente ogni richiesta né concedere l'accesso illimitato a tutti i file.
  • Evitate caratteri jolly generici e funzionalità non necessarie; preferite un percorso preciso e le autorizzazioni minime indispensabili.
  • Ripetere il ciclo di carico di lavoro e revisione dei log dopo le modifiche al profilo. Includere operazioni di servizio separate e attività in background.
  • Limita le modifiche all'applicazione di destinazione; evita di apportare modifiche al profilo non correlate solo per eliminare il rumore di fondo.

Il profilo rappresenta un limite di controllo degli accessi, pertanto una richiesta di autorizzazione dovrebbe essere risposta in base al comportamento dell'applicazione e ai requisiti operativi, non semplicemente perché è apparsa in un log. La guida agli strumenti da riga di comando di SUSE SLES 15 SP7 AppArmor spiega gli strumenti da riga di comando e i collegamenti di riferimento del supporto di SUSE AppArmor alle pagine man pertinenti, tra cui aa-genprof, aa-logprof, e apparmor_parser.

Quando è opportuno attivare la modalità di applicazione del profilo?

Passare all'applicazione delle policy solo dopo che i flussi di lavoro rappresentativi hanno avuto successo e dopo aver esaminato gli eventi legittimi. Applicare il profilo dell'applicazione, ricaricare il set di profili di AppArmor e riavviare l'applicazione o il servizio in modo che il processo in esecuzione utilizzi la policy aggiornata:

sudo aa-enforce /usr/local/bin/myapp
sudo systemctl reload apparmor
Eseguire il comando da terminale aa-enforce per l'applicazione di esempio, seguito da systemctl reload apparmor.
Applica le restrizioni al profilo di destinazione, quindi ricarica AppArmor; sostituisci il percorso di esempio con l'eseguibile verificato.

SUSE fa notare che il ricaricamento rilegge i profili /etc/apparmor.d; potrebbe essere necessario riavviare un programma già in esecuzione prima che il profilo aggiornato abbia effetto. Coordinare il riavvio con il responsabile del servizio e utilizzare il comando di gestione del servizio corretto per l'applicazione. Quindi ripetere i flussi di lavoro chiave sotto applicazione, anziché presumere che il successo in modalità reclamo dimostri che funzioneranno senza modifiche.

Come si verifica il risultato e come si recupera da una regressione?

Verifica lo stato del profilo e cerca eventuali nuovi rifiuti dopo il test:

sudo aa-status
sudo journalctl -k | grep -i apparmor
I comandi del terminale aa-status e journalctl -k sono stati filtrati per AppArmor dopo l'applicazione del profilo.
Verifica il profilo caricato e rivedi i nuovi messaggi di AppArmor dopo aver testato l'applicazione in modalità di applicazione forzata.

Verificare che il profilo desiderato sia caricato e in modalità di applicazione, che il servizio rimanga integro e che ogni attività richiesta funzioni correttamente. Se l'applicazione blocca un'operazione legittima, raccogliere l'evento pertinente, verificare se l'accesso è effettivamente necessario e restringere il profilo. Per una diagnosi breve e controllata, sudo aa-complain /usr/local/bin/myappè possibile impostare il profilo del programma in modalità di segnalazione; esaminare, aggiornare e testare nuovamente prima di riattivarlo con aa-enforce. Ricaricare e riavviare secondo necessità. Evitare di disattivare AppArmor a livello globale o di concedere autorizzazioni generiche come soluzione rapida.

Quali sono gli errori più comuni da evitare?

  • Utilizzo di istruzioni di rilascio errate: il flusso di lavoro qui descritto è per SLES 15 AppArmor. SUSE Linux 16.0 utilizza invece SELinux, secondo la guida comparativa di SUSE.
  • Eseguire la profilazione di un wrapper anziché del programma reale: verificare l'eseguibile che viene effettivamente eseguito, soprattutto per servizi e script.
  • Apprendimento insufficiente: le funzionalità non testate non generano accessi osservati, pertanto un profilo incompleto potrebbe fallire in seguito.
  • Approvazione delle richieste senza contesto: ogni autorizzazione aggiunta dovrebbe essere funzionale a un'attività richiesta dall'applicazione.
  • Dimenticare il riavvio: ricaricare i profili, quindi riavviare un'applicazione in esecuzione quando necessario in modo che il processo adotti i criteri.
  • Modifica senza possibilità di ripristino: esegui il backup dei profili gestiti localmente e tieni traccia delle modifiche nel sistema di controllo versione o nel processo di gestione della configurazione del tuo sistema.

Riferimenti ufficiali di SUSE

Questi riferimenti sono stati verificati il ​​6 ottobre 2026. I comandi e i dettagli dei pacchetti possono variare a seconda della versione del prodotto; si consiglia di consultare la documentazione relativa al service pack SLES installato prima di apportare modifiche.

Lascia un commento

Come giocare a Minecraft Bedrock Edition su Linux

Come giocare a Minecraft Bedrock Edition su Linux

Scopri come giocare a Minecraft Bedrock Edition su Linux con il launcher non ufficiale Bedrock Launcher, Flatpak, l'acquisto tramite Google Play e le procedure di risoluzione dei problemi più recenti.

Come gestire le app AppImage, Flatpak, Snap e AUR su Arch Linux

Come gestire le app AppImage, Flatpak, Snap e AUR su Arch Linux

Gestisci app AppImage, Flatpak, Snap e AUR su Arch Linux con bauh. Installa i backend necessari, quindi cerca, aggiorna e rimuovi le app tramite un'unica interfaccia grafica.

Strumenti di ricerca pacchetti Ubuntu: APT, App Center, Synaptic e altro ancora

Strumenti di ricerca pacchetti Ubuntu: APT, App Center, Synaptic e altro ancora

Scopri come cercare pacchetti Ubuntu con APT, App Center, Synaptic, Packages.ubuntu.com, apt-file e snap find, e come esaminare i risultati.

Come giocare a Red Dead Redemption 2 su Linux con Proton

Come giocare a Red Dead Redemption 2 su Linux con Proton

Scopri come giocare a Red Dead Redemption 2 su Linux con Steam Proton, incluse le impostazioni di compatibilità, l'accesso a Rockstar Launcher, i requisiti di spazio di archiviazione e le soluzioni ai problemi di avvio.

Come installare GCC su Ubuntu

Come installare GCC su Ubuntu

Scopri come installare GCC su Ubuntu con APT, verificare il compilatore, aggiungere build-essential, installare una versione specifica di GCC e compilare un programma di test.

Come giocare a Microsoft Flight Simulator su Linux

Come giocare a Microsoft Flight Simulator su Linux

Scopri come eseguire Microsoft Flight Simulator (2020) su Linux con Steam e Proton, incluse le istruzioni per la configurazione di Steam, l'accesso a Microsoft e la risoluzione dei problemi.

Come installare i font su Ubuntu: guida tramite interfaccia grafica e terminale

Come installare i font su Ubuntu: guida tramite interfaccia grafica e terminale

Scopri come installare i font su Ubuntu per un singolo utente o per tutti, aggiornare la cache dei font, verificare l'installazione e risolvere i problemi relativi ai font non visualizzati.

Come giocare a Cyberpunk 2077 su Linux con Steam Proton

Come giocare a Cyberpunk 2077 su Linux con Steam Proton

Scopri come giocare a Cyberpunk 2077 su Linux con Steam Play e Proton, installa il gioco, scegli Proton 11 o la versione sperimentale e risolvi i problemi di avvio più comuni.

Come rimuovere un repository APT da Debian

Come rimuovere un repository APT da Debian

Scopri come trovare, disabilitare o rimuovere definitivamente un repository APT da Debian utilizzando i moderni file .sources o le vecchie voci .list, quindi aggiorna APT in modo sicuro.

Debian: come disinstallare un pacchetto con APT o Synaptic

Debian: come disinstallare un pacchetto con APT o Synaptic

Scopri come disinstallare un pacchetto su Debian utilizzando apt remove, purge, autoremove, apt-get o Synaptic, inclusa la procedura per trovare i nomi dei pacchetti in modo sicuro.