È un rischio per la sicurezza dare permessi di lettura / scrittura a / Library / WebServer / Documents al mio account principale?

5

L'impostazione predefinita è che apache2 root-directory Documents è di proprietà di root e devo inserire una password ogni volta che la cambio. Questo è il motivo per cui voglio dare permessi completi al mio account utente nelle informazioni del file:

Tuttavia, non sono sicuro che ciò possa rappresentare un rischio per la sicurezza poiché le impostazioni predefinite sono così restrittive.

    
posta Lenar Hoyt 17.11.2014 - 14:12
fonte

3 risposte

2

Sì, può essere un rischio per la sicurezza e può essere considerato una violazione della sicurezza se il tuo account principale viene compromesso o se fai qualcosa di sbagliato per errore - differisce da caso a caso a seconda di quanto sia importante il tuo progetto e di cosa sei trattare con. Ma se fossi in te, non userei mai il permesso 777 o anche qualcosa di simile che chiunque possa facilmente apportare modifiche alle mie directory WebServer. In altre parole, anche se possiedo due utenti Unix, un mio utente X e l'altro utente root, non darò il permesso a X solo perché sto cercando facilità. Su MacOS, come su Linux o qualsiasi altro sistema operativo Unix-like, puoi utilizzare ACL - Elenchi di controllo accessi -, puoi impostare Attributi , oppure puoi configurare Apache in un modo di avere directory root differenti per diversi host virtuali se si ha a che fare con centinaia di utenti che hanno bisogno di cambiare le proprie probabilità e soda all'interno delle directory apache, ma mai sottovalutare i DAC. Le autorizzazioni che hai menzionato sono considerate DAC (controllo di accesso discrezionale), 3 bit per il proprietario, 3 per i gruppi e 3 per gli altri, chiamato anche personale. Ad ogni modo, ti consiglio di leggere gli ACL, suppongo che faranno ciò di cui hai bisogno, gli ACL predefiniti sono usati per assegnare / impostare l'elenco di controllo degli accessi su una directory specifica per consentire a utenti e gruppi specifici di avere diritti di accesso. Per una rapida panoramica sugli ACL, puoi utilizzare chmod con l'opzione +a per impostare o l'opzione -a per rimuovere ACL. Puoi anche ls -le per visualizzare gli ACL impostati. Ad esempio:

chmod -R +a "group:_www allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" yourDirectoryORFile

Gli ACL sono un'opzione migliore, oltre a modificare le autorizzazioni, che puoi beneficiare della forma.

A proposito, dovresti notare che è giusto che MacOS sia sicuro e protetto, ma servizi come Apache, SSH, SAMBA, ecc. non sono protetti dal momento che vengono utilizzati e configurati dallo stato predefinito.

Le autorizzazioni di file e directory sono uno dei principi fondamentali e le prime autorizzazioni che dovrai affrontare nei sistemi operativi Unix-Like. Per proteggere il tuo sistema, devi davvero prestare molta attenzione ad ogni dettaglio del sistema a seconda del tuo scopo. Fornire un permesso completo sembra che tu stia deliberatamente fornendo violazioni della sicurezza nel tuo sistema.

Quando parli di Apache Server - o NGINX - devi prima accertarti della sicurezza della directory. Ad esempio in Linux, si consiglia di non disabilitare SELinux (usato per il controllo di accesso obbligatorio di gestione, il controllo di accesso basato sui ruoli - RBAC - e così via), quindi in tal caso, dopo aver impostato le autorizzazioni corrette per directory e file, è possibile impostare i ruoli e tipi in un livello più profondo di sicurezza. Se non fosse necessario, tutti useranno 777 - Read-Write-Execute per tutti gli utenti, i gruppi e il personale, quindi assicurati che ci sia una ragione per cui non è 777 per impostazione predefinita.

E la prossima cosa che dovresti fare attenzione è la configurazione e le regole del tuo firewall. MacOS usa PF poiché è costruito su un microkernel di FreeBSD (PF sta per Packet Filter - e IPFW sta per IPFireWall). Puoi utilizzare man pfctl per leggere la sua pagina di manuale e capire come puoi gestirli.

    
risposta data 27.12.2016 - 09:22
fonte
1

Non riesco a pensare a una ragione per cui sarebbe un problema.

Apache non funziona con le credenziali dell'utente, quindi nessun utente esterno sarà in grado di entrare in quella directory semplicemente dando i permessi di lettura / scrittura.

    
risposta data 27.12.2016 - 06:55
fonte
1

L'impostazione predefinita è solo una semplice applicazione del Principio di privilegio minimo . Non ha lo scopo di proteggere il tuo account principale da ciò che potrebbe accadere nel server Apache, ma per proteggere i siti Apache da azioni indesiderate dal tuo account.

Se di solito devi scrivere alcuni file in alcune cartelle sotto la directory root di apache2 Documents , dovresti dare accesso in scrittura solo a quelle cartelle. Se occasionalmente esegui attività amministrative su tutte le cartelle apache2, dovresti eseguire un account amministrativo con accesso completo lì, non è necessario che sia l'utente root o l'account principale.

Dovresti avere solo accesso in scrittura sulla cartella radice di apache2 se scrivere lì è una parte importante della tua normale attività su quella macchina.

Non vi è alcun rischio specifico nel non farlo oltre alle azioni involontarie (per quanto riguarda la modifica di un file operativo mentre si desidera eseguirlo su un file di test?) o la compromissione del proprio account. Così è come con tutti gli altri principi di sicurezza: devi esserne consapevole e semplicemente sapere perché non lo applichi. Ad esempio, se l'organizzazione generale della macchina implica che se il tuo account principale non ha accesso in scrittura, devi essere registrato come root più della metà del tempo, probabilmente è peggio.

TL / DR: il valore predefinito che solo root ha accesso in r / w a root di apache2 Document è solo il Principle Of Least Priviledge. Spetta a te sapere se è pertinente o meno nel tuo particolare caso d'uso.

    
risposta data 27.12.2016 - 08:27
fonte

Leggi altre domande sui tag