Basic nginx protezione / accesso limitato [chiuso]

3

Gestisco un server virtuale privato su Ubuntu 14.04 e utilizzo Nginx come server http e / o proxy inverso. Eseguo più webapp su questo server, la maggior parte di questi sono nuovi progetti open source.

UPDATE: Il server è un VPS che affido a una società di hosting. L'installazione sarà un sottodominio per app.

Mi sto chiedendo quali sono le varie possibilità di proteggere nginx in un ambiente semplice. Per ora questo server è usato solo per uso dev / private. Mi piacerebbe raggiungere i seguenti:

  • Utilizza un'autenticazione per le app che non hanno le proprie. Altrimenti chiunque può usarlo.
  • Limita l'accesso a determinate macchine. So che Nginx può negare l'accesso in base all'indirizzo IP, mi chiedevo se avrei potuto ottenere questo utilizzando altre variabili come ad esempio l'indirizzo mac?

  • Impedisci ai motori di ricerca di indicizzare cosa c'è sul mio server. Ho letto che potrei usare un .htaccess di Apache, ma posso farlo con nginx? Qual è la differenza con i file robots.txt?

  • Come si isolerebbero le webapp? Mi chiedevo se potevo eseguire ogni app come utenti separati al fine di rafforzare la sicurezza. In caso contrario (qualcuno mi dica se ho torto) una violazione della sicurezza in uno di essi (e ciò potrebbe accadere spesso con progetti giovani) potrebbe consentire a un utente malintenzionato di accedere a tutti i file utente di www-data. Riguardo a questo thread non so se io deve indagare in pool php5-fpm o solo nginx o entrambi.

Grazie!

Aggiorna

Letture interessanti su Docker e Sandstorm

Di solito imposto le cartelle a 755 e i file a 644. (Alcune app consigliano 777 su intere cartelle: 0) Per un server preferisco rimanere su ubuntu per ora (più semplice) nonostante mi sia divertito davvero scoprire Arch pochi mesi fa. Tuttavia ho visto questo . Dovrei essere in grado di impostare SE linux.

Io uso sempre https. Nginx sta solo ascoltando su ssl port. Il "problema" è che uso un certificato autofirmato ( forse non per molto tempo ) e non so molto sui cyphers, quindi io Prima di fare alcune domande, indagherò su ssl. Questa mattina ho appena saputo che potrei usare TLS in nginx config ^^

Non capisco davvero cos'è il hash. Né dove usarlo (intendo nella configurazione "server / nginx"). Non riesco ancora a capire dove usare hash ad eccezione di ssl config. - > Potrei usare l'hash come password?

Attualmente utilizzo Mitro . Ma inutile su Android (hijack degli appunti)

Uso anche alcune opzioni di base di rkhunter e fail2ban.

    
posta Lich4r 17.02.2015 - 21:21
fonte

1 risposta

1
* Use an authenficiation for apps that don't have their own. Otherwise anyone can use it.

Puoi usare l'autenticazione di base HTTP per quello. È essenziale, come dice il nome. link

* Restrict access to certain machines. I know Nginx can deny access based on IP adress, I was wondering if I could achieve this using other variables such as mac adress for example?

In realtà non lo consiglierei. Gli indirizzi Mac possono essere falsificati. L'autenticazione I.P più una password dovrebbe essere abbondante. Anche gli indirizzi IP possono essere falsificati, ma in questo contesto è un po 'più problematico.

link

* Prevent search engines to index what is on my server. I have read that I could use an Apache .htaccess but can I do it with nginx ? What is the difference with robots.txt files ?

Usa Robots.txt per dire al motore di ricerca che cosa vuoi che non rimanga. Usa l'autenticazione htaccess / basic per essere sicuro. Il motore di ricerca non può leggere nulla a cui non ha una password, anche se potrebbe vedere che c'è una pagina lì (un proibito è una sorta di prova dell'esistenza di una pagina in un modo.)

link

* How would one isolate webapps ? I was wondering if I could run each apps as separate users in order to harden security. Otherwise (someone tell me if I'm wrong) a security breach in one of them (and that may happen often with young projects) could allow an attacker to have access to all www-data user files. Regarding this thread I don't know if I must investigate in php5-fpm pools or only nginx or both.

Puoi eseguire l'app in un contenitore sicuro di qualche tipo, come le offerte di finestra mobile. Credo che SystemD abbia anche un contenitore nativo. In questo modo c'è un altro "sandbox" da cui uscire prima che tu ti trovi in un problema profondo e profondo. Tieni presente che se sul server è presente un exploit binario, l'utente malintenzionato sarà spesso utente o Nginx e avrà accesso a ciò a cui i server hanno accesso. Il modo in cui molti provider di hosting fanno cose, è che eseguono ciascun sito in una macchina virtuale di sua proprietà. Se la tua scatola ha la potenza per questo, potrebbe essere una buona soluzione.

Assicurati che le autorizzazioni su tutte le tue cartelle siano impostate correttamente. Se usi centOS o RedHat Linux è anche possibile aggiungere un altro livello di permessi a grana fine alle cartelle web per bloccarli ulteriormente (investigare su SE linux.) Dato che sei su Ubuntu, questa non è un'opzione, ma se cambi mai Si dovrebbe controllare. Allo stesso modo, freeBSD ha un concetto di "Jail" che limita l'accesso delle app all'intero sistema. Potresti trovare interessante anche questo.

Alcune cose extra che non hai chiesto ma ti dirò

  • Assicurati di nascondere i numeri di versione ovunque sia possibile
  • Utilizza HTTPS su tutto
  • Cripta tutto ciò che puoi, ogni volta che puoi.
  • Utilizza i cifrari più potenti che puoi sempre
  • Usa gli hash più forti che puoi.
  • Utilizza password molto grandi. Utilizzare un gestore di password che genera password sicure per te. (Keepass è bello.)
  • Se è vita e morte che nessuno acceda a questa cosa, non metterla su internet. Se le persone lo vogliono abbastanza male, troveranno un modo.
  • Non aver paura di utilizzare una soluzione di hosting, in cui alcune delle responsabilità in materia di sicurezza (IDS e simili) ricadono sul provider di hosting. Non è garantito che lo faranno bene, ma se sei un nuovo sviluppatore web, sarà molto difficile preoccuparsi di tutto ciò mentre impari a programmare.
risposta data 17.02.2015 - 23:00
fonte

Leggi altre domande sui tag