Configuração de Debian+Apache como Proxy Reverso de OWA na DMZ
Se tivermos uma instalação do Exchange e quisermos publicar OWA para o exterior, nunca devemos abrir as portas diretamente para o nosso Exchange, para isso existem proxies localizados na DMZ que nos apresentarão o nosso OWA. Neste caso, vamos montar um Proxy Reverso com DEBIAN e APACHE.
Para isso partimos do pressuposto que temos um debian instalado na nossa DMZ com o porto 443 da WAN a apontar para ele e permitindo a passagem do porto 443 do nosso servidor para o CAS de Exchange da LAN.
Atualizamos o nosso servidor Debian
# apt-get atualização
# apt-get upgrade
Instalámos o Apache
# apt-get install apache2 apache2-mpm-prefork
Ativámos os módulos necessários
# a2enmod proxy
# a2enmod proxy_http
# a2enmod headers
# reescrita do a2enmod
# a2enmod ssl
Reiniciámos o Apache
# /etc/init.d/apache2 reiniciar
Criámos os diretórios para os certificados
# mkdir /etc/apache2/ssl.crt
# mkdir /etc/apache2/ssl.key
Exportámos o certificado do nosso servidor Exchange para pfx. Clicar com o botão direito no certificado e Exportar Certificado.
Damos um caminho e um nome, e colocamos uma senha e introduzimo-lo no nosso Linux com o winscp, por exemplo.
Convertémos o nosso pfx para texto simples
# openssl pkcs12 -in correio.pfx -out correio.txt -nodes
Editámos o ficheiro correio.txt e veremos a RSA PRIVATE KEY e CERTIFICADO.
Guardámo-los independentemente em 2 ficheiro correio.crt e correio.key
Movemos o certificado para o seu diretório
# mv correio.crt /etc/apache2/ssl.crt
Movemos la rsa key a su directorio
# mv correo.key mkdir /etc/apache2/ssl.key
Creamos la carpeta owa, aunque sera ficticia solo para la configuración pero no la usaremos.
# mkdir /var/www/owa
Creamos y editamos el fichero owa
# vim /etc/apache2/sites-available/owa
Introducimos la siguiente configuración para actuar como proxy:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName correo.tundra-it.com
ServerAdmin in**@**************it.com
DocumentRoot /var/www/owa
DirectoryIndex index.htm index.html
RedirectMatch ^/$ https://correo.tundra-it.com/owa
RedirectMatch ^/owa$ https://correo.tundra-it.com/owa
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
ServerName correo.tundra-it.com
ServerAdmin in**@**************it.com
DocumentRoot /var/www/owa
DirectoryIndex index.htm index.html
# Configurar SSL para funcionar com este host
SSLEngine On
SSLProxyEngine On
SSLCertificateFile /etc/apache2/ssl.crt/correo.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/correo.key
# Redirecionar para '/owa’ from '/’
RedirectMatch ^/$ /owa
RewriteEngine On
# Corrigir um problema quando '%’ symbols are in the subject line of OWA email
# (the email subject is used in the web query)
RewriteMap percentsubject int:escape
RewriteCond $1 ^/owa/.*%.*$
RewriteRule (/owa/.*) ${percentsubject:$1} [P]
RequestHeader set Front-End-Https “On”
ProxyRequests Off
ProxyPreserveHost On
ProxyVia On
<Proxy *>
Order deny,allow
Permitir de todos
</Proxy>
#Reverse Proxy para OWA
ProxyPass /owa https://correo.tundra-it.com/owa
ProxyPassReverse /owa https://correo.tundra-it.com/owa
ProxyPass /exchweb https://correo.tundra-it.com/exchweb
ProxyPassReverse /exchweb https://correo.tundra-it.com/exchweb
ProxyPass /public https://correo.tundra-it.com/público
ProxyPassReverse /public https://correo.tundra-it.com/público
ProxyPass /iisadmpwd https://correo.tundra-it.com/IISADMPWD
ProxyPassReverse /iisadmpwd https://correo.tundra-it.com/IISADMPWD
ProxyPass /oma https://correo.tundra-it.com/oma
ProxyPassReverse /oma https://correo.tundra-it.com/oma
ProxyPass /Microsoft-Server-ActiveSync https://correo.tundra-it.com/Microsoft-Server-ActiveSync
ProxyPassReverse /Microsoft-Server-ActiveSync https://correo.tundra-it.com/Microsoft-Server-ActiveSync
ErrorLog /var/log/apache2/mailus-ssl-error_log
CustomLog /var/log/apache2/mailus-ssl-access_log common
</VirtualHost>
Activamos el sitio OWA
# a2ensite owa
Para no permitir el trafico DNS de la DMZ a los DNS de la LAN, introducimos el nombre del sitio local en el archivo hosts
# ECO 192.168.169.231 correo.tundra-it.com >> /etc/hosts
Reiniciamos el Apacahe
# /etc/init.d/apache2 reiniciar
Entramos desde el exterior












































