Configuración del módulo ProxyPass de Apache

En éste artículo mostraré cómo hacer que varios servidores web interno pueda ser accedido desde Internet, sin cambiar ninguna de las reglas del firewall ni comprometiendo la seguridad de su red. Veremos como usar el módulo ProxyPass de Apache para lograr esto.

Escenario

Tenemos un servidor instalado con Linux Debian, el cual tiene configurado dos interfaces de redes, una con IP Publica Internacional (200.xx.xxx.46) y la otra con IP Privada Local (192.168.100.1) conectada a la red LAN donde se encuentran otros dos servidores con prestación de servicios web. En uno tenemos el Servidor de Correo con posibilidad de Webmail (192.168.100.2) y en el otro tenemos la Intranet (192.168.100.3)

mainserver = 200.xx.xxx.46 – 192.168.100.1
webmail = 192.168.100.2
intranet = 192.168.100.3

En los DNS públicos están registrado los dominios con la misma IP de mainserver.

webmail.dominio.com     A     200.xx.xxx.46
intranet.dominio.com    A     200.xx.xxx.46

Las peticiones llegarán primero al servidor publico y luego este se encargará mediante el ProxyPass de Apache redireccionar a los servidores locales.

Solución

Activando los módulos proxy proxy_http proxy_connect en el Apache de mainserver, creando un par de registros A en el servidor DNS local o en el propio hosts del servidor y creando los VirtualHost con sus respectivas configuraciones, damos solución al escenario planteado.

Activando los módulos proxy proxy_http proxy_connect

a2enmod proxy proxy_http proxy_connect

Creando y configurando el VirtualHost para webmail en el Apache

nano /etc/apache2/sites-available/webmail.dominio.com

webmail.dominio.com

<VirtualHost *:80>
        ServerName webmail.dominio.com
 
        ServerSignature On
 
        ErrorLog /var/log/apache2/webmail.dominio.com-error.log
 
        LogLevel warn
 
        CustomLog /var/log/apache2/webmail.dominio.com-access.log combined
 
        <location />
            Allow from All
        </location>
 
        ProxyPass / http://webmail.dominio.com/
        ProxyPassReverse / http://webmail.dominio.com/
</VirtualHost>

Creando y configurando el VirtualHost para intranet en el Apache

nano /etc/apache2/sites-available/intranet.dominio.com

intranet.dominio.com

<VirtualHost *:80>
        ServerName intranet.dominio.com
 
        ServerSignature On
 
        ErrorLog /var/log/apache2/intranet.dominio.com-error.log
 
        LogLevel warn
 
        CustomLog /var/log/apache2/intranet.dominio.com-access.log combined
 
        <location />
            Allow from All
        </location>
 
        ProxyPass / http://intranet.dominio.com/
        ProxyPassReverse / http://intranet.dominio.com/
</VirtualHost>

Habilitamos los dos VirtualHost que acabamos de crear

a2ensite webmail.dominio.com
a2ensite intranet.dominio.com

Debemos reiniciar Apache después:

invoke-rc.d apache2 restart

Configurando DNS local ó Hosts de Linux

Evidentemente si en la zona dominio.com del DNS local ó en el Hosts de Linux no tenemos las entradas A de webmail e intranet donde apunten a sus respectivas IP Privada de la red local, de poco servirán los cambios realizados en el Apache.

nano /etc/hosts

Podemos agregar con mucho cuidado.

192.168.100.2     webmail.dominio.com
192.168.100.3     intranet.dominio.com

Post relacionado

Configuración de VirtualHost en Linux Debian con Apache2

Enlaces

Apache: http://httpd.apache.org/