24 · 06

La culpable, próximamente, fotos dibujadas con luz

10 · 12

Controlando los usuarios y sus grupos. (Open Directory)


Otro script que tengo puesto en el cron desde hace ya un tiempo para evitar meteduras de pata y olvidos varios es el relacionado con la duplicación de usuarios en grupos mutuamente excluyentes.

Evidentemente hay usuarios que están asignados a más de un grupo.

Aquí controlamos el acceso a dispositivos USB y de grabación mediante la política de grupos de usuarios.

Tenemos un grupo para los que están autorizados y otro para lo contrario.

Lo normal es que un mismo usuario no esté en estos dos grupos simultáneamente. Por desconocimiento del lumbreras antes y por olvidos y prisas ahora, me he encontrado más de una vez con usuarios en los dos grupos con el problema de seguridad que de ello puede derivar.

Con este pequeño script compruebo que ninguno esté duplicado avisándome por correo en caso de encontrar alguno repetido.


 

lista="usb usb_no"

for GRUPO in $lista

  do

    dscl /LDAPv3/127.0.0.1 -read /Groups/$GRUPO Member | awk -F: '{print $2}' | tr ' ' '\n' | sed '/^$/d' | sed 's/\$//g' | sort >> lista_$GRUPO
done
comm -12 lista_usb lista_usb_no > lista_dif
dif=`wc -l lista_dif | cut -b 7-8`

wc -l lista_usb lista_usb_no | tr ' ' ','  > lista_mira
sed '1,2d' lista_mira > lista_final
cuantos=`cut -d ',' -f 6 lista_final`

comm -12 lista_usb lista_usb_no | mail -s "Hay $dif usuario(s) duplicado(s) en grupos USB de $cuantos usuarios"  correo@mail.me

rm lista*

 

Simplemente hace lo que parece, lee los dos grupos, los compara y me envía el resultado por correo.

9 · 12

Controlando las máquinas y sus grupos. (Open Directory)


Para controlar un poco el Open Directory en el servidor los scripts de mantenimiento son algo más complicados (no hacía falta mucho para eso, eh?).

Como los enlazamos a mano y, por desgracia, algunos no se enteran de los pasos a seguir aunque se los selles a fuego, me hice un script para comprobar que todas las máquinas que estén en el listado pertenezcan a un grupo, puesto que manejamos muchas preferencias con los grupos de máquinas.

Solo algunas máquinas tienen preferencias individuales.

Os pongo aquí el script así de paso me ponéis a caldo que ya sé que no está muy depurado ;) y lo comento más abajo.


lista=`dscl /LDAPv3/127.0.0.1 -list /ComputerGroups`

for GRUPO in $lista
  do
    dscl  /LDAPv3/127.0.0.1 -read /ComputerGroups/$GRUPO Member | awk -F: '{print $2}' | tr ' ' '\n' | sed '/^$/d' | sed 's/\$//g' >> listado
    dscl  /LDAPv3/127.0.0.1 -read /ComputerGroups/$GRUPO Member | awk -F: '{print $2}' | tr ' ' '\n' | sed '/^$/d' | sed 's/\$//g' | mail -s "Grupo $GRUPO" correo@mail.me
done       

sort listado > listado_maquinas

dscl /LDAPv3/127.0.0.1 -list /Computers | sed 's/\$//g' | sort > lista
dscl /LDAPv3/127.0.0.1 -list /Computers | sed 's/\$//g' | mail -s "Listado" correo@mail.me

totales=`wc -l lista | cut -b 6-9` 
comm -3 listado_maquinas lista > lista_dif
dif=`wc -l lista_dif | cut -b 7-8`

comm -3 listado_maquinas lista | mail -s "Hay $dif ordenadores que no pertenecen a grupo alguno de un total de $totales ordenadores"  correo@mail.me  

rm lista*

 

Evidentemente esto lo ejecuto desde el servidor.

Lo tengo puesto en el cron de forma que Lunes y Jueves tengo informes detallados en cuanto abro el correo.

Primero hago un listado de los grupos que hay.

Para cada grupo hago una lectura de las máquinas que tiene. 

Estos listados individuales me los envío por correo, así tengo constancia de los miembros de cada grupo.

