Quale sicurezza fornisce nginx tra i blocchi del server?

2

What security does nginx provide between server blocks?

Ecco uno scenario di esempio. Supponiamo di avere due blocchi server configurati con nginx. Ognuno serve un'applicazione Web agli utenti autenticati. Sono preoccupato che se un'applicazione web viene compromessa, potrebbe essere sfruttata per accedere all'altra applicazione Web.

Ad esempio, diciamo che un'applicazione web ha una vulnerabilità di inclusione di file remoti che consente all'aggressore di ottenere una shell. Quella shell avrebbe i privilegi del server web (www-data). Con questi privilegi, l'utente malintenzionato potrebbe iniziare a leggere i file dall'altra applicazione Web, giusto?

Esiste una separazione aggiuntiva che è possibile configurare in blocchi del server nginx per una maggiore sicurezza in questo scenario?

    
posta mikeazo 17.06.2014 - 15:17
fonte

1 risposta

3

Non c'è isolamento (dal punto di vista della sicurezza) tra i blocchi del server - i blocchi del server esistono solo come spazio dei nomi per le direttive correlate. Nginx può avere un solo utente configurato, in quanto diventa quell'utente solo dopo aver eseguito il binding ai socket di rete (che richiede il collegamento root to ports < 1024).

Quello che puoi fare, e ciò che ho fatto in passato, è eseguire le applicazioni come utenti diversi. Non si specifica quale lingua si sta utilizzando, ma ad esempio, eseguo uwsgi worker e li eseguo sotto utenti per applicazione per isolare le mie applicazioni. Gli zoccoli devono essere letti / scritti www-data (io di solito lo faccio via gruppo, quindi il socket unix per l'app server finisce come appname: www-data, modalità 0660) e i file statici devono essere leggibili da nginx (se vuoi servire direttamente file statici).

    
risposta data 17.06.2014 - 18:16
fonte

Leggi altre domande sui tag