Sebbene ci siano già molte buone funzionalità di sicurezza integrate nei sistemi basati su Linux, una potenziale vulnerabilità molto importante può esistere quando viene concesso l’accesso locale, ovvero problemi basati sui permessi dei file derivanti da un utente che non assegna le autorizzazioni corrette a file e directory. Quindi, in base alla necessità di autorizzazioni adeguate, esaminerò i modi per assegnare le autorizzazioni e mostrerò alcuni esempi in cui potrebbe essere necessaria una modifica.,
Permessi di base dei file
Gruppi di permessi
Ogni file e directory ha tre gruppi di permessi basati sull’utente:
- proprietario – Le autorizzazioni del proprietario si applicano solo al proprietario del file o della directory, non influenzeranno le azioni di altri utenti.
- gruppo-Le autorizzazioni del gruppo si applicano solo al gruppo assegnato al file o alla directory, non influiscono sulle azioni di altri utenti.
- tutti gli utenti – Le autorizzazioni di tutti gli utenti si applicano a tutti gli altri utenti del sistema, questo è il gruppo di autorizzazioni che si desidera guardare di più.,
Tipi di autorizzazione
Ogni file o directory ha tre tipi di autorizzazione di base:
- read – L’autorizzazione di lettura si riferisce alla capacità di un utente di leggere il contenuto del file.
- write-Le autorizzazioni di scrittura si riferiscono alla capacità di un utente di scrivere o modificare un file o una directory.
- execute-L’autorizzazione Execute influisce sulla capacità di un utente di eseguire un file o visualizzare il contenuto di una directory.,
Visualizzazione delle autorizzazioni
È possibile visualizzare le autorizzazioni controllando le autorizzazioni di file o directory nel file Manager GUI preferito (che non tratterò qui) o rivedendo l’output del comando “ls-l” mentre si è nel terminale e mentre si lavora nella directory che contiene il file o la cartella.
L’autorizzazione nella riga di comando viene visualizzata come: _rwxrwxrwx 1 proprietario:gruppo
- Diritti / Autorizzazioni utente
- Il primo carattere che ho contrassegnato con un trattino basso è il flag di autorizzazione speciale che può variare.,
- Il seguente set di tre caratteri (rwx) è per le autorizzazioni del proprietario.
- Il secondo set di tre caratteri (rwx) è per le autorizzazioni del gruppo.
- Il terzo set di tre caratteri (rwx) è per le autorizzazioni di Tutti gli utenti.
- Dopo quel raggruppamento poiché il numero intero / numero visualizza il numero di hardlink al file.
- L’ultimo pezzo è l’assegnazione del proprietario e del gruppo formattata come Proprietario: Gruppo.
Modifica delle autorizzazioni
Quando nella riga di comando, le autorizzazioni vengono modificate utilizzando il comando chmod., È possibile assegnare le autorizzazioni in modo esplicito o utilizzando un riferimento binario come descritto di seguito.
Definizione esplicita delle autorizzazioni
Per definire esplicitamente le autorizzazioni è necessario fare riferimento al gruppo di autorizzazioni e ai tipi di autorizzazioni.
I Gruppi di Autorizzazione utilizzati sono:
I potenziali Operatori di Assegnazione sono + (più) e – (meno); questi sono usati per indicare al sistema se aggiungere o rimuovere le autorizzazioni specifiche.,
I tipi di autorizzazione utilizzati sono:
- r – Read
- w – Write
- x – Execute
Quindi, per un esempio, diciamo che ho un file chiamato file1 che attualmente ha i permessi impostati su _rw_rw_rw, il che significa che il proprietario, il gruppo e tutti gli utenti hanno i permessi di lettura e scrittura. Ora vogliamo rimuovere le autorizzazioni di lettura e scrittura dal gruppo tutti gli utenti.,
Per fare questa modifica dovresti invocare il comando: chmod a-rw file1
Per aggiungere le autorizzazioni di cui sopra dovresti invocare il comando: chmod a+rw file1
Come puoi vedere, se vuoi concedere quelle autorizzazioni cambi il carattere meno in un più per aggiungere quelle autorizzazioni.
Usare i riferimenti binari per impostare le autorizzazioni
Ora che hai capito i gruppi e i tipi di autorizzazioni, questo dovrebbe sembrare naturale. Per impostare l’autorizzazione usando riferimenti binari devi prima capire che l’input viene fatto inserendo tre numeri interi/numeri.,
Una stringa di autorizzazione di esempio sarebbe chmod 640 file1, il che significa che il proprietario ha le autorizzazioni di lettura e scrittura, il gruppo ha le autorizzazioni di lettura e tutti gli altri utenti non hanno diritti sul file.
Il primo numero rappresenta l’autorizzazione del proprietario; il secondo rappresenta le autorizzazioni del gruppo; e l’ultimo numero rappresenta le autorizzazioni per tutti gli altri utenti. I numeri sono una rappresentazione binaria della stringa rwx.
- r = 4
- w = 2
- x = 1
Si aggiungono i numeri per ottenere il numero intero / numero che rappresenta le autorizzazioni che si desidera impostare., È necessario includere le autorizzazioni binarie per ciascuno dei tre gruppi di autorizzazioni.
Quindi per impostare un file su permessi su file1 per leggere _rwxr_____, dovresti inserire chmod 740 file1.
Proprietari e gruppi
Ho fatto diversi riferimenti a proprietari e gruppi sopra, ma non ti ho ancora detto come assegnare o modificare il proprietario e il gruppo assegnati a un file o una directory.,
Si utilizza il comando chown per modificare le assegnazioni del proprietario e del gruppo, la sintassi è simplechown owner:group filename, quindi per cambiare il proprietario di file1 in user1 e il gruppo in family si immette chown user1:family file1.
Autorizzazioni avanzate
Il flag autorizzazioni speciali può essere contrassegnato con una delle seguenti:
- _ – nessuna autorizzazione speciale
- d – directory
- l– Il file o la directory è un collegamento simbolico
- s – Questo indicava le autorizzazioni setuid/setgid., Questo non è impostato visualizzato nella parte autorizzazione speciale della visualizzazione autorizzazioni, ma è rappresentato come s nella parte lettura delle autorizzazioni del proprietario o del gruppo.
- t-Questo indica le autorizzazioni bit appiccicoso. Questo non è impostato visualizzato nella parte autorizzazione speciale del display autorizzazioni, ma è rappresentato come una t nella parte eseguibile di tutti gli utenti permessi
Setuid/Setgid Permessi speciali
I permessi setuid / setguid vengono utilizzati per dire al sistema di eseguire un eseguibile come proprietario con le autorizzazioni del proprietario.,
Fai attenzione usando i bit setuid / setgid nelle autorizzazioni. Se si assegnano erroneamente le autorizzazioni a un file di proprietà di root con il bit setuid/setgid impostato, è possibile aprire il sistema all’intrusione.
È possibile assegnare il bit setuid/setgid solo definendo esplicitamente le autorizzazioni. Il carattere per il bit setuid/setguid è s.
Quindi imposta il bit setuid/setguid su file2.sh si dovrebbe emettere il comando chmod g + s file2.sh.,
Permessi speciali Sticky Bit
Il bit sticky può essere molto utile in ambiente condiviso perché quando è stato assegnato alle autorizzazioni su una directory lo imposta in modo che solo il proprietario del file possa rinominare o eliminare il suddetto file.
È possibile assegnare il bit appiccicoso solo definendo esplicitamente le autorizzazioni. Il carattere per il bit appiccicoso è t.
Per impostare il bit appiccicoso su una directory denominata dir1 si dovrebbe emettere il comando chmod +t dir1.,
Quando le autorizzazioni sono importanti
Per alcuni utenti di computer basati su Mac o Windows, non si pensa alle autorizzazioni, ma questi ambienti non si concentrano in modo così aggressivo sui diritti basati sull’utente sui file a meno che non ci si trovi in un ambiente aziendale. Ma ora si esegue un sistema basato su Linux e la sicurezza basata sui permessi è semplificata e può essere facilmente utilizzata per limitare l’accesso a piacere.
Quindi ti mostrerò alcuni documenti e cartelle su cui vuoi concentrarti e ti mostrerò come devono essere impostate le autorizzazioni ottimali.,
- home directory– Le directory home degli utenti sono importanti perché non si desidera che altri utenti siano in grado di visualizzare e modificare i file nei documenti di un altro utente di desktop. Per rimediare a questo si vuole che la directory abbia le autorizzazioni drwx______ (700), quindi diciamo che vogliamo imporre le autorizzazioni corrette sulla home directory dell’utente user1 che può essere fatto emettendo il comando chmod 700 /home/user1.,
- file di configurazione del bootloader – Se si decide di implementare la password per avviare sistemi operativi specifici, si desidera rimuovere le autorizzazioni di lettura e scrittura dal file di configurazione da tutti gli utenti tranne root. Per fare è possibile modificare le autorizzazioni del file a 700.
- file di configurazione di sistema e daemon– È molto importante limitare i diritti ai file di configurazione di sistema e daemon per limitare gli utenti dalla modifica dei contenuti, potrebbe non essere consigliabile limitare i permessi di lettura, ma limitare i permessi di scrittura è un must., In questi casi può essere meglio modificare i diritti di 644.
- script firewall-Potrebbe non essere sempre necessario bloccare tutti gli utenti dalla lettura del file firewall, ma è consigliabile limitare gli utenti dalla scrittura del file. In questo caso lo script del firewall viene eseguito automaticamente dall’utente root all’avvio, quindi tutti gli altri utenti non hanno bisogno di diritti, quindi è possibile assegnare i permessi 700.