Ordeno esos listados y lo comparo con la lista de máquinas del servidor, enviando por correo así las máquinas que estén en la base de datos de máquinas y que no pertenezcan a ningún grupo.

Si veis muchos errores no os cortéis en darme caña.

Mañana sigo con el control para los grupos de usuarios.

7 · 12

Controles iniciales y rutinarios de usuarios y máquinas


Cuando manejas listas de usuarios y máquinas terminas necesitando tarde o temprano unos ciertos mecanismos de control y comprobación.

Aquí, como ya hemos visto antes, tenemos los usuarios creados en Active directory y manejamos sus preferencias asignándoles a grupos de usuarios creados en Open Directory, ya que no podemos hacerlos sobre ellos mismos, además de manejar preferencias de máquinas y grupos de máquinas también de OD.

Al tratarse de una empresa más bien grande, con su departamento y políticas de seguridad y sus auditorías, es frecuente que te pidan informes sobre tal o cual estado de usuarios o máquinas y, por supuesto,  esos informes han de estar al minuto (malditas prisas).

Así que a falta de herramientas profesionales, que las hay pero no las ponen a mi disposición (el porqué ya es otro cantar y entraríamos de nuevo de lleno en el principio de Peter), pues me busco la vida y voy haciendo algunos scripts que me dejen cierto margen a presentar esos informes.

Estos no son genéricos. Están adaptados a mis necesidades y a la estructura que tenemos ahora mismo así que no os los toméis al pié de la letra y modificad lo que os haga falta.

Algunos los tengo como instrucciones guardadas en ARD para enviarlos a listas completas de ordenadores y algún otro se ejecuta en el servidor, bien manualmente o bien vía cron enviando los resultados por correo.

Aquí dejo algunos, los iré ampliando cuando haga más:

Lanzando esto desde el ARD podemos ver de un vistazo el nombre y pertenencia del objeto usuario en AD y a qué grupos pertenece el mismo:


    dscl /Search -read ~ dsAttrTypeNative:dn
    dscl /Search -read ~ dsAttrTypeNative:memberOf


Para saber qué usuarios son administradores de máquina:


    dscl . read /Groups/admin | grep GroupMembership


Para saber a qué grupo principal pertenece el usuario que ha iniciado sesión:

    theUser=$(who|awk '/console/{print $1}')
    plutil -convert xml1 /Library/Managed\ Preferences/$theUser/com.apple.MCX.plist
    cat /Library/Managed\ Preferences/$theUser/com.apple.MCX.plist  | grep string


Comprobar a qué grupo pertenece la máquina y ver un resumen de las políticas asignadas (comprueba el man de mcxquery que es muy interesante):


    mcxquery 


Para que funcionen bien las políticas asignadas por OD ésta debe ser la primera ruta de búsqueda, muchas veces enlazamos primero AD y por eso se quedan alteradas las rutas. Con esto cambio el orden (borrando la de AD y poniéndola de nuevo, sé que es muy burdo y lo cambiaré en cuanto tenga más de un  minuto libre pero como sólo tenemos dos enlaces esto funciona muy bien):


    dscl /Search -delete / CSPSearchPath "/Active Directory/All Domains"
    dscl /Search -append / CSPSearchPath "/Active Directory/All Domains"
   
    dscl localhost -read /Search (Para comprobar en que estado se encuentran)

Ya casi no lo uso, pero cuando teníamos muchas máquinas con 10.4 el problema de que quedaran mal enlazadas era muy común y para comprobar si entraba bien al servidor me valía ejecutar esto y ver si me devolvía algo o solo un error, básicamente hace una lectura de los grupos:


    dscl /LDAPv3/server_FQDN list /Groups

Todo esto convenientemente redireccionado a archivos de texto permiten manejar las listas y organizar informes.

Mañana pongo alguno más interesante que ejecuto en el servidor para comprobar máquinas no enlazadas, usuarios duplicados en grupos...

3 · 12

Instalando wget en Mac OS X


Desde hace mucho tiempo y cada vez que intentaba bajarme algo de la web, me pasaba al terminal y me llevaban los demonioscuando al escribir wget o similar y me respondía el terminal "command not found".

