Apache:Protegendo Servidores internos através do Apache

From Wiki

Neste artigo vamos configurar o servidor apache de maneira que ele disponibilize os servidores internos para a Internet.

As vantagens desta abordagem são:

  1. Compartilhamento de IP - quando utilizamos um serviço de ip válido, muitas vezes o nosso provedor disponibiliza apenas um ip válido. Neste caso, normalmente, mudamos a porta do servidor, ou temos que negociar mais ip´s válidos.
  2. Segurança - Ao colocar um servidor apache na frente de outros servidores, podemos melhorar a segurança em um ponto único, criando regras somente no servidor externo, o que facilita a manutenção e a rastreabilidade (análise de logs).

Procedimento

A idéia é utilizarmos um servidor externo como um proxy para nossos servidores internos, desta maneira abrimos este servidor Externo para a internet, e os demais ficam protegidos na nossa rede interna ou DMZ.

Configuração do DNS externo

Ao configurar o seu DNS externo, crie várias entradas para o ip do servidor ou firewall.

Exemplo: Neste caso estamos utilizando as entradas do tipo CNAME (apelido) todas apontando para o ip externo do fiewall1

 firewall1         A                 200.200.200.200
 www               CNAME             firewall1
 webmail           CNAME             firewall1
 sip               CNAME             firewall1
 sametime          CNAME             firewall1
 java1             CNAME             firewall1

Configuração o arquivo hosts

Edite o arquivo /etc/hosts e adicione os ips dos servidores internos

127.0.0.1       localhost.localdomain   localhost
::1     localhost6.localdomain6 localhost6
192.168.1.10    www.empresax.com.br        
192.168.1.11    webmail.empresax.com.br    
192.168.1.12    sip.empresax.com.br        
192.168.1.13    sametime.empresax.com.br  
192.168.1.14    java1.empresax.com.br


Configurando o Apache

É necessário o Apache tenha o módulo mod_proxy, configurado. Como utilizo o CentOS/Redhat este módulo vem configurado por padrão

Vá para o diretório /etc/httpd/conf.d e crie o arquivo empresax.conf, com o seguinte conteúdo:

<VirtualHost *>
 ServerName firewall1.empresax.com.br
 ServerAlias *.firewall1.empresax.com.br
 Documentroot /var/www/html
</VirtualHost>

<VirtualHost *>
 ServerName www.empresax.com.br
 ServerAlias *.www.empresax.com.br
 RewriteEngine On
 RewriteRule ^/(.*) \http://www.empresax.com.br/$1 [P]
</VirtualHost>

<VirtualHost *>
 ServerName webmail.empresax.com.br
 ServerAlias *.webmail.empresax.com.br
 RewriteEngine On
 RewriteRule ^/(.*) \http://webmail.empresax.com.br/$1 [P]
</VirtualHost>

<VirtualHost *>
 ServerName sip.empresax.com.br
 ServerAlias *.sip.empresax.com.br
 RewriteEngine On
 RewriteRule ^/(.*) \http://sip.empresax.com.br/$1 [P]
</VirtualHost>

<VirtualHost *>
 ServerName sametime.empresax.com.br
 ServerAlias *.sametime.empresax.com.br
 RewriteEngine On
 RewriteRule ^/(.*) \http://sametime.empresax.com.br/$1 [P]
</VirtualHost>

<VirtualHost *>
 ServerName java1.empresax.com.br
 ServerAlias *.java11.empresax.com.br
 RewriteEngine On
 RewriteRule ^/(.*) \http://java1.empresax.com.br:8080/$1 [P]
</VirtualHost>

Salve e feche o arquivo.

Reiniciando o apache e testando

Reinicie o servidor apache com o comando

service httpd restart


Abra o browser e teste.

Você pode então melhorar a segurança neste servidor através de atualizações do Apache, configurações e análise de logs de forma centralizada.


Ver também