Depois de algum tempo de horas de sono perdidas procurando implementar o 
APACHE 2 de forma "reversa", eis que decido partilhar a minha experiência na implementação do mesmo de forma segura e funcional. O mesmo artigo é uma miscelânea de várias compilações e alguma experiência pessoal na implementação do mesmo. 
Nele procurarei demonstrar como podemos instalar o Reverse-Proxy com módulo de segurança (
ModSecurity).  O cenário usado é o seguinte, temos um servidor em Windows Exchange na DMZ (ou Rede-Interna) que disponibiliza o serviço de Webmail. Como é sabido o Windows possui uma lenda de segurança que não vamos aqui detalhar e por esses motivos recorremos ao bom amigo APACHE com o ModSecurity, que vai responder a todos os pedidos direcionados ao Exchange.
Instalação:
Baixe os pacotes do Apache e o ModSecurity:
Antes de começarmos a compilar vamos instalar os seguintes "packages" de forma a não existirem erros futuros:
# apt-get install apache2-threaded-dev
# apt-get libxml2
Compilando:
Apache:
# tar zxvf  httpd-2.2.6.tar.gz
# cd httpd-2.2.6
# ./configure
# make
# make install
Agora vamos instalar o ModSecurity: 
# tar zxvf modsecurity-apache_2.1.4.tar.gz
# cd modsecurity
# cd apache2
# /usr/local/apache2/bin/apxs  -cia modsecurity.c  
Chegado aqui temos todos os pacotes desejados instalados na 
Linux Box, restando apenas as configurações do httpd.conf. Então de seguida iremos editar o arquivo 
httpd.conf de forma a indicar os módulos a serem carregados pelo APACHE. Aqui é importante sublinhar que se devem ativar também os Sub-Módulos visto esta versão ser DSO.
# cd  /usr/local/apache2/conf
# vi httpd.conf
Inserir as seguintes linhas:
LoadFile                   /usr/lib/libxml2.so
LoadModule headers_module   /usr/local/apache2/modules/mod_headers.so
LoadModule rewrite_module    /usr/local/apache2/modules/mod_rewrite.so
LoadModule ssl_module          /usr/local/apache2/modules/mod_ssl.so
LoadModule include_module   /usr/local/apache2/modules/mod_include.so
LoadModule proxy_module       /usr/local/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/local/apache2/modules/mod_proxy_http.so
LoadModule proxy_connect_module /usr/local/apache2/modules/mod_proxy_connect.so
LoadModule unique_id_module /usr/local/apache2/modules/mod_unique_id.so
LoadModule security2_module     /usr/local/apache2/modules/mod_security2.so
Salvar e sair. De seguida deve-se gerar as chaves que vão possibilitar a conexão de forma segura (HTTPS) para fora:
# mkdir /etc/ssl/apache2 
# cd /etc/ssl/apache2
# openssl req -new > new.cert.csr
# openssl rsa -in privkey.pem -out new.cert.key
# openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 1800
# cp new.cert.cert server.crt 
# cp new.cert.key server.key
Configuração:
Esta parte que se segue poderia já ter sido feita quando editamos os módulos, mas o meu objectivo aqui é detalhar os passos de forma que a compreensão seja mais fácil e saiba-se exatamente o que se está a fazer. Então voltamos ao httpd.conf de forma a publicarmos o Exchange e carregar as regras básicas do ModSecurity:
# vi httpd.conf
<VirtualHost 1.2.3.4:80>
        ServerName webmail.example.org
        DocumentRoot /var/www/html/webmail
        RedirectMatch ^/(index.html?)$ https://webmail.example.org/exchange/
        RedirectMatch ^/exchange$ https://webmail.example.org/exchange/
</VirtualHost>
<VirtualHost 1.2.3.4:443>
        
        ProxyRequests Off
        SSLProxyEngine On
        DocumentRoot /var/www/html/webmail
        RequestHeader set Front-End-Https "On"
        ServerName mail
        SSLEngine On
        SSLCertificateFile /etc/ssl/apache2/server.crt 
        SSLCertificateKeyFile /etc/ssl/apache2/server.key   
        ProxyPass /exchange/ http://mail.example.org/exchange/
        ProxyPassReverse /exchange/ http://mail.example.org/exchange/
        ProxyPass /exchweb/ http://mail.example.org/exchweb/
        ProxyPassReverse /exchweb/ http://mail.example.org/exchweb/
        ProxyPass /public/ http://mail.example.org/public/
        ProxyPassReverse /public/ http://mail.example.org/public/
        ProxyPreserveHost On
</VirtualHost>
E agora no fim do nosso httpd.conf vamos inserir algumas regras do nosso ModSecurity:
<IfModule mod_security.c>
    # Only inspect dynamic requests
    # (YOU MUST TEST TO MAKE SURE IT WORKS AS EXPECTED)
    SecFilterEngine DynamicOnly
    # Reject requests with status 403
    SecFilterDefaultAction "deny,log,status:403"
    # Some sane defaults
    SecFilterScanPOST On
    SecFilterCheckURLEncoding On
    SecFilterCheckCookieFormat On
    SecFilterCheckUnicodeEncoding Off
    # Accept almost all byte values
    SecFilterForceByteRange 1 255
    # Server masking is optional
    SecServerSignature "GNU Tomcat"
    SecUploadDir /tmp
    SecUploadKeepFiles Off
    # Only record the interesting stuff
    SecAuditEngine RelevantOnly
    SecAuditLog logs/audit_log
    # You normally won't need debug logging
    SecFilterDebugLevel 0
    SecFilterDebugLog logs/modsec_debug_log
    # Only accept request encodings we know how to handle
    # we exclude GET requests from this because some (automated)
    # clients supply "text/html" as Content-Type
    SecFilterSelective REQUEST_METHOD "!^GET$" chain
    SecFilterSelective HTTP_Content-Type "!(^$|^application/x-www-form-urlencoded$|^multipart/form-data)"
    # Require Content-Length to be provided with
    # every POST request
    SecFilterSelective REQUEST_METHOD "^POST$" chain
    SecFilterSelective HTTP_Content-Length "^$"
    # Don't accept transfer encodings we know we don't handle
    # (and you don't need it anyway)
    SecFilterSelective HTTP_Transfer-Encoding "!^$"
</IfModule>
Salvar e sair. Agora que a instalação e a Configuração está terminada deve-se arrancar o serviço:
# /usr/local/apache2/bin/httpd -k start
Verificar se o mesmo está correndo:
# ps aux | grep apache2
Chegado aqui tudo deverá já estar correndo conforme desejado e só me resta agradecer a comunidade Open Source pela força na impulsão do mundo livre, aos que me ajudaram nestes Puzzles, amigos e claro sem me esquecer SDA (pela inspiração) e a todos os leitores.
Um abraço!