Es muy cómodo para bajarte ficheros. Y desgraciadamente no viene incluido en la Mac OS X.

Pero hay una forma de instalarlo y yo no lo sabía, lo he visto en Krypted y es realmente sencillo. Paso al modo copy/paste/translate.

Lo primero es tener una copia del compilador (gcc). Puedes instalarte las Developer Tools.

Después descargamos la última versión del wget, bien vía web desde http://www.gnu.org/software/wget o usando el comando ftp de la siguiente forma:


ftp ftp://ftp.gnu.org/gnu/wget/wget-latest.tar.gz


Extraemos el archivo:

tar -xvzf wget-latest.tar.gz


Nos vamos al directorio, ejecutamos el script de configuración y hacemos el instalador para ejecutarlo después:

cd wget-1.12
./configure
make
make install


Así de sencillo, ya tenemos el wget en la ruta /usr/local/bin/wget

Mirad su man que viene con unas cuantas opciones interesantes.

Y por supuesto no dejéis de ver la página original de krypted.com enlazada más arriba.


Sys
2 · 12

Potential VM growth error.

Uno de los problemas que aún no tengo solucionado y tampoco por desgracia investigado a fondo, es un mensaje de error que da el xserve con 10.5.8.

El error es este:

    Potential VM growth in DirectoryService since client PID: 0, has 550 open references when the warning limit is 500.


El porqué crecen esas referencias es algo que no tengo ni remotamente claro aún.

Por ese motivo la solución también es imprecisa y he tenido que buscar errores similares en otros usuarios para poder ver algo de luz.

Leyendo los foros de apple parece que el error afecta al menos al servermgrd y al DirectoryService.

Lo primero que hice fué aumentar el límite siguiendo las instrucciones de apple en su documentación.

    echo "limit maxproc 1000 2000" | sudo tee -a /etc/launchd.conf


Esto no me solucionó el tema y me seguía dando errores.

El siguiente paso fue matar y reiniciar los dos servicios que en teoría están produciendo los errores.

Sé que es una solución un poco drástica, pero al menos deja de molestar durante un tiempo.


    killall DirectoryService
    killall -HUP servermgrd
   


Además cuando empieza a dar este error los logs dejan de funcionar, dejan de registrar eventos.

Así que tengo que hacerles un roll a los archivos:


    newsyslog -Fv


Después buscando más documentación me encontré con la página de David y un post sobre este tema con un script muy majo para hacerlo automático. Y no os perdáis los comentarios que tienen también sus modificaciones y ampliaciones al script.


Lo mejor: Ese post es de 2006 y el problema sigue vigente hoy día.

1 · 12

Manifiesto por una Red Neutral.

Los ciudadanos y las empresas usuarias de Internet adheridas a este texto manifestamos:

  1. Que Internet es una Red Neutral por diseño, desde su creación hasta su actual implementación, en la que la información fluye de manera libre, sin discriminación alguna en función de origen, destino, protocolo o contenido.
  2. Que las empresas, emprendedores y usuarios de Internet han podido crear servicios y productos en esa Red Neutral sin necesidad de autorizaciones ni acuerdos previos, dando lugar a una barrera de entrada prácticamente inexistente que ha permitido la explosión creativa, de innovación y de servicios que define el estado de la red actual.
  3. Que todos los usuarios, emprendedores y empresas de Internet han podido definir y ofrecer sus servicios en condiciones de igualdad llevando el concepto de la libre competencia hasta extremos nunca antes conocidos.
  4. Que Internet es el vehículo de libre expresión, libre información y desarrollo social más importante con el que cuentan ciudadanos y empresas. Su naturaleza no debe ser puesta en riesgo bajo ningún concepto.
  5. Que para posibilitar esa Red Neutral las operadoras deben transportar paquetes de datos de manera neutral sin erigirse en “aduaneros” del tráfico y sin favorecer o perjudicar a unos contenidos por encima de otros.
  6. Que la gestión del tráfico en situaciones puntuales y excepcionales de saturación de las redes debe acometerse de forma transparente, de acuerdo a criterios homogéneos de interés público y no discriminatorios ni comerciales.
  7. Que dicha restricción excepcional del tráfico por parte de las operadoras no puede convertirse en una alternativa sostenida a la inversión en redes.
  8. Que dicha Red Neutral se ve amenazada por operadoras interesadas en llegar a acuerdos comerciales por los que se privilegie o degrade el contenido según su relación comercial con la operadora.
  9. Que algunos operadores del mercado quieren “redefinir” la Red Neutral para manejarla de acuerdo con sus intereses, y esa pretensión debe ser evitada; la definición de las reglas fundamentales del funcionamiento de Internet debe basarse en el interés de quienes la usan, no de quienes la proveen.
  10. Que la respuesta ante esta amenaza para la red no puede ser la inacción: no hacer nada equivale a permitir que intereses privados puedan de facto llevar a cabo prácticas que afectan a las libertades fundamentales de los ciudadanos y la capacidad de las empresas para competir en igualdad de condiciones.
  11. Que es preciso y urgente instar al Gobierno a proteger de manera clara e inequívoca la Red Neutral, con el fin de proteger el valor de Internet de cara al desarrollo de una economía más productiva, moderna, eficiente y libre de injerencias e intromisiones indebidas. Para ello es preciso que cualquier moción que se apruebe vincule de manera indisoluble la definición de Red Neutral en el contenido de la futura ley que se promueve, y no condicione su aplicación a cuestiones que poco tienen que ver con ésta.

