Voglio eseguire un server Web a casa (davvero per il divertimento e l'apprendimento del Web / rete e altre best practice di sicurezza), eseguendo un'app Web che ho intenzione di scrivere con Ruby on Rails e potervi accedere da al di fuori. Ho intenzione di eseguirlo su un web Linux VM + Apache (voglio installare da zero, sempre per il gusto di farlo) server in esecuzione in virtual box / VMWare sul mio Mac.
Capisco che devo inoltrare le porte (pianificare l'inoltro da 80 a 8080 o qualche altra porta non privilegiata, nessuna altra porta aperta dal mio router), potenzialmente ottenere DNS dinamici ecc. per poter accedere ad esso in modo affidabile ecc., e non sono preoccupato su come collegarlo al mondo esterno.
Ho letto articoli e risorse sull'indurimento del server web Apache. Ho intenzione di provare a seguire le migliori pratiche di sicurezza per mitigare le minacce comuni (XSS, CSRF, SQL injection, ecc.) Per la webapp stessa (usando la guida alla sicurezza di Ruby on Rails che ritengo sia un buon punto di partenza).
-
Dato che lo sto eseguendo su una VM, c'è un modo per qualcuno di hackerare / dirottare l'applicazione webserver / web per controllare la mia macchina host (non mi interessa se controllano la VM dal momento che tutto questo cosa è per l'apprendimento)?
-
Quali ulteriori precauzioni devo prendere per proteggere la mia macchina host? O è semplicemente meglio avere un sistema separato solo per eseguire il webserver?
-
Inoltre quale protezione extra posso aggiungere nella mia VM per evitare che venga hackerata in primo luogo (firewall, rilevamento delle intrusioni come snort?)
-
Se la macchina virtuale o il server web dedicato viene rilevato, in che modo influisce sulla sicurezza della rete locale / LAN? Come posso mitigare la minaccia?
-
È più sicuro creare una VM, creare un server Web accessibile solo tramite una VPN all'interno della VM, dove il server VPN si trova all'interno della VM e creare accessi VPN attraverso i quali è possibile accedere al server Web? Simile o esattamente uguale a come hai una intranet aziendale? Presumo che eseguirò OpenVPN come utente non privilegiato e non sono sicuro di poterlo ascoltare su porte non privilegiate.
Ho letto il wiki di autenticazione e altri post correlati su Stack Exchange come la vulnerabilità di altri sistemi se un sistema è compromesso sulla rete ecc., ma ho comunque sentito la necessità di porre la domanda.