lunes, noviembre 29, 2004

Secure Client y el NAT

He estado teniendo algunos problemas con el uso del SecureRemote / SecureClient que utiliza Checkpoint para crear VPN. En principio, el protocolo que utiliza, ipsec no permite su uso en situaciones donde exista NAT. Sin embargo, hay trabajos en el IETF para permitir su uso en situaciones donde exista NAT. Dicha especificación es la NAT-T, RFC 3193 y draft-02 de dicha especificación. El cliente L2PT de Microsoft (actualizado) las soporta.

Checkpoint ha implementado para evitar las limitaciones del NAT dos mecanismos: el uso de encapsulación sobre UDP, es decir meter IPSEC dentro de UDP en vez de usar los tipos de protocolos IP 50 (ESP) e IP 51 (AH). Esto puede configurarse en el Firewall-1 sobre las opciones de la gateway en la parte de Remote Access, activando la opción Support NAT traversal mechachanish (UDP encapsulation), seleccionando un puerto para el mismo (por defecto 2746).

Si existen problemas de fragmentación en el intercambio de claves, puede activarse el soporte de IKE sobre TCP, en las propiedades globales del firewall.

Por último un par de enlaces sobre el tema:

jueves, noviembre 25, 2004

Algunas notas de estilo para programar en C

Ojeando osnews, hay un enlace a un artículo en DeveloperWorks (IBM) con un pequeño manual de buenas prácticas para programar en C.

Para ver otras referencias, se puede consultar la notación húngara - muy usada en los entornos de Microsoft - o los standar para el kernel de Linux, en cualquier fuente del kernel Documentation/CodingStyle, la cual pone a caer de un burro a la notación húngara :)

sábado, noviembre 20, 2004

Entrevistas en ACM Queue

Hay colgados varias entrevistas interesantes con personajes del mundo de la ingeniería informática. He llegado a ellas a través de una referencia a una entrevista a Mike Deliman, ingenierio responsable del sistema operativo que corren los rovers de la nada. Entre otras entrevistas: John Gosling (Sun), Wayne Rosing (Google) o Mario Mazzola (Cisco)

Algunos enlaces sobre LDAP

Llevo algún tiempo pensando en montar un servidor LDAP con OpenLDAP. Mi idea es almacenar en él las libretas de direcciones de los programas de correo que uso, fundamentalmente Microsoft Outlook Mail.app (la aplicación de Mail de Mac OS X) y mutt.

OpenLDAP me da el servicio de LDAP de forma segura y usando SSL - al menos Microsoft Outlook y Mail.app lo soportan sin problemas -

A continuación pongo una recopilación de enlaces con lo que estoy leyendo sobre el tema:

  • Tutorial en YoLinux sobre la instalación y configuración de OpenLDAP.
  • Introducción a LDAP en O'Reilly Network.
  • Script para exportar a formato .ldif la libreta de contactos del Outlook.
  • Construyendo una libreta de direcciones con ayuda de LDAP.

martes, noviembre 09, 2004

Componentes que no debe de usarse en IIS

Llevo un tiempo buscando un problema con un IIS que decidia colgarse cada dos o tres días, sin dejar rastro alguno. Lo peor es que no había una traza clara de la causa que lo producía. Los volcados que había recogido hasta entonces (con utilidades como adplus) no llegaban a nada claro.

Para poder buscar el fallo de manera más sencilla:

  • Desactiva el FailFast de COM. Con esto conseguimos que en caso de casque de un componente, la excepción sea atrapada por el debugger.
  • Aislar la web que falla. Esto hace que se ejecute como un proceso independiente al cual podemos conectarnos con el debugger.
  • Desactivar el Enable Debug Excepcion Caching en las propiedades del sitio del CMS.

Tras efectuar estos pasos, resulta que todo acaba en una violación general de protección, porque a una función, WaitForMultipleObjects, se está pasando handles inválidos. Hasta aquí no dice mucho. Sin embargo, si se observa una traza de pila y los módulos cargados por el IIS en dicho proceso, me encuentro con un viejo y problemático conocido: wininet.

Este módulo nunca debe de ser cargado por el IIS. Simplemente no está soportado. De ahí a llegar al módulo que lo estaba usando fue relativamente fácil, puesto que en las trazas de pela que tenía hacia referencia a un software que usaba: el proveedor de OLE DB para Sharepoint o Exchange, msdaipp, el cual se utiliza para acceder a funcionalidades Webdav.