Configurando Inotes detras de un Proxy
Daniel Recio  Diciembre 1 2011
Daniel Recio  Diciembre 1 2011
Hace poco alguien preguntaba en el foro sobre las posibilidades que existen para montar un proxy inverso que sirviera de frontal web para acceder a nuestro correo de forma segura.

La cosa parecía fácil, montamos un proxy inverso y apuntamos a nuestro servidor Lotus domino que esta en la zona segura

Recuperando algo de información, encontrareis este interesantísimo artículo sobre el tema

https://www.ibm.com/developerworks/web/library/wa-secdomdat/

Básicamente se expone una arquitectura similar a esta, donde tendremos un servidor Proxy en la DMZ y debajo estarán nuestro o nuestros servidores Lotus.
Image:Configurando Inotes detras de un Proxy


En esta primera parte veremos un ejemplo básico que iremos mejorando en otra serie de artículos.



Configuración en la parte Lotus


Con el proxy configurado, ahora viene la parte de configurar el Lotus.

Para ello hemos definido un servidor de LOGIN que hemos llamado en el ejemplo serverauth.miempresa.com y tres servidores de correo.
Vamos a configurar SSO multiservidor para mi dominio MIEMPRESA.COM


Sin Internet sites Habilitado

Abrimos el NAMES.NSF en la vista servidores

Image:Configurando Inotes detras de un Proxy

Ahora crearemos nuestra Clave SSO, que es la cadena que servirá para codificar la cookie que se genere, Esta acción lo que hace es rellenar un campo en el documento de configuración SSO, que se codifica con el ID que estemos usando en ese momento.

Así que ojito, porque igual interesa utilizar un ID genérico que puedan usar nuestros compañeros administradores. Después rellenamos los campos del documento de configuración donde lo mas importante es el dominio, ya que la cookie que genera el Domino es para ese dominio.
Después pondremos los servidores que queremos vincular a esa cookie de autenticación (aquellos que no estén en este campo, pedirían login cuando saltemos de un servidor a otro)

Image:Configurando Inotes detras de un Proxy

Después de crear la configuración SSO, tendremos que modificar los documentos de los servidores afectados en la pestaña Internet Protocols-->Domino Web Engine
Seleccionaremos Multiple Servers (SSO) y la configuracion "LtpaToken" que acabamos de crear (aqui no se ve porque desde un MAC no se puede crear el SSO)

Image:Configurando Inotes detras de un Proxy

Grabamos los documentos, replicamos el names con los servidores modificados y reiniciamos la tarea HTTP en nuestros servidores.

Ahora nuestros servers, cuando pidan login lo haran a traves de un formulario y una vez logados nuestro navegador llevara una cookie "LTPATOKEN" que sera nuestra sesion, y cuando saltemos de un servidor a otro ya no hara falta que nos validemos de nuevo.


Generación de una cookie para saber a que servidor tengo que llevar las peticiones


Existe una plantilla en nuestros servidores (iwaredir.ntf) que básicamente lo que hace es pedirnos login y una vez logados llevarnos a nuestro servidor y buzón de correo.
Para esta configuración mas o menos compleja con un proxy, necesitamos que esta base de datos además nos de una cookie con el nombre de nuestro servidor de correo (aqui lo he puesto facil, pero si no queremos dar pistas podemos hacer una lista de nombres que correspondan con los host sin publicar nombres de servidores)

Abrimos iwaredir con el cliente de desarrollo y vamos al formulario "AUTOLOGIN" que es el encargado de toda la operación.
Para no enguarrinar lo que hay podemos crear un campo oculto que llamaremos PROXY que contenga la formula correspondiente y que básicamente resuelva el servidor de correo y lo ponga en la cookie "SERVER"
Image:Configurando Inotes detras de un Proxy

este campo genera una cookie como la siguiente

Image:Configurando Inotes detras de un Proxy



Configuración en la parte PROXY


Supongamos que publicamos en las DNS una entrada para el correo de nuestra empresa tipo http://correo.miempresa.com y hacemos que esta entrada apunte a nuestro proxy inverso.

en nuestro proxy tendremos que poner una configuración parecida a esta para que dependiendo del valor de la cookie que hemos creado nos lleve internamente las peticiones a uno u otro servidor

# Esta linea indica que cualquier peticion que no tenga la cookie "server" la llevo a mi servidor de autenticacion


RewriteCond %{HTTP_COOKIE} !^.*server.*$
RewriteRule  /(.*) http://serverauth.miempresa.com [P]


# Aqui buscamos las cookies que nos dicen en que servidor esta mi correo
RewriteCond %{HTTP:Cookie} server=EslugServer.* [NC]
RewriteCond %{REQUEST_URI} ^/(.*).nsf(.*)
RewriteRule /(.*) http://mailhost1.miempresa.com/$1 [P]

RewriteCond %{HTTP:Cookie} .*server=mailEslug1.* [NC]
RewriteCond %{REQUEST_URI} ^/(.*).nsf(.*)
RewriteRule /(.*) http://mailhost2.miempresa.com/$1 [P]

RewriteCond %{HTTP:Cookie} .*server=mailEslug2.* [NC]
RewriteCond %{REQUEST_URI} ^/(.*).nsf(.*)
RewriteRule /(.*) http://mailhost3.miempresa.com/$1 [P]

ProxyPassReverse / http://serverauth.miempresa.com/

ProxyPassReverse / http://mailhost1.miempresa.com/
ProxyPassReverse / http://mailhost2.miempresa.com/
ProxyPassReverse / http://mailhost3.miempresa.com/


Con esta configuracion nuestro proxy buscara la cookie llamada "server" en nuestra peticion.
Si no tenemos esta cookie nos llevara al servidor SERVERAUTH.MIEMPRESA.COM internamente, si la llevamos nos llevara al servidor que corresponda segun el valor de la cookie.

InotesAdministrator

Configurando Inotes detras de un Proxy