martes, 29 de septiembre de 2009

How to reset an ALOM on a SUN Fire


Este posts es una nota mental y una respuesta a mi mismo, les cuento un poco la historia.

Tengo un servidor SunFire v245, nada del otro mundo, pero una buena maquina para experimentar cosas relacionadas con los procesadores sparc. El asunto es que esta maquina la instalé con solaris 10 y obviamente puse una contraseña de root tan fuerte que la olvidé.

Tambien jugando un poco con la ALOM, le puse contraseña al usuario admin y tambien la olvidé.

La maquina no tiene teclado sparc, tampoco tiene tarjeta de video y tiene 2 discos de 70GB, uno de ellos con /dev/null.

La pregunta que hice en algun momento era, como hago para entrar nuevamente al sistema operativo?, como recupero la contraseña de la ALOM?.

La ALOM para que se hagan la idea, es un software instalado en un chip (entonces es un firmware) que permite administrar remotamente el servidor, pero esta administración no es lo que se imaginan. Dentro de las caracteristicas estan por ejemplo:

  • Poder ejecutar rutinas de chequeos de hardware (POSTS)

  • Habilitar conectividad por red, por una tarjeta independiente a las de 1Gpbs disponibles

  • Habilitar acceso por serial, telnet o ssh y tener un CLI para ejecutar los comandos

  • Hablitar un sistema de registros o alertas a servidores SYSLOG o habilitarle la posibilidad de enviar estos registros por correo electrónico.
Lo interesante de la ALOM es que estará disponible con solo conectar el cable de potencia, no es necesario prender el equipo y menos arrancar un sistema operativo para que funcione. Otra particularidad es que estando en el shell de un sistema operativo solaris por ejemplo y presionando los caracteres correctos (#.) podemos cambiar al modo ALOM y viceversa (esto es mentira, pero me da pereza buscar las teclas).

En fin, la ALOM tiene muchas funcionalidades, pero como mencionaba al principio, por seguridad tiene un sistema de user,password para validar el acceso y una vez esta configurado es necesario entrar al sistema operativo solaris para poder cambiar estas claves.

¿Como hacemos entonces?

Despues de leer e intentar soluciones, logré recuperarla con una mezcla de cosas:

1. Primero necesitaba arrancar el servidor desde un LiveCD.

Pero la maquina estaba configurada para arrancar por discos siempre, por lo que no me era posible. La solución entonces fue sacar los discos duros, encender la maquina (con el cable serial conectado a TTYB y usando putty-->serial), despues de hacer el POST e intentar arrancar por los discos sin éxito, la maquina se tira a un prompt "ok>", desde este prompt puedo hacer cosas básicas, como por ejemplo decirle que arranque desde el CDROM.

setenv boot cdrom o algo similar, se puede usar help para ver los comandos disponibles.

2. Al poder arrancar del CDROM/DVD lo que necesitaba era un LIVECD que cargue un sistema tipo Unix, no tenia a la mano los CDS de Solaris/Sparc, pero creo que eran la solución directa. Lo que hice fue cargar OpenBSD/Sparc y llegar hasta el menú de instalación inicial y luego insertar los discos (en caliente) y luego salirme al shell de OpenBSD.

Desde allí monté (mount blah blah blah) las particiones del solaris que estaba disponible y de esta forma pude entrar al contenido del disco, ahora que?

3. Se pueden hacer varias cosas, pero como lo que quiero hacer es reinstalar el sistema operativo solaris, entonces borré el /etc/shadow. Jaja, tambien pude haber creado un usuario con privilegios de root con una contraseña conocida, o pude haber modificado solo el campo de la contraseña para el root en el archivo /etc/shadow, etc, etc.. pero no!, Yo queria borrar el shadow. (No lo hagan en casa a menos que quieran aprender a solucionar problemas)

4. Con el /etc/shadow eliminado reinicié la maquina, con los dos discos conectados, entre en el prompt "ok>", le dije que arrancara de discos y esperé ...

En la secuencia de booteo de solaris, no encuentra el /etc/shadow e inmediatamente me tira al shell de root (un bug de seguridad?, LOL), pero el sistema se monta en solo lectura. Así que no es que pueda hacer mucho, pero si puedo ejecutar los comandos necesarios para revivir la ALOM.

bash-3.00# pwd
/usr/platform/SUNW,Sun-Fire-V245/sbin
bash-3.00# ls
eeprom fruadm prtdiag scadm trapstat
bash-3.00#./scadm userpassword admin
contraseña: nonroot
ota es: nonroot
bash-3.00#

5. Solo nos queda probar, pasandonos al modo ALOM (#.) e ingresando la clave nonroot para el usuario admin. (Ojo, siempre despues del reset, la clave será nonroot :p)

Copyright 2007 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Sun(tm) Advanced Lights Out Manager 1.6.6 (unknown)
Please login: admin
Please Enter password: *******
y>
y> help
Available commands
------------------
poweron [-c] {FRU}
poweroff [-y] [-f]
removefru [-y] {FRU}
reset [-y] [-x] [-c]
break [-y] [-c]
bootmode [normal|reset_nvram|diag|skip_
diag|bootscript="string"]
console [-f]
consolehistory [-b lines|-e lines|-v] [-g lines] [-p|boot|run]
dumpconfig [-t] -s -f
showlogs [-b lines|-e lines] [-g lines] [-v] [-p logtype[r|p]]
setlocator [on|off]
showlocator
showenvironment
setfru -c
showfru [-g lines] [-s|-d] [FRU]
showplatform [-v]
setkeyswitch [-y] [normal|stby|diag|locked]
showkeyswitch
showsc [-v] [param]
shownetwork [-v]
setsc [-r [y]] [param] [value]
ssh-keygen {-l|-r} -t {rsa|dsa}
restartssh [-y]
setupsc
showdate
setdate [[mmdd]HHMM | mmddHHMM[cc]yy][.SS]
resetsc [-y]
restoreconfig [-t] [-x] [-y] -s -f
flashupdate -s -f [-v]
setdefaults [-y] [-a]
useradd
userdel [-y]
usershow [username]
userpassword
userperm [c][u][a][r]
password
showusers [-g lines]
logout
help [command]
y>

Y listo!, ahora solo queda reparar o reinstalar el solaris. ;)

Salud!

Entradas populares