Qual è la comunicazione più sicura tra firewall e DMZ

-1

Ho 2 macchine virtuali. (Vmware esxi 6)

Sono entrambi opensuse 42.3 (tumbleweed)

  1. Firewall (solo iptables, ipset, dhcpd, dns)
  2. mail / web server. (Apache, colombaia, postfix)

Il server web non può comunicare con il firewall, tranne che il traffico lo attraversa per raggiungere il server di posta / web.

Il firewall ha un elenco di blocchi di indirizzi IP a cui viene automaticamente aggiunto. Tuttavia, è relativamente semplice e non decodifica SMTP, IMAP, HTTP o HTTPS. Il secondo ha le sue protezioni per i servizi di cui sopra e ha una sua lista di blocchi.

Ora supponiamo che qualcuno comprenda il mio server di posta che potrebbe cancellare facilmente la mia block list, e così via, ma solo dal server di posta.

Come faccio a mandare mail / web server ai suoi block list al firewall senza interrompere la separazione tra DMZ e tutto il resto (o almeno, nella misura più piccola possibile) in tempo reale?

Non voglio utilizzare un servizio esterno, come caricare su cloud, poiché potrebbero DDOS me e l'elenco sarebbe accessibile.

Ho pensato di configurare una terza VM come intermediario (privato, ma sottorete condivise, schede di rete separate), ma se compromettono il web server, cosa impedisce loro di entrare nella macchina intermedia e poi il firewall. Se l'ho fatto, che tipo di protezione posso implementare per verificare che un hacker non stia inviando i propri dati attraverso il mio canale (overflow del buffer o attacco etc) invece della sola lista di blocco.

come si determina quale IP deve essere bloccato:

In generale, qualsiasi comportamento scorretto. Esempio tutte le chiamate di errore Apache sono state associate a uno script php. Lo script php registra i dettagli su mysql. Alla fine, avrò a disposizione un sistema di punteggio pieno. Ogni cosa invalida che fai aumenta il tuo punteggio, e certe cose hanno punteggi più alti.

Per quanto tempo? Soglia basata, ma alla fine per sempre. Ottieni 100 punti o qualsiasi addio per sempre.

Come si aggiungono le regole? ipset aggiunge bad_guys 1.2.3.4

se mi sento generoso, aggiungo il timeout ###### a quello.

    
posta cybernard 15.06.2017 - 20:00
fonte

1 risposta

0

Sebbene i dettagli completi e le possibilità della tua architettura non siano chiari, ti suggerirei quanto segue:

  • Un servizio sul firewall dovrebbe chiedere al server di posta / web sugli aggiornamenti dei blocchi IP. Ciò significa che nessuna comunicazione viene avviata al firewall, ma qualsiasi comunicazione relativa alle regole del firewall viene avviata dal firewall solo per ridurre la superficie di attacco. Il sistema di posta / web dovrebbe ovviamente accettare solo connessioni al servizio IP di blocco dal firewall.
  • Il protocollo per condividere gli indirizzi IP bloccati dovrebbe essere il più semplice possibile, in modo che possa essere implementato con un minimo di codice che potrebbe anche essere facilmente verificato. Ciò significa anche che JSON, XML, YAML o qualsiasi altro formato di fantasia sono disponibili non dovrebbero essere utilizzati poiché non sono minimali per questo scopo e dipendono anche dalle librerie che si aggiungono alla superficie di attacco. È preferibile inoltre assegnare l'implementazione a linguaggi di livello superiore anziché C / C ++ poiché ciò rende il codice più piccolo e quindi più semplice da controllare e il secondo rende improbabile il tipico buffer overflow. Ovviamente il sistema di posta / web non dovrebbe ancora essere considerato attendibile, quindi ogni input deve essere rigorosamente verificato che sia conforme al formato previsto.
  • Nel caso in cui le regole di blocco debbano essere aggiornate con privilegi amministrativi, si consiglia di avere una separazione dei privilegi, cioè processi diversi con differenti autorizzazioni per comunicare con il server di posta / web e per aggiornare le regole di blocco. Ogni processo dovrebbe prendere solo i privilegi minimi necessari usando chroot, sandbox, container, seccomp , impegno o tecnologie simili.

Nota che questi suggerimenti potrebbero essere considerati eccessivi per il tuo scopo specifico. In un mondo perfetto in cui non esistono errori, non è necessario implementare tutto questo perché, ad esempio, la separazione dei privilegi o le sandbox sono principalmente necessarie per limitare l'impatto di un attacco nel caso in cui l'attaccante possa sfruttare un bug. Tuttavia, raccomando di implementare almeno una parte di questi, vale a dire di non avere un servizio altamente privilegiato in esecuzione sul firewall che parla un protocollo complesso per il sistema di posta / web ed esegue comandi di sistema basati su input apparentemente attendibili.

    
risposta data 15.06.2017 - 20:49
fonte

Leggi altre domande sui tag