La Red Neutral es un concepto claro y definido en el ámbito académico, donde no suscita debate:

Los ciudadanos y las empresas tienen derecho a que el tráfico de datos recibido o generado no sea manipulado, tergiversado, impedido, desviado, priorizado o retrasado en función del tipo de contenido, del protocolo o aplicación utilizado, del origen o destino de la comunicación ni de cualquier otra consideración ajena a la de su propia voluntad. Ese tráfico se tratará como una comunicación privada y exclusivamente bajo mandato judicial podrá ser espiado, trazado, archivado o analizado en su contenido, como correspondencia privada que es en realidad.

Europa, y España en particular, se encuentran en medio de una crisis económica tan importante que obligará al cambio radical de su modelo productivo, y a un mejor aprovechamiento de la creatividad de sus ciudadanos. La Red Neutral es crucial a la hora de preservar un ecosistema que favorezca la competencia e innovación para la creación de los innumerables productos y servicios que quedan por inventar y descubrir. La capacidad de trabajar en red, de manera colaborativa, y en mercados conectados, afectará a todos los sectores y todas las empresas de nuestro país, lo que convierte a Internet en un factor clave actual y futuro en nuestro desarrollo económico y social, determinando en gran medida el nivel de competitividad del país. De ahí nuestra profunda preocupación por la preservación de la Red Neutral. Por eso instamos con urgencia al Gobierno español a ser proactivo en el contexto europeo y a legislar de manera clara e inequívoca en ese sentido.

 

Si te sientes representado por este manifiesto te pedimos encarecidamente que lo copies y lo publiques en tu blog o que lo menciones en tu cuenta de Twitter o en Facebook usando el hashtag #redneutral. ¡Muchas gracias!

30 · 11

LOM, IPMI y otros bichos.

Una de las razones por la que la retirada del Xserver es un problema para los que gestionamos servidores remotos es la característica de poder acceder en remoto através del puerto ethernet y manejarlo aunque la máquina no responda.

Esto se hace a través del LOM (Lights Out Management), que es la implementación que tiene Apple del protocolo IPMI (Intelligent Platform Management Interface) de Intel y solo está disponible para xserve con Intel.

Se puede monitorizar, según Apple, más de 100 sensores de voltaje, temperatura, velocidad de ventiladores...

También se puede, y es lo que más he usado, apagar y reiniciar un servidor.

Cada puerto ethernet tiene asignadas dos direcciones MAC, una que usa el servidor y otro para la LOM.

Configuramos el acceso a la LOM desde la aplicación Server Monitor, tendrá su propio usuario y contraseña que definiremos desde esa interfaz. Ese usuario no aparece ni en las preferencias del sistema ni en las cuentas de Workgroup Manager.

 

Server_monitor

 

Server_monitor_2

 

Atención también al cambio en la aplicación. Antes se accedía al servidor por su IP, ahora debes hacerlo por la IP del LOM. Si en el Server Monitor intentas conectar a la IP del servidor no verás nada.

