Il servizio di un sito di apache di debug locale dalla directory home richiede 755 permanenti nella struttura delle directory, è sicuro su un laptop con un singolo utente?

1

Ho alcune semplici app Web distribuite su provider esterni. Per test e debug eseguo istanze locali (su richiesta, non tutte le volte) su localhost: 80 usando apache.

Questi sono ospitati direttamente dal mio Codice / cartelle poiché è lì che sto apportando delle modifiche. Precedentemente queste cartelle erano su un albero di directory separato (/home/data/...../Code) ma a causa di una riorganizzazione della struttura delle directory sto spostando la cartella Codice nella mia cartella home (~ /..../ Codice). Ovviamente, questo significa che apache non permetterà il caricamento a meno che non cambi le autorizzazioni da ~ a 755 da 700.

Il mio laptop è single-user, e l'accesso remoto (per quanto posso dire) è permesso solo attraverso sshd (solo key-only, nessun login con password consentito) e i siti ospitati da apache (come testò anche come la pagina apparirà sul mio smartphone a volte). Sto aumentando il mio profilo di rischio dando 755 permessi a ~? Sono particolarmente preoccupato per ~ / .ssh e le directory sensibili simili, ma quelle già negano il permesso di lettura a chiunque tranne il mio stesso utente.

    
posta Ng Oon-Ee 18.10.2017 - 02:00
fonte

3 risposte

0

Dovresti essere in grado di impostare i permessi sulla tua home directory su qualcosa come 0701 e poi impostare il gruppo sulla directory che vuoi che Apache possa vedere a 750 con l'impostazione del gruppo di quella directory sul gruppo dell'utente che Apache è in esecuzione come.

Quindi qualcosa del genere:

chmod o+x ~/
chmod -R g+rx ~/directoryWhereFilesAre/
chgrp -R www-data ~/directoryWhereFilesAre/

Dove "www-data" è il nome del gruppo predefinito dell'utente di Apache e "directoryWhereFilesAre" è la directory superiore in cui è possibile mantenere i file che si desidera accedere tramite Apache.

Questo lascia la tua home directory aperta a tutti gli utenti che possono accedere alla tua home directory ma devono già conoscere il nome e il percorso di un file / directory e avere il permesso di lettura su quel file / directory per accedervi. Probabilmente questo è sicuro su un singolo sistema utente, ma solo tu puoi decidere in base alla tua volontà di accettare tale rischio.

    
risposta data 18.10.2017 - 18:58
fonte
0

755 è solitamente l'autorizzazione predefinita per le directory home, ma se lo desideri puoi limitarlo alla directory Code e usare setfacl per limitarlo solo all'utente apache:

# Set exec on parent directories
setfacl -m u:www-data:x ~
setfacl -m u:www-data:x ~/foo
setfacl -m u:www-data:x ~/foo/bar
# Recursively set default acl
setfacl -R -d -m u:www-data:rX ~/foo/bar/Code
# Recursively set acl for existing files
setfacl -R -m u:www-data:rX ~/foo/bar/Code

(puntelli a RichardNixon per avermi ricordato che le directory madri avranno bisogno del permesso exec)

Tieni presente che l'utente di apache potrebbe essere www-data , httpd , apache o qualcos'altro a seconda della tua distribuzione.

    
risposta data 18.10.2017 - 15:29
fonte
0

Sinceramente dubito che "Apache ... richieda 755 permessi", è più probabile che il server web abbia bisogno di essere in grado di leggere il contenuto che ci si aspetta serva. Come fornisci questa funzionalità è una domanda molto diversa da quella che hai chiesto.

Il server web richiede questa autorizzazione indipendentemente da dove sono distribuiti i file.

Ci sono 2 problemi da affrontare:

Sebbene tu possa essere l'unica persona a dover distribuire i file sul tuo laptop, le autorizzazioni appropriate fanno parte del manufatto, quindi il meccanismo che scegli per il provisioning di tali permessi dovrebbe estendersi il più possibile nello spazio di distribuzione, che potrebbe essere uno script di correzione (con per host config) che viene eseguito dopo la distribuzione del contenuto o una definizione statica che potrebbe concedere l'accesso in scrittura a un gruppo denominato, con setgid bit impostato sulle directory.

L'altro problema è che potresti inavvertitamente creare nuovi file che vengono esposti dal server web. Ciò viene mitigato assicurando che il server Web sia configurato per leggere solo da directory specificamente designate allo scopo. Se devi avere quei file nella tua home directory (piuttosto che avere un link simbolico all'interno della tua home directory alla root del documento reale) usa mod_userdir e ~ / public_html, usa un link simbolico all'interno della root_document verso la directory del contenuto insieme alle opzioni + followlinks o aggiungere un alias per la directory. Sebbene personalmente tenderei a mantenere il contenuto modificabile nella tua home directory, aggiornandolo in un sistema di controllo versione locale e distribuendolo da lì nella root del documento quando vuoi eseguirlo.

Se stai impostando il bit eseguibile sui file di contenuto, stai indebolendo la sicurezza del tuo sistema - questo è richiesto solo per le directory.

    
risposta data 16.02.2018 - 02:41
fonte

Leggi altre domande sui tag