Concorda con Jeff Ferland, i server di database dovrebbero essere da soli: dovresti avere una rete pulita per la replica e l'amp; di backup.
Perdona la mia arte ASCII, una rapida panoramica di un ideale ragionevole:
[internet]
|
outer-firewall--- [proxy-zone]
|
----- [app-zone]
|
inner-firewall
[lan]--/ \-- [database-zone]
- Eseguire un proxy inverso, Apache + mod_security / varnish / nginx / WAF / qualunque, nella zona del proxy. Aggiungi bilanciamento del carico / failover qui se necessario. Anche server proxy / relay per le connessioni in uscita (DNS, SMTP, proxy HTTP), se necessario.
- Quando la logica dell'applicazione viene eseguita su un server Web (Java / PHP / ASP), preferisco chiamarlo un server applicazioni.
- Quando è necessario ridimensionare, è possibile ridimensionare orizzontalmente, il bilanciamento del carico lo rende più semplice. Potresti anche considerare la possibilità di replicare il contenuto statico non autenticato sui proxy front-end.
- potresti voler aggiungere una o più zone: IDS, gestione, backup, accesso remoto, proxy in uscita
Stai provando a mitigare, quindi:
- la comunicazione tra zone deve essere limitata al minimo richiesto per scopi di servizio e monitoraggio.
- reverse-proxy accetta connessioni non fidate da internet, può connettersi solo ai servizi sui server delle applicazioni. Se si desidera classificare le zone in base al traffico, è necessario considerare attentamente la terminazione di HTTP e se si desidera creare nuove connessioni HTTPs ai server delle app.
La zona applicativa - accetta le connessioni semi-attendibili dai proxy, può connettersi solo ai database. Puoi fidarti ancora dei tuoi server delle applicazioni quando sai che non stanno parlando direttamente a Internet.
I server di database - accettano le connessioni solo dai server delle applicazioni, l'area del database dovrebbe essere la rete "più pulita"
- considera l'utilizzo di firewall diversi (fornitore / prodotto) per i firewall esterni e interni
- per i servizi in uscita richiesti (DNS, SMTP o patching / aggiornamenti) questi dovrebbero passare attraverso un server distinto (ad esempio sulla zona proxy o zona-proxy in uscita).
- lo stesso vale per le connessioni HTTPS di convalida CC in uscita. (Se sei abbastanza sfortunato da avere una scatola nera fornita dal venditore per la convalida, dovrebbe andare anche su una zona dedicata, IMHO.)
- usa l'indirizzamento IP pubblico solo nella zona proxy, l'indirizzamento privato altrove. Nessun server esterno alla zona proxy deve avere un IP pubblico, NAT o una route predefinita per Internet.
Separare le zone rende più facile il lavoro dell'IDS e la registrazione più efficace.
Se disponi delle risorse, aggiungi una zona di gestione, NIC di gestione separate per ogni server (se possibile, porte protette).
In realtà si potrebbe finire per compattare la "rete ideale" per un singolo firewall e VLAN, ma se si considerano le opzioni ora tenendo conto di quanto sopra, dovrebbe essere più facile migrare in futuro, cioè subito dopo la prossima visita da il tuo auditor PCI-DSS di vicinato amichevole; -)