Mi chiedevo quale sarebbe stato il modo corretto di isolare i server per proteggerli e noi da troppi danni.
Abbiamo due scenari:
1) Accesso al server delle applicazioni dal mondo
Abbiamo
- un proxy Apache distribuisce l'accesso ai server applicazioni Tomcat,
- Server delle applicazioni Tomcat, nonché
- Server DB a cui si accede da Tomcats.
Che cosa farei:
- Metti il proxy dietro un primo firewall.
- Metti i server Tomcats e DB dietro un secondo firewall.
In questo caso se il proxy è stato violato, nessuna connessione al DB sarebbe stata possibile almeno.
Tuttavia, cosa è più probabile? Il proxy Apache viene hackerato o il Tomcat?
Se questo fosse per es. un problema di iniezione SQL, in che modo il proxy proteggerà il Tomcat dietro ad esso? Probabilmente no.
La domanda sorge spontanea: oltre a essere distrutto da una verifica che scoprirà che non ci sono affatto firewall, cosa stiamo cercando di proteggere comunque? Nel caso in cui il livello dell'applicazione venga compromesso, posso installare tutti i firewall del mondo. Non ti aiuteranno.
2) Servizi di infrastruttura come syslog, dns, ntp, mail, lo chiami.
I server nelle DMZ potrebbero aver bisogno di questi servizi.
Si potrebbe mettere il server syslog in una propria DMZ (lasciare syslog in da qualsiasi parte ma niente fuori)?
In effetti, per essere sicuri, potresti mettere ogni server nella sua DMZ, ma naturalmente sarebbe di nuovo eccessivo ... E se il server syslog ha bisogno di inviare mail perché genera rapporti sui log che trasporta ?
E il DNS? Beh, non dovresti aver bisogno di DNS interni perché non hai accesso alle risorse interne. Tutto ciò che è necessario accedere a te è possibile utilizzare l'IP o una voce nel file hosts.
E NTP? Si potrebbero fare quelle richieste su Internet ...
Andiamo, cosa ne pensi di queste riflessioni e di quei 2 scenari in particolare?