Sitio personal de Ariel M. Liguori De Gottig

Friday, April 11

Integración Linux/Windows - Parte II.

Finalmente, luego de varios días de trabajo he logrado lo que quería. Como recordarán el problema que tenía era que quería validar un usuario (que estaba en un entorno Linux) con un AD dentro de una estructura PKI Windows. El problema número uno era: La PC no esta en dominio. El problema número dos: El auto-enrollment de win le dará un certificado de maquina valido.

Bueno, aquí vienen las respuestas a todo aquello.
El paso numero uno consistía en seguir unos sencillos pasos, para meter la maquina en dominio use una gran cantidad de elementos:
Kerberos Client,
Samba,
nssswitch,
WinBind.

Los pasos son bastante simples y los pueden encontrar en el Wiki Samba. Recomiendo leer toda la documentacion para no perderse en ningún archivo de configuración.

Bueno como ya dije lo primero es entrar en el dominio, lo cual implica lo siguiente:

stigma@debian/>kinit algunuserdeldomain@domain.LOCAL
Password for algunuserdeldomain@DOMAIN.LOCAL: ******

stigma@debian/>net ads join -U algunuserdeldomain

stigma@debian/>/etc/init.d/samba start
* samba -> start: smbd ... [ ok ]
* samba -> start: nmbd ... [ ok ]
* samba -> start: winbind ... [ ok ]
stigma@debian/> rc-update add samba default
* samba added to runlevel default

// Para chequear.

stigma@debian/>wbinfo -u
user1
user2
...



Listo, estamos en dominio.
Ahora nos vamos al Domain Controller del AD.
deberemos ver nuestro user, y con el administrador de certificados seremos capaces de ver en que grupo entro el user y los cert de maquina y de usuario.
Ahora nuestro Linux esta en dominio y tiene credenciales validas.

Lo que se viene ahora es la configuracion de un FreeRadius, ponerle como Realm (lease Proxy) el IAS,y asignar el mismo a nuestro user. Esa configuracion la dejo en manos de quien quiera probar, no es para nada complicada y se puede hallar toda la información necesaria en Wiki FreeRadius.

Luego de todos estos pasos con un simple intento de validación contra el freeradius seremos redirigidos al IAS el cual comprobara nuestras credenciales contra el AD. Como el certificado de maquina y de usuario es valido el resultado de la transacción sera satisfactorio.

¿Como hago para ver esto desde un sistema de monitoreo?

Muy fácil, simplemente se debe analizar linea a linea el log del radius (en realidad un tail del mismo). El mensaje de validacion correcta que se recibe desde un FreeRadius es: ACCESS-ACCEPT.

En mi caso utilizo este string en un chequeo del sitema Nagios y en caso de recibir este valor el estado de la autenticación es correcto.

Eso es todo, espero les haya servido.
Saludos.



Leer más...

Wednesday, April 9

Perl (Practical Extraction and Report Language).

Seguramente muchos hayan oido hablar de este magnifico lenguaje de programacion. Sus infinitos usos y su claridad y simpleza lo hacen la herramienta esencial en tareas de scripting. No se si Larry Wall se oriento a esto cuando lo ideo pero creo que es necesario reconocerlo y aplaudirlo por ello.

El lenguaje Perl fue creado en 1987 por Larry Wall, y esta orientado a todos tipos de usos (Programacion orientada a objetos, regular, funcional, etc.) es muy simple y eficaz. Sus antecesores serian C, SH, AWK y muchos mas, aunque a mi entender Perl es algo nuevo con mucho viejo.
Personalmente Perl me ha sido de ayuda para encarar muchisimos proyectos en el area de redes, para automatizar tareas y para el procesamiento de textos. Si bien nacio bajo entornos Unix, Perl esta dispuesto a adarse a conocer a todos, si tenes windows podes usar el Active Perl o el Indigo Perl con ellos cubriras casi todas las demandas que se te planteen, ten en cuenta que aun hay muchas librerias que no estan adaptadas, pero para eso siempre alguien puede colaborar.

Pueden encontrar mas info de Perl aquí:

Perl en Wikipedia
Perl.org
CPAN

Proximamente mas informacion acerca de este magnifico lenguaje y tambien algunos proyectos.
Saludos.
Leer más...

Tuesday, April 8

Error en JConsole con Apache-Tomcat 5.5.26

Bueno, los otros dias me encontre con este peculiar error.
Dentro de la red poseemos varios servidores tomcat (v.5.5.26) que brindan diversas aplicaciones. Por tal motivo decidimos emplear el jconsole para monitorear el uso de la memoria, CPU, etc.

El uso del JConsole escondia mas misterios de los que esperaba encontrar.
Primero:
"Supuestamente" con incluir las siguientes lineas en el script del inicio del tomcat (en realidad se modifica el catalina.sh) bastaria:

##########################
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=8004"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.password.file=/usr/java/jmxremote.password"
##########################
JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx512m -server"

pero, la variable $JAVA_OPTS se ejecuta tanto en el inicio de la aplciación como en el shutdown, lo cual resultaba en un error al realizar el shutdown del tomcat (El error se debia a que no se podia asignar nuevamente el port 8004 ya que estaba en uso).

Solucion a este primer problema:
Utilizar la variable $CATALINA_OPTS, el codigo a agregar quedaria asi:

##########################
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=8004"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.password.file=/usr/java/jmxremote.password"
##########################
JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx512m -server"


Listo! tenemos el Jconsole funcionando!!!...

"Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException"

Bueno despues de buscar un poco la respuesta a este caso esta aca: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6432683 y se soluciona con la instalacion de JDK 6 b53.

Saludos.
Leer más...

Monday, April 7

Integración Linux/Windows - Parte I.

Buenas, volvi pronto.
Resulta que stoy trabajando en la integracion de sistemas de seguridad Linux a MS Windows. El problema es el siguiente:
Se posee un sitema de monitoreo que debe emular la accion de un usuario al intentar validarse via certificado contra un IAS (El cual se conecta contra un Active Directory Server).

Todo empezó bastante bien, es más creía que iba a funcionar sin pensar demasiado. Lamentablemente no es asi. El problema radica en que el equipo que posee el soft de monitoreo es un Linux, y bien, ¿que tiene eso de malo?... nada, pero todo en realidad. Al trabajar sobre una estructura PKI basada en AD de Windows, el equipo deberia estar dentro del dominio, y como se pueden dar cuenta no es el caso, pero.. ¿que implica eso?
En principio implica que el certificado que le voy asignar (el cual debe estar definido como valido tanto en el IAS como en el AD) es un certificado para maquinas windows, y la PC al no estar en dominio no lo podra "enrolar" adecuadamente, resultando en un trabajo en vano y fallido.
Aún no encuentro la solucion a este problema de integracion Linux / Windows, pero en cuanto tenga alguna novedad se las hare saber.

Slds.,


Leer más...

El inicio.

Bueno, despues de un arduo trabajo se puede decir que el blog / mini pagina personal esta listo para salir a la web. Si bien aun hay muchas cosas por mejorar y agregar
esta casi listo, y pienso poner en él muchas informacion acerca de lo que todos ya sabemos.
Slds., Leer más...