Una vez configurado podremos tener acceso remoto. Desde otro ordenador con Server Monitor podremos monitorizar todas esos sensores.

La comunicación se realiza vía UDP por el puerto 623, así que ojo con caparlo.

Para comunicarnos con la LOM usamos la instrucción ipmitool. La sintaxis es muy sencilla. Usa el man y no creo que tengas ningún problema.

En una de las delegaciones tenemos problemas con el suministro eléctrico que no parecen solucionarse a pesar de habernos quejado en multitud de ocasiones. El caso es que se nos queda tostado el server en esos reinicios después de un corte (algo se está cascado y bien pero bueno...), así que la forma de la instrucción que más estoy usando es esta:


 ipmitool -H ip_server -U user -P passw chassis power off 

              ipmitool -H ip_server -U user -P passw chassis power on 


Muy cómoda también la siguiente para saber la causa del último reinicio:


ipmitool -H ip_server -U user -P passw chassis restart_cause

Y muy chulas las que leen las temperaturas, útiles sobre todo si no tienes un CPD refrigerado como nos pasaba en algunos sitios, por suerte ya no.

Aprovechad que los "nuevos" servidores de apple no tienen estas funciones.   

26 · 11

Viernes negro. ¡A comprar!

¿Estabas pensando en comprarte otro mac? 

¿"Necesitas" el iPad?
Estás de suerte, ya está aquí el viernes negro.

Día especial de compras de Apple según reza su página.

El viernes negro es en realidad una tradición en Estados Unidos. Se "celebra" después de acción de gracias.
No es más que un día en el que los comercios aprovechan para rebajar ciertos productos y hacer su agosto antes de las compras navideñas, un chollo vamos.

Y para nosotros, enfermos consumidores, un vicio y una patada en el bolsillo, que no nos podemos resistir a ciertos reclamos.

Hoy es mejor no navegar por según que páginas y dejar bien guardada la tarjeta de crédito.

 

Descuentos de Apple

Veamos las ofertas de Apple.

Los ordenadores están rebajados 101 eurazos, iMacs, MacBook Pro y MacBook Air.
Los iPad los han rebajado 41 euros, que no está nada mal, y si no fuera por que hace poco que me he comprado el MacPro dejándome la cuenta por los suelos, me haría con uno ahora mismo.

Teclados, fundas, auriculares, altavoces y minialtavoces, bases, cargadores... un buen surtido de descuentos, algunos bastante suculentos.
Tienen un link a la página con el listado completo para que no te pierdas y puedas gastar la extra a gusto.

Hay algunos artículos en la lista que no aparecen con descuento y es verdad, no lo tienen, pero sí los costes de envío gratuitos, para cualquier artículo en la lista.

Lo dicho un negocio para el empresario y un ligero ahorro para nosotros. No es mucho pero menos da una piedra.

25 · 11

Libro solidario: La España Fantasma

Genial la idea que tuvo kurioso hace ya un tiempo.

La España Fantasma

Cuando ya estaba hasta las narices del fútbol por todos lados y pensé que no podría aguantar ni siquiera una palabra más sobre el tema, leo un twitt que me llama la atención.

Salir a la calle cámara en ristre el día de la final del mundial. Hacer fotos de la ciudad desierta. Eso estaba asegurado, por supuesto.

Y yo que pensaba que no había mucha gente que se lo perdiera. Uf, la iniciativa ha tenido un éxito tremendo en cuanto a participación, contando que la convocatoria se inició en twitter aunque pronto se corrió la voz mediante blogs, emails y otros medios más habituales.

Yo no me acuerdo como llegué al twitter de kurioso pero solo con esa iniciativa ya tiene asegurado todo mi respeto y admiración.

Además este libro colabora en el proyecto benéfico "The Children are Precious" de "Save the Children

Kurioso lo cuenta mucho mejor y con más detalle en su página.

Ale, ya sabéis que regalar estas navidades, luego no digáis que se os ocurre nada.

Sólo tenéis que pinchar en el banner y, como dice él, por una copa disfrutad del libro.

César

Managing Apple Mac Os X Servers

About

Por no mencionar a Ned

Contributors