sábado, junio 30, 2007

Fonera en mi servidor

Finalmente he hecho en el script las modificaciones necesarias y a ojos de fon soy usuario activo aunque desconecte mi fonera. Los cambios precisos solo eran ponerle los datos de tu fonera al principio del script:

WLMAC="$(nvram get ath0_hwaddr )" #the WLAN mac-adress
MAC="$(nvram get et0macaddr)" #the WAN mac-adress
FONREV=2
FIRMWARE=0.7.1
FONKEY=/tmp/simthefon/key #the path to the fon-public-key

Solo he cambiado esas tres líneas, poniendo las MACs adecuadas, la versión del firmware de mi fonera, y la ruta a la clave. Después lo he ejecutado y listo, ya esta funcionando, se ha descargado una actualización y ahora está esperando 7175 segundos para seguir el bucle y volver a ejecutar exec_standard_mode.

Realmente iba a modificar otra cosa, iba a eliminar el cron mode, porque yo solo voy a ejecutarlo mediante el bucle y sleep, pero bueno al final no lo he borrado.

Ya solo queda esperar unos días a ver si mi fonera aparece como activa en los mapas de fon.

Por último decir que tengo pensado flashear la fonera y ponerle un linux algo mas versátil, no me he decidido aun entre openwrt o ddwrt, veré las ventajas de cada uno y ya decidiré.

PD: Que conste que yo tenía intención de investigarlo todo por mi cuenta y hacer mi propio programa, pero si ya existe este script hecho para dd-wrt simplemente tenía que adaptarlo a mi server, así que...

Analizando el funcionamiento de la fonera

He estado mirando el script que comente en el post anterior y la cosa se va aclarando poco a poco. Según pone en las instrucciones de ese script, es válido para aparecer como activo en maps.fon.com, y obviamente para hacer creer a fon que la fonera es activa, porque en el mapa solo a aparecen las que están activas (por cierto, según acabo de comprobar mi fonspot no aparece en el mapa, a pesar de que funciona perfectamente...).

Bueno el caso es que yo quiero hacer las modificaciones necesarias a ese script para poder ejecutarlo en mi server y que funcione, pudiendo yo hacer lo que quiera con mi fonera y seguir siendo fonero. Y prefiero tener el script en el server para tener la fonera para lo que sea y que el script siga funcionando aunque yo haga experimentos raros con la fonera.

El script básicamente se conecta fon en busca de actualizaciones, según parece aquel que haga esto (enviando unos datos válidos) aparecerá como fonero activo. Esa es la esencia del script, luego hace algunas cosillas mas en función de lo que reciba de fon, y además se autoejecuta cada cierto tiempo, mediante cron o bien mediante un bucle y el comando sleep con un tiempo de espera aleatorio. Supongo que en la fonera lo que pasa realmente es que al arrancar se envía unos datos (modo start, ahora veremos esto) y luego ya mediante cron se envían otros datos (modo cron) para seguir dando señales de vida y comprobar actualizaciones.

Esto es lo primero que se ejecuta, sería el equivalente a lo que envía la fonera en el arranque:

echo "mode='start' wlmac='$WLMAC' mac='$MAC' fonrev='$FONREV' firmware='$FIRMWARE' chillver='$CHILLVER' thclver='$THCLVER' device='$DEVICE'" | dbclient -T -p 1937 -i $FONKEY openwrt@download.fon.com > startscript

El script se encarga de averiguar algunas de esas variables antes de ejecutar este comando y otras vienen ya preconfiguradas con unos valores predeterminados, yo como lo voy a usar en mi servidor no se van a obtener algunos datos, la mac por ejemplo, así que yo voy a asignarle unos valores a cada una de ellas acordes con mi fonera. Por ejemplo, donde averigua la MAC, yo directamente voy a sustituirlo por la mac de mi fonera.

Seguimos, la línea que he puesto antes envía todos esos datos por ssh a fon (hace un echo y se lo pasa al cliente ssh usando pipes (el símbolo "|" ). Ahí se ve claramente que es el puerto 1937 del servidor download.fon.com con usuario openwrt y usa el archivo key como clave (se puede descargar de la misma web que el script, o si tenéis fonera podéis tomarlo directamente de ella). La respuesta recibida por parte de fon se redirecciona al archivo startscript.

Según los datos que envíes fon te responderá una cosa u otra, esta es una posible respuesta:

cd /tmp
wget http://download.fon.com/firmware/update/0.7.1/2/upgrade.fon
/bin/fonverify /etc/public_fon_rsa_key.der /tmp/upgrade.fon

rm -f /tmp/.thinclient.sh

exit

La respuesta de fon (y lo que hacemos con ella) la analizaremos después. Ahora sigamos con el script, después ejecuta la función exec_every_mode. Lo primero que hace es volver a conectarse a fon, pero en esta ocasión envía menos datos, supongo que será debido a que ya se ha "identificado" antes y fon recuerda aquellos datos. Exactamente esto es lo que hace ahora:

echo "mode='cron' wlmac='$WLMAC' mac='$MAC' fonrev='$FONREV' firmware='$FIRMWARE'" | dbclient -T -p 1937 -i $FONKEY openwrt@download.fon.com > newscript

Envía de la misma forma que antes los datos y la respuesta de fon va al fichero newscript, que al menos por ahora es idéntico a startscript, ya que aun no se ha ejecutado nada que tenga modifique ninguna de las variables.

A continuación descarga el archivo de actualización que fon dijo en su respuesta. Hecho esto viene una parte en la que se descomprime el archivo .fon, tras ir haciendo varias operaciones bit a bit mediante dd. Esta parte no da mas de si, si os interesan los por menores del algoritmo miraros esa parte del script.

Después para hacer creer a fon que nos hemos actualizado realmente se cambian las variables FONREV y FIRMWARE, según ponga en el firmware de fon que acaba de ser descomprimido:

FONREV=$(cat fon-firmware/etc/fon_revision)
FIRMWARE=$(cat fon-firmware/etc/fon_version)

Lo siguiente que nos encontramos son dos funciones, exec_cron_mode y exec_standard_mode, que se ejecuta una u otra según se use cron o sleep para continuar la ejecución periódica del script. La primera de ellas simplemente llama a la función exec_standard_mode, que es la base del script, la otra función, tiene un bucle, llama la función exec_standard_mode, después calcula un número aleatorio (n) y luego mediante sleep hace que la ejecución del resto de la función sea n segundos después de ejecutada la función. Después empieza el bucle de nuevo, llama la función, espera y vuelve a iniciar el bucle.

Finalmente hace uso de case para elegir entre la función exec_cron_mode o la función exec_standard_mode. En mi caso será mediante sleep, voy a hacerle unos arreglos al script y funcionara perfectamente en mi server.

Por último decir que esto tiene toda la lógica del mundo, porque mi fonera esta modificada para no ejecutar las cosas que la mande fon, y efectivamente no aparece en los mapas, este script si que "ejecuta" lo que fon manda y en sucesivos envíos, fon comprobará que "la fonera" esta siendo actualizada y que funciona perfectamente. Voy a modificar el script y cuando lo tenga listo lo publico y os comento los cambios que le haya hecho.

viernes, junio 29, 2007

Problemas con el ADSL

Hoy ha sido un día infernal con mi adsl, si ese que orange se tomo la molestia de cambiar sin yo pedirlo... os cuento todo lo que ha pasado

Esta mañana empezaba bien la cosa, conectaba e iba perfectamente, y me dio por hacer un test de velocidad a ver si iba mas rápido que antes, porque ahora supuestamente tengo 4Mb y antes era solo 1, el resultado del test la verdad es que me sorprendí, porque alcanzaba los 3 Mb de bajada y unos 250 Kb se subida. Eso me alegro la mañana, pensé que por lo menos ahora iba mas rápido, ya solo falta la ip fija y todo iría bien.

Esta tarde, después de comer la situación ha empeorando mucho, tanto que ahora mismo estoy sin conexión, esto lo escribo desde un editor de textos confiando en poder subirlo al blog a traves de mi conexión de Yoigo cuando haya acabado. Al principio, poco antes de las 5 de la tarde, entré en el irc, al canal #red-handed, servidor freenode, pero de repente se iba la conexión, pensé que sería un problema puntual del wifi o algo, así que me conecto a otra red wifi y asunto arreglado, lo hago y ya tengo internet (desde mi linea no, desde otra). Al poco me intenté conectar de nuevo a mi red para ver si funcionaba o que pasaba, me conecté y no, no funcionaba internet, sin embargo estaba bien conectado a la red porque mi red local funcionaba perfectamente, hice un ping al router, al server, a la fonera y todos respondieron, me conecté por ssh al server, pude hacerlo, iba bien, luego accedí al router por http, todo parecía correcto... entonces que pasaba? todo lo que iba del router hacia fuera no llegaba a su destino.

En vista de esa situación pensé en volver a la configuración antigua, la que tenía el router antes del cambio en el adsl, lo hice y no valió para nada. Entonces volví a poner la configuración actual y probé de todo, cambiar el cable telefónico, conectar solamente el router a la clavija del teléfono, cambiar los microfiltros de los teléfonos, desenchufar los teléfonos y poner solo el router, poner el router en otra clavija telefónica, y todas las pruebas que se os ocurran, en vista de que ninguna funcionaba pensé que quizás fuera que el router estaba estropeado, así que cambié en router por el nuevo que me "regaló" orange (me regalo a cambio de este suplicio), y tampoco funcionó, hice todas las pruebas de nuevo... todo lo que se os ocurra lo probé... todo con tal de no llamar al servicio de (des)atención al cliente, porque todos sabemos lo insufribles que son esas llamadas y además cuestan dinero...

En las últimas pruebas pareció responder mejor, llegó a cargar google y poco mas... pero algo era algo. Bueno finalmente puse el router de nuevo en su sitio, todos los teléfonos conectados, mismos microfiltros, mismo cable... definitivamente me convencí de que el problema no es mío, es en la red de orange.

Ahora mismo (22:00) todavía sigo sin conexión, pero ahora no tengo ganas de llamar, porque quiero cenar y luego si llamo me tendrán media hora con la típica musiquita, y luego me atenderá algún operador imbécil que no tiene ni idea de lo que pasa, y si digo un solo término técnico a saber que me suelta, me tendrá otra media hora diciéndome que me vaya al panel de control (en ubuntu?), me soltara tonterías, luego me dirá que me espero que me va a poner con un técnico, otra media hora de música... en fin la historia que todos conocemos y no quiero estar hasta la 1 de la madrugada al teléfono, para que acaben soltándome que están migrando mi linea a sus redes y que puede haber problemas hasta que acaben en unos días, así que la llamada la dejo para mañana si no se ha solucionado todavía.

Tengo que contaros algunas cosas de la fonera, he hecho avances en mi investigación, a ver si ahora me pongo a preparar un post y lo publico cuando esté acabado y tenga conexión a internet.

[EDIT]

Al parecer era un problema general en Orange, y ha habido muchos usuarios afectados, yo ya he vuelto a la normalidad. Lo comentan en bandaancha.st y el propio Enrique Dans se ha visto afectado también.

Ahora al saber que no era un problema particular mío estoy mas contento, porque eso significa que mi conexión de 4Mb funciona perfectamente, y con unas velocidades de entre 300 y 400 KB/s. Mas rápido que antes me funciona, sólo me falta el detalle de la ip fija que si no la tengo seguramente llamaré el lunes a ver que pasa.

jueves, junio 28, 2007

Ideas nuevas para la fonera

Bueno tanta playa y tantas quedadas no me están dejando mucho tiempo para mis cosas de geek, pero bueno ahora tengo un rato para contaros lo que se me ocurrió ayer para la fonera. Bueno además de lo que ya os comenté en su día, se me ha ocurrido otra idea, se trata de ponerla en modo cliente, que se conecte a la red wifi de mi instituto, y luego ejecute un pequeño script, con comandos que me ofrezcan resultados interesantes... tipo nmap, traceroute... y todos los resultados los guarde en log en texto plano, una vez haya acabado esas cosas que utilice todo el espacio libre que quede para snifar la red y guardar todos los datos, pero esto lo último, ya que sino se quedaría sin espacio muy rápidamente.

La ventaja de este proceso con respecto al otro (montar un server y quitar el password de root) es sencilla, en la fonera tengo permisos de root y puedo ejecutar lo que quiera, además no sería llamativo ni nada, simplemente llevo la fonera en la mochila con su fontenna (para asegurarme de que va a tener cobertura para conectarse y también porque veo la fontenna mas robusta que una antena omnidireccional, cuando este listo (en cualquier momento) le conecto sus pilas y a funcionar luego la dejo hasta que se agoten las pilas (que según he leído aguanta bastante, me parece que mas de dos horas).

Un detalle a tener en cuenta es que la red wifi está cifrada con wpa, pero otro detalle es que yo tengo la clave :D Si, el archivo /etc/wpa_supplicant.conf tenía permisos de lectura para cualquiera, así que por si acaso me hiciera falta algún día lo copié, aunque realmente realmente nunca pensé que me fuera a ser útil, pero ahora con mi nuevo plan para la fonera si que me alegro de tener el archivo :)

Bueno además de esto se me ha ocurrido hacer mi propio firmware o por lo menos flashearla y ponerle otro que me ofrezca mas posibilidades que el de fon. Pero a esto hay que añadir que no quiero perder la funcionalidad de fon, es decir compartiendo wifi o no, quiero que en fon no me baneen por dejar la fonera mas de 30 días desconectada. Para eso hay varias soluciones:

-Averiguar que archivos/scripts son los que notifican a fon de que la fonera esta encendida y funcionando.
-Averiguar que datos envía a fon
-Crear/encontrar un "emulador de fonera" y darle el contenido que tiene la fonera para que el solito ejecute las cosas y le envié a fon los datos adecuados.

Vamos por partes, las tres opciones son interesantes, pero no todas son igual de fáciles/cómodas, veamoslas una por una:

La primera no aparenta mucha dificultad se puede hacer de dos formas, una buscando en todos los archivos de la fonera, o bien hacerlo buscando en el código fuente, quizás en el código sea mas fácil si han puesto comentarios, documentado... si no, será mas fácil mirar en la propia fonera.

La segunda opción no presenta muchas dificultades, simplemente se trata de poner el server a snifar y luego conectar la fonera y que apunte bien todo lo que pase.

Por último sería buscar un emulador del procesador de la fonera (mips), o un emulador de la propia fonera, pero yo solo he encontrado lo primero (mediante apt), el paquete se llama spim pero esta opción la veo muy complicada, haré alguna de las anteriores seguramente...

...Si hago alguna de ellas, porque existe un script para dd-wrt (uno de los firmwares que funcionan en la fonera) que hace justo lo que yo quiero, conectarse a fon y hacer las cosas necesarias, quizá leyendo este script se aclare todo un poco mas, lo he encontrado gracias al foro de fonera.info, en este topic y aquí la web con el script e instrucciones: La Fonera Software Heartbeat.

A lo mejor simplemente flasheo y le pongo dd-wrt u openwrt, ya os contaré según vaya haciendo cosas.

Por último una cosa mas sobre la fonera, al final después de mi último post sobre ella, hice un poco de compilación cruzada y porté airckrack-ng a la fonera, sin embargo no lo he usado, creo que de eso me voy a olvidar por ahora y solo me voy a dedicar a lo que os comento en este post y a preparar también el server de network boot (por llamarlo de alguna manera), que es el otro proyecto para la fonera.

PD: Otra opción es portar el script para dd-wrt y que funcione en mi server...

miércoles, junio 27, 2007

Orange ha cambiado mi adsl

Hace algunos días os hablé sobre posibles cambios en mi adsl, pues finalmente han llevado a cabo esos cambios, hoy cuando me he levantado he encendido router, fonera, server y portátil, me conecto a mi red wifi y no va internet, no me carga ninguna página, hago un ping al router y funciona bien, entonces me conecto por ssh al server y la fonera para ver si tienen acceso a internet y no, tampoco, ninguno era capaz de hacer un ping a google.es. Yo ya empecé a pensar en que estaban haciendo esos cambios, para comprobar que no se trataba de un fallo en la red nacional de Telefónica (y no lo digo de broma, hace poco pasó), me conecté a una red wifi abierta de algún vecino solidario, funcionaba perfectamente, esto ya confirmó mi hipótesis sobre el cambio en mi adsl, así que volví a mi red y cambié la configuración del router, a lo mejor ya estaba terminado y sólo faltaba eso, así que nada me conecto por http al router, hago las modificaciones necesarias y espero... no se conecta... vuelvo a intentarlo... tampoco... por último tras unos 5 minutos se ha conectado. Esto lo escribo usando mi conexión.

Supuestamente tengo un ancho de banda de 4096 kbps de bajada y 320 kbps, sin embargo a los 4 megas no llego ni de lejos, para comprobar el ancho de banda real he ejecutado el test de velocidad de internautas.org y me ha dado como resultado 830 kbps y 259 kbps, bastante menos de lo que me dice Orange. De todas formas, para comprobar empíricamente mi downspeed me fui a ubuntu.com y puse a descargar la ultima iso del sistema, baja con una velocidad uniforme de 104 KB/s, que es la misma que tenía antes del cambio.

Sobre la ip, pues antes era ip fija, ahora me han puesto una ip dinámica, lo se por dos razones, la primera ip que me han puesto pertenece al host dynamic.orange.es y creo que eso ya es un dato que deja las cosas claras, pero para salir de dudas me reinicio la conexión y me da una ip diferente, que también es de dynamic.orange.es. Bueno, según leí en bandaancha.st hace algunos días, cuando acaban el cambio te vuelven a poner ip fija, y algunos usuarios lo confirmaron, dijeron que tras unos días volvían a tener ip fija, otra distinta a la del principio, pero tenías una ip fija. Así que me voy a esperar unos días y si no me han puesto ip fija llamaré a orange hasta que me la pongan.

En resumen, ahora paso por la red de orange y no por la de telefonica, supuestamente con una conexión de 4Mb, realmente con la misma velocidad que tenía antes y además me han puesto ip dinámica.

Antes de acabar comentar una cosa mas, en vista de que yo no he solicitado este cambio, ni firmado ningún contrato nuevo, si esta conexión me da algún problema me doy de baja y me voy a telefónica, porque yo la verdad no me da la gana tener problemas con algo que no he solicitado cuando he estado años sin ningún problema con mi anterior conexión.

lunes, junio 25, 2007

Problemas compilando el código de la fonera

Como tengo un verano por delante para montar bien lo de la fonera, voy a estudiar al máximo todos los temas. Lo primero que he querido hacer es compilar el código de la fonera y pasan dos cosas, la primera es que es un proceso largo y luego da como resultado (según he leído) mas de 1 GB de datos así que decidí que lo mejor era hacerlo en el server, nada cojo y descargo el código de la fonera mediante wget, lo descomprimo y para compilarlo primero hay que seleccionar los paquetes que se quieren y a continuación compilar. Ejecuto make menuconfig para el primer paso y salí sin hacer ningún cambio, simplemente lo dejo con la configuración por defecto, después ejecute make para compilar y empieza a trabajar... sigue trabajando... no para... y esto que ayer me dieron ya las once y media de la noche y yo por las noches apago el servidor, así que pienso: "lo paro y ya lo volveré a hacer mañana por la mañana con mas tiempo", y así lo hice, lo paré y apagué el server.

Pero claro no todo podía ser tan fácil, lo que yo tenía pensado es dejar el servidor compilando mientras yo me iba a la playa, así cuando volviera ya debía estar todo listo, nada mas lejos de la realidad. Me levanto, enciendo el server, el router, la fonera y el portátil, me conecto por ssh al server, me voy al directorio /media/hdd/fonera y ejecuto make menuconfig, errores, vale porque no funciona hoy si ayer iba perfectamente? bueno pienso que a lo mejor se han modificado algunos ficheros por la compilación de anoche que corte por el camino, así que decido borrar todos esos archivos y descomprimir de nuevo el archivo fonera.tar.bz2, el que descargué de la web de fon y contiene el código, ahora ejecuto de nuevo make menuconfig y tampoco me funciona, WTF!! pero si ayer funcionó perfectamente y a la primera! bueno, sigo intentando de todo pero nada, reinstalé las herramientas necesarias para compilar el código (build-essential, flex, make, gcc, binutils...) pero nada no he conseguido que funcione, he mirado en google y no he visto nada útil... no se que hacer, haber si se me ocurre algo, de todas formas, por si algún lector puede ayudarme el error que me da al ejecutar make menuconfig es este:

svn: '.' is not a working copy
make: execvp: ./scripts/timestamp.pl: Permiso denegado
Collecting package info...
./scripts/gen_menuconfig.pl < .pkginfo > .config.in || rm -f .config.in
/bin/sh: ./scripts/gen_menuconfig.pl: /usr/bin/perl: bad interpreter: Permiso denegado
cmd() { &>/dev/null make $* || { echo "Build failed. Please re-run make with V=99 to see what's going on"; /bin/false; } } 3>&1 4>&amp;amp;amp;amp;amp;2; cmd -C scripts/config all
make: execvp: scripts/config/mconf: Permiso denegado
make: *** [menuconfig] Error 127

También siguiendo el consejo que pone ahí probé con make menuconfig V=99, pero tampoco funciona, esto es lo que me suelta:

svn: '.' is not a working copy
make: execvp: ./scripts/timestamp.pl: Permiso denegado
Collecting package info...
./scripts/gen_menuconfig.pl < .pkginfo > .config.in || rm -f .config.in
/bin/sh: ./scripts/gen_menuconfig.pl: /usr/bin/perl: bad interpreter: Permiso denegado
make -C scripts/config all
make[1]: se ingresa al directorio `/media/hdd/fonera/scripts/config'
make -C lxdialog
make[2]: se ingresa al directorio `/media/hdd/fonera/scripts/config/lxdialog'
make[2]: No se hace nada para `all'.
make[2]: se sale del directorio `/media/hdd/fonera/scripts/config/lxdialog'
make[1]: se sale del directorio `/media/hdd/fonera/scripts/config'
scripts/config/mconf Config.in
make: execvp: scripts/config/mconf: Permiso denegado
make: *** [menuconfig] Error 127

Además también quiero que conste que ayer cuando funcionó no tuve que poner el V=99.

En fin, se ve que el servidor solo va a darme problemas inexplicables, cuando no de hardware, de software... a ver si consigo compilar el código de una vez.

[EDIT]

Finalmente he conseguido compilar el código, lo que no se muy bien es que ha pasado que ahora ha funcionado y antes no lo hacía, os cuento lo que he hecho. Antes cuando estaba con el disco duro antiguo (6gb) era conocido en el sistema como /dev/hdd, ahora el nuevo disco duro que he puesto es /dev/hde. El antiguo lo montaba en /media/hdd/, cuando cambié el disco duro cambié el /etc/fstab y puse en ese directorio /dev/hde1 (nuevo hd) en lugar de /dev/hdd1 (antiguo hd). Entonces la primera vez que hice el proceso funcionó, a partir de entonces, al día siguiente, ya no funcionaba, no podía compilarlo. Hoy he cambiado de opinión y he cambiado el punto de montaje de /dev/hde1, he preferido ponerlo en un directorio acorde a su nombre /media/hde, acto seguido volví a intentar la compilación y funcionó perfectamente, lo deje con la configuración por defecto y ejecuté make para compilar, después de un buen rato ha terminado.

En fonera/build_mips/root tengo el mismo contenido que en la fonera. Si os interesa aquí podéis ver un interesante post sobre como compilar para la fonera y como portar aplicaciones para la fonera.

Idea para el centro TIC

Tras una intensa mañana de playa estoy aquí para contaros una nueva idea que ronda por mi cabeza para conseguir ser root en una laptop. Os comento mi plan, el único material necesario sería una fonera y un cable de red ethernet, así de fácil. La parte del software tampoco debería presentar muchas complicaciones. Las laptops tienen network boot (arranque por red) por lo que mi plan sería que la fonera actuara de servidor y que la laptop arrancara con los datos que la fonera sirviera, la clave del plan es que se ejecutaría un script que se encargaría de hacer un backup de /etc/shadow a /etc/shadow.bak y luego quitara el password de root. Una vez acabado el proceso un reboot, arranco guadalinex normal, me logueo como root en un terminal, apt-get install nmap ettercap traceroute... y después a analizar la red :D

Yo el plan lo veo todo bien menos un detallito, que a partir de ese momento o cojo siempre la misma laptop o tengo que hacerlo cada vez que usemos los ordenadores. En teoría debería coger siempre el mismo portáti, de hecho hay un papel donde tiene que estar apuntado que portátil coge cada uno y siempre se debe coger ese. El problema es que no siempre cogemos laptops del mismo carro y además aunque sean del mismo en cada hora hacemos una cosa, los reparten segun estemos sentados, cada vez en un orden diferente (una vez empiezan por el final de la clase, otra vez por el principio..), en fin que es difícil coger siempre el mismo equipo.

Tengo dos soluciones, la primera es hacer el proceso en cada ordenador que coja y cuando acabe con el restaurar el /etc/shadow, para no dejar un portátil con la cuenta de root a disposición de cualquiera. La otra solución sería hacerlo una sola vez, no restaurar el /etc/shadow, anotar el nombre del host en cuestión e instalarle un servidor ssh, hecho esto cada vez que cogieramos ordenadores de ese carro podría conectarme como root por ssh a esa maquina. Esto se puede mejorar restaurando el /etc/shadow y creando una nueva cuenta con permisos de root (y con pass) que sería a la que me conectaría por ssh, y con esto evitaría que cualquiera pudiera tener permisos de root en la maquina, que gente con malas intenciones por ahí fuera.

Bueno todavía no he decidido el plan final, pero en cualquier caso el montaje que tengo que hacer en la fonera será el mismo, así que voy a investigar y a prepararlo todo.