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/