OpenLDAP – Politicas de usuario, replicacion multimaster, self password change

Hace poco tuve que armar un servidor OpenLDAP sobre TLS, con replicación multimaster

politicas de password, vecimientos, avisos, chequeos de dificultad de password y su historico  etc

Hay soluciones bastante caras y con algunas cosas que no necesitaba como el Red Hat Directory Server

y como por la red no encontre tutoriales muy intuitivos y varios casos de replicacion y problemas con las ppolicies

ademas inlcui una pagina que arme para que cada usuario se cambie su propia password antes de vencer, y un script

para que chequee los vencimientos de passwords y envie por mail alertas de por ejemplo,

su password vence en XX dias XX horas

aca subi mis notas que dia a dia las voy a ir completando

https://cayu.com.ar/wiki/doku.php?id=notas:openldap

Tcp Window Scaling Problem

No se si alguno se topo con esto,
pero en un lugar no daba pie con nada con unos sitios que el proxy no me respondia, es mas me figuraba como paquete perdido en el volcado del tcpdump visto desde el wireshark, y me puse a mirar en el router-firewall, y todo andaba bien, conecte una laptop directo y funcaba, despues probe de casualidad una maquina con el kernel 2.4 y me
puse a googlear

lei en un foro
http://www.psicofxp.com/forums/gnu-linux.50/599237-sitios-webs-no-accesibles-gnu-linux-3.html
http://elforux.org/index.php?topic=1095.5;wap2
y funco de una y cuando tuve tiempo me puse buscar mas como para tratar de entender
me tope con una nota de un blogger
http://ospatia.blogspot.com/2007/08/problemas-de-red-en-linux.html
y me puse leer este articulo, (la verdad no tuve mucho tiempo de analizarlo pero con tiempo)
http://lwn.net/Articles/92727/
y en wikipedia
http://es.wikipedia.org/wiki/Transmission_Control_Protocol#Escalado_de_ventana

y asi quedo

# cat /proc/sys/net/ipv4/tcp_window_scaling

1
# echo 0 > /proc/sys/net/ipv4/tcp_window_scaling

no era un super problema pero como no lo habia visto en otro lado lo posteo por las dudas que alguien se tope con lo mismo :p

Agregando modulo E1000E statico al kernel 2.4

Hace unos dias tuve que compilar un modulo estatico para el kernel 2.4, en este caso el driver de las placas Intel E1000E que para el 2.4 viene como un paquete externo y no se proveen parches para su compilacion statica, o sea solo como modulo, aqui adjunto mi Makefile mi Config.in y el directorio con el source

https://cayu.com.ar/files/kernel-e1000e-static-2.4.tgz

Espero que sea de utilidad para alguien 🙂

Resumen generico de instalacion de Nagios

Notas de instalación de Nagios: es un pequeño resumen que arme para el que quiera comenzar con Nagios

https://cayu.com.ar/files/manuales-nagios.pdf

Tips

Autenticación con clave pública/privada (RSA)

Algunos tips interensantes, ej
Ej pares de claves ssh para no tener que poner el password por cada sesion, si no utilizar llaves

Ejecutar

$ ssh-keygen -t rsa

Con este comando se genera el par de claves publica/privada, esto generara en el path $HOME/.ssh/ los archivos: id_rsa (clave privada) y id_rsa.pub (clave pública). El archivo id_rsa.pub debe publicarse
incluirse en el archivo $HOME/.ssh/authorized_keys del sistema remoto.

$ scp .ssh/id_rsa.pub host_remoto:$HOME/

Luego, en el equipo remoto

$ mkdir .ssh (por si no estuviera generado)
$ cat id_dsa.pub >> ~/.ssh/authorized_keys (agrega esta clave pública al archivo de claves públicas autorizadas en el directorio .ssh)

Luego setear permisos

$ chmod 755 ~
$ chmod 700 ~/.ssh
$ chmod 644 ~/.ssh/authorized_keys

Luego si queremos una conexion ssh reverso

ssh -nN -R 1234:localhost:22 cayu@cayu.com.ar

o sea si estamos dentro de un lugar donde la entrada SSH esta denegada pero si la salida, podemos dejar una conexion abierta para entrar desde afuera

ssh -p 1234 locahost

Ej si estamos detras de un proxy

aremos un apt-get install corkscrew

en nuestro ssh_config pondremos,

ProxyCommand /usr/bin/corkscrew proxy.com.ar 3128 %h %p

aca un link de la lista de correo de lanux de como compartir una conexion SSH http://www.lanux.org.ar/pipermail/lista/2007-December/004851.html

otro link interesante http://www.malditainternet.com/Web_Squid_SSH

comparacion de ejemplos de comandos debian y SuSE
En Debian
sudo update-rc.d -f nombre_servicio remove

sudo update-rc.d nombre_servicio

En SuSE

sudo insserv -r /etc/init.d/nombre_servicio

sudo insserv -d /etc/init.d/nombre_servicio

http://www.forosuse.org/forosuse/archive/index.php/t-5058.html

Son tips interesantes que me ayudan en mi trabajo diario y los uso comunmente 🙂

Provisioning con Xen

Bueno, desde principio de mes que vengo jugando con Xen, probando y rompiendo cosas, jaja y luego eso va a quedar en el entorno de produccion de Iplan, mm algo asi como un servidor de 8 procesadores a 64 bits con 16 GB de Ram y 1 TeraByte de almacenamiento en Raid5 con 6 discos de 250GB. El servidor que estoy usando de pruebas solo tiene 1GB de ram creo y 60Gb o 70GB de disco :S nada que ver jaja, es una linda maquina la de produccion, es un servidor Dell y tiene DRAC jaja asi que puedo ver el booteo y todo remotamente.

Primero la onda era compilar, instalar y dejar corriendo Xen, luego mirarlo exaustivamente y explorar el codigo fuente hasta entender algunas cosas internas.

Luego hacer provisioning, arme algunos scripts que anduvieron pero luego Diegows armo unos posta de verdad con getopt y demas cosas bastante copadas, ya que el tiene mas experiencia en scripting quedo mucho mejor 😀

La onda del script mio seria:

./create-vm.sh id_cliente template nombre_host ip password espacio filesystem
./remove-vm.sh id_cliente nombre_host

Bueno y Diegows lo dejo bien con parametros -h hostname, separo fuciones, un archivo de configuracion etc, bien como deberia ser jaja.

Luego de hacer andar el Xen y demas, y tener los scripts de provisioning, habia que tener una interfaz web o algo para los que van a administrar el server puedan subir y bajar las maquinas virtuales etc jeje y ahi empece a probar cosas locas como Enomalism, que es un administrador web que esta hecho en python y funciona con LDAP.

Conclusion de Enomalism: mmm la verdad no me gusto deja mucho que desear, es bastante complicado programarle plugins, usa los templates kid :S y bue la version libre tienes ciertas limitaciones por ejemplo el soporte SOAP esta en la version paga y demas, las terminales SSH no andan de todo bien que digamos ejem en fin, sin contar que no me gustan python, aunque ahora estoy programando en python jaja mas adelante cuento.

Usa demasiado el LDAP medio para cosas que son al pedo, osea para cosas en las que habia que utilizar un MySQL u otra BD ej para agregar una maquina virtual a Enomalism hay que agregar lo siguiente en el LDAP

dn: cn={mi-imagen},ou=Images,dc=enomalism,dc=com
cn: {mi-imagen}
objectClass: top
objectClass: device
objectClass: enomalism-domu-image
enomalism-dom-adminusers: uid=admin,ou=users,dc=enomalism,dc=com
url: /opt/enomalism/vmimages/{mi-imagen}.xvm

El soporte de configuracion y el redimensionamiendo de disco realmente no funca al igual que los permisos de grupos y usuarios, configuracion VNC, el soporte para LVM practicamente no existe, o sea esta preparado para discos virtuales en archivos tipo loop y demas.

Ademas de eso tambien probe Xenter se basa en un programa client.py que manda datos a un mysql y luego el PHP los interpreta y dibuja una tabla con los servidores corriendo y su status. Tiene un pequeño problema, hace una especie de ereg o foreach diciendolo a lo bruto o a groso modo para entenderlo a simple manera jaja donde lista las maquinas que hay en la salida de «xm list» medio al divino boton, para eso por que no dejar de usar python y usar la funcion system de PHP, o hacerlo todo en Python o todo en PHP y usar el SOAP de Xen, que es con lo que estuve jugando hoy y que no se porque extraña razon no funca, ya que habian problemas ultimamente en la red de la empresa :p

Despues probe dtc-xen m creo que la url es gplhost.com o algo asi no recuerdo bien, baje la version del CVS mm pero en el Makefile habia un rm -rf / o algo asi que me empezo a reventar el server, y me di cuenta recien cuando hice un ps ax :S no saben como transpire ese momento jaja y bue ahi descarte ese script o escript jaja como le digan por que la verdad hace desastre :p asi que sin comentarios para este script. Luego de eso hubo que hacer un apt-get –reinstall install a todos los paquetes que estaban por que como lo agarre a tiempo solo borro y /etc /var , igual eso fue un desastre que tomo como 30 minutos de carga operativa mas :s mierda 30 minutosss valiosos !!! de vida tomo recomponer eso.

Ah y tambien probe Argos, pero no me acuerdo bien que era lo que no andaba, estaba bueno como estaba armado, pero es medio al pedo como dije antes con todosss los demas clientes armar un daemon y un cliente para a su vez ese daemon que comunique con el daemon xend, como que es medio redundante la cosa no?.

Y bue con lo que estoy ahora es armando un script en python que lista las VM que hay en la salida de xm list, y ustedes diran si el boludo dijo por que no usar un SOAP en vez de hace xm list, y bue le cuento habia tanto lio con la red y no se que mas y el SOAP por tcp no anduvo no se por que, solo andaba por sockets unix o sea sin autenticacion y desde la maquina local y bue dije para eso lo hago asi a lo «atado con alambre» sacando la salida por comandos y ya ta jaja, lo que hace el script saca el consumo de CPU y genera un grafico con rrdtool, igual todavia falta bastante por hacer, y hay que hacer un script que muestre la memoria consumida y demas.

Comentario personal si tenes que hacer provisioning o lo que sea con Xen, las interfazes web libres todavian dejan mucho que desear mejor aprendete el SOAP de Xen y perderas menos tiempo, y si vas a usar una interfaz de usuario Xenman que la probe y me olvide de comentarla, funciona con gtk y es un script en pygtk creo o algo asi no le di mucha bola, lo que no me gusta es que todas las interfazes incluyendo esta quieren incluir provisioning o sea crearte las VM y demas cosas que deberia hacer uno mismo y no esta interfaz o sea las interfacez solo deben ser para administrar los recursos no intentar crearlos o algo por el estilo, las VM se las tiene que crear uno mismo y saber que tienen, o crearte un script que lo hagas de cero y te lo conozcas de «P» a «PA» y sepas exactamente lo que hace, asi que por ahora las interfacez de Xen y todas esas cosas tan muy verdes para produccion, ah y me olvidaba hoy Diegows puso a andar el VNC pero no solo para maquinas full virtualizadas si no para maquinas paravirtualizadas tambien, osea se puede ver la consola linux paravirtualizada con el booteo y todo por VNC jaja muy bueno.

Otro contra para Xen es la documentacion :p jaj no hay casi nada por eso precisamente fue muy divertido Xen ya que para aprender tuve que hacer como cuando era chico y tenia 12 años y miraba todos los sources de lo que me bajaba y compilaba a mano horas y horas en mi slackware 7 jaja, ya que ahora con tanta documentacion foros y listas de correo la gente se malacostumbra y cree que le tiene que preguntas abolutamente todo a todo el mundo y peor aun cree que le tienen que dar una respuesta.

Bueno solo son mis humildes palabras, los comentarios y experiencias seran bienvenidas.