O ponto de uma DMZ é estabelecer um perímetro de segurança através do qual somente tráfego conhecido e desejado possa fluir. Isso pode ser feito com um dispositivo de firewall de hardware (um Cisco ASA, etc) ou com um firewall de software (Linux iptables, OpenBSD pfsense, etc). O objetivo é ter um mecanismo para arbitrar o tráfego e tomar decisões sobre quais fluxos são apropriados.
Fisicamente, a interconexão de uma DMZ à sua conexão com a Internet pode parecer algo como:
{ the internet }----[ Firewall Device ]-----{ LAN }
|
|
{ DMZ }
Normalmente, uma placa de interface de rede física no dispositivo de firewall é dedicada à conexão com cada um desses segmentos (Internet, DMZ e LAN). Isso pode ser feito com VLANs para usar menos NICs físicas, mas você está começando a misturar diferentes preocupações de segurança dentro do mesmo meio físico (e isso geralmente deve ser evitado a menos que você esteja ganhando alguma vantagem específica ao fazer isso).
Assumindo que os usuários do aplicativo acessariam o servidor Apache na porta TCP 80 do "segundo servidor" (que eu chamarei de "servidor web") para usar o aplicativo, eu veria o computador do servidor web sentado em um segmento DMZ com acesso controlado pelo dispositivo de firewall criando a DMZ para:
- Permitir solicitações de IPs e portas de origem arbitrária na Internet para o servidor da Web (porta TCP 80)
- Permitir solicitações de portas TCP arbitrárias no servidor da Web para o servidor de banco de dados Oracle na porta do Oracle TNS (geralmente, porta TCP 1521)
- Permitir solicitações de IPs e portas de origem arbitrária na LAN para a porta SSH no servidor da Web (para administração)
(Supondo que você esteja usando um dispositivo de firewall com estado para arbitrar o acesso à DMZ, não precisará especificamente criar regras para respostas às solicitações acima.)
Esta é uma visão muito simplista, mas comunica a ideia. Você provavelmente desejará deixar o servidor web fazer solicitações de DNS e talvez queira permitir que ele acesse um servidor HTTP ou HTTPS do qual baixar atualizações do sistema operacional. Eu recomendaria strongmente que contra permitisse o acesso de saída arbitrário do servidor web à Internet (porque muitas explorações dependem do computador sendo explorado, sendo capaz de baixar uma carga útil de "segundo estágio"). Se você não precisar de ninguém na Internet para administrar o servidor da Web, não permita o SSH de entrada da Internet. (Se você precisar administrá-lo de fora do local, é melhor conectar-se a uma VPN no segmento da LAN e acessar o servidor da Web a partir da LAN.)