miércoles, 23 de diciembre de 2009

Cambiando contraseñas

Vale! Ya me había despedido, pero malditasea, quiero comentar esto que me acaba de pasar.
Como es costumbre, uno va cambiando sus passwords, y hoy ha tocado cambiar las passwords de las diferentes cuentas de correo. La que me ha llamdo especialmente la atención ha sido la del servicio hotmail.com.

Hago las modificaciones de las passwords en Ubuntu, reinicio el PC y que pasa? Pues lo previsto, que ya no me acuerdo del password. Si, es lo que hay: memória de pez. Bueno, pruebo los passwords hasta que me sale la captcha y le doy a "¿Has olvidado tu contraseña?". Pongo otra captcha nueva y me dice "Hemos mandado un correo a tu_direccion@hotmail.com para restablecer tu cuenta".... lo divertido es que el password del que no me acuerdo es de: mi_direccion@hotmail.com OWNED. Por lo visto tengo configuradas mal mis preferencias, y en el campo de "correo alternativo" me tanía a mi mismo. Me extraña que esto no dé error al configurarlo, pero bueno.

Una idea que me ha nacido durante el proceso, es que el usuario debería poder elegir un tiempo "de gracia" para aprenderse su nuevo password. Quiero decir, que durant un tiempo especificado, los dos password ( viejo y nuevo ) sean válidos. Esto podría suponer un problema de seguridad si se alargara durante mucho tiempo, pero en tiempos relativamente cortos sería beneficioso para el usuario. Recordar passwords mas o menos aleatorios y largos, no es fácil, y uno se equivoca. Apuntarlo debajo del teclado o en un post-it tampoco es una solución. Entonces este proceso, llamemosle de adaptación, podría servir para ayudar al usuario a aprender el nuevo password. Evidentemente esto debería ser algo opcional, ya que si nos roban la contraseña, nos interesaría cambiarla por otra inmediatamente, como es lógico. Creo que no es mala idea y que el usuario estaría más interesado en ir cambiando sus password sin miedo a no recordarlo, como me pasa a mi.

Saludos.

martes, 22 de diciembre de 2009

Hasta el año que viene!

Bueno, día 22. Yo ya tengo vacaciones a partir de YA. Mañana me voy de viaje y voy a estar desconectado durante un par de semanas. El blog que quedará parado hasta principios de enero. Y qué más decir? Pues que tengas unas felices fiestas, feliz navidad y próspero año nuevo!!!!

Saludos! Y a pasarlo bien!

Google Wave

Google Wave. La verdad que no me ha gustado demasiado. Después de ver aquellos videos de una hora de duración, y ver todas las cosas chulas que puede hacer el wave.... me ha decepcionado un poco, la verdad. La invitacion de Wave tardó mucho en llegar, cuando llegó casi nadie más tenía una cuenta, y ahora que ya hay más gente que tiene sus cuentas, casi nadie lo usa ( en mi entorno, digo ).

Tampoco han subido nuevos complementos, aparte de poner fotos, mapas y encuestas... y bueno, esperaba más, la verdad. Si alguien todavía no ha probado Wave y quiere una invitación, yo tengo más de 20 para repartir, así que dejen comentarios los interesados ;)

Espero que vaya mejorando el servicio, porque así como está ahora la verdad que no es nada del otro mundo. Para opiniones, los colores.

domingo, 20 de diciembre de 2009

Problema de las N Reinas

Bueno, hecho el post anterior, quiero subir un poquito de código sobre GA. El algorítmo es para solucionar el problema de las N Reinas. El enunciado es el siguiente:
Dado un tablero de ajedrez de NxX colocar N reinas sin que se maten entre ellas.

En principio N és igual a 8, ya que así representamos un tablero de ajedrez normal. Éste problema puede ser resuelto mediante backtracking, y es tremendamente más eficaz que con los GA, pero como la intención es practicar con los algoritmos genéticos, en problema de las N Reinas es suficientemente fácil para empezar. Hay 92 posibles soluciones posibles al problema dado, pero tansolo 12 soluciones únicas ( lo que significa que las otras són combinaciones de éstas mismas )

Implementación en Python del problema de las N Reinas

Disclaimer: Esto lo hago en mi tiempo libre, no tengo a nadie que me instruya ni nadie que me corrija mis fallos. Por esto mismo, seguro que hay mejores implementaciones del código. Pero invito ( o reto ) a que alguien corrija el código, lo modifique a su gusto y lo mejore, y haber si entre todos aprendemos algo =)

Si conces algún sitio donde se pueda encontrar buena documentación o datos relacionados sobre los GA, deja tu comentario please.

Algorítmos Genéticos

Los Algorítmos Genéticos ( o GA, siglas en inglés ) son un tipo de programación para encontrar posibles soluciones en un tiempo reducido y aplicando la ley de la Evolución de Darwin.

Definamos *posibles soluciones*: Los GA no nos tienen por que devolver el resultado óptimo sobre el problema propuesto. O sea, cuando tenemos un resultado de un algoritmo genético no tenemos modo de saber si éste se trata de un resultado óptimo o tan solo un máximo relativo. Podríamos comprobarlo si el resultado es el óptimo utilizando un método de cálculo tradicional, pero en algunos problemas esto exigiría un nivel muy alto de matemáticas ( del que desgraciadamente no dispongo ).
Como funciona por dentro, un GA? Pues bien. Básicamente sigue este sencillo algorítmo ( que su implementación, me temo, que no es tan simple... ):

Generamos una población inicial
Evaluamos la población inicial recién generada
MIENTRAS que la población no haya convergido hacemos:
Seleccionamos a los mejores indivíduos ( función evaluación )
Cruzamos los indivíduos ( función reproducción )
Mutamos algunos indivíduos según una probabilidad dada ( función mutación )
Calculamos la función evaluación de los nuevos indivíduos
END MIENTRAS
Imprimimos el resultado, ya que la población ya ha convergido


Para qué sirven los algorítmos genéticos? Bueno, pues para sacar soluciones a determinados problemas muy complejos, con un tiempo reducido y que no estemos buscando LA Enlacesolución, sinó una posible solución lo suficientemente buena. Se utilizan mucho para programar Inteligéncia Artificial, para toma de decisiones, rutas óptimas entre dos puntos, etc... ( más aplicaciones en el link de su wiki ). Mas documentación aqui y aqui.

jueves, 17 de diciembre de 2009

Tecnología CUDA

Me topé con este artículo de Neoteo y la verdad que me quedé muy impresionado. Hacía tiempo ya que conocía que se utilizaba las GPU's ( targetas gráficas, vamos... ) para hacer cálculos complejos en un tiempo récord. Empezé a ver el potencial cuando leí que unos chicos de Elcomsoft estaban usando el poder de las GPU's para romper el cifrado WPA de puntos de acceso con una eficacia inigualable, comparado con un procesador. Tal era la poténcia que se afirma que se podría reducir el ataque en 50 ordenes de magnitud ( no contrastado, la verdad... ) usando el poder de varias targetas gráficas en paralelo. Totaaal, que esto del uso de la GPU para hacer determinados cáculos, mola...
Pues he estado mirando un poco lo que ofrece nVidia con su tecnología CUDA y realmente es una pasada. Podemos descargar en su página web todo el SDK para desarrollar programar utilizando la tecnología CUDA. Todo de manera gratuíta y para Linux, MAC y Windows. Se programa en C, y en la misma página te dan la documentación necesaria para empezar.
Lo que mas me ha sorprendido ( y que la verdad no sabía ) son las prestaciones de la targeta gráfica que tengo, una nVidia 9600GT. 64 núcleos de procesamiento. Reloj de cada núcleo, 1625MHz. Lo que nos dá unos 99,125 GHz de capacidad de procesamiento en paralelo!!! Ideal para seguir jugando con lo poco que se de algortimos genéticos y para empezar a programar en C.

domingo, 13 de diciembre de 2009

Microsoft vs Linux

Igual pueda parecer un post un poco contradictorio con la tónica general del blog, pero quiero analizar un poquito la situación de Microsoft Windows Vs Ubuntu ( o GNU/Linux en general ).

Por una parte tenemos que el OS de Microsoft es utilizado en un 97% de los ordenadores personales. Y todos sabemos porque: compras un portátil y ya te viene con Windows instalado. A parte, a la gente no le gusta el cambio ( porque es así, no podemos negarlo ) y prefieren lo malo conocido que lo bueno por conocer.

Linux ( juntando todas las distribuciones ) ocupan una cuota de mercado de un 1%. Esto es realmente poco, pero yo no lo veo como un inconveniente, sino más bien una ventaja. Ubuntu tiene 5 años, y todavía está creciendo. Yo, personalmente, considero que todavía está verde, le falta seguir avanzando. El usuario común no lo sabe usar si no es con alguien que le guíe, hay muchos conceptos nuevos y mucha cosa que el usuario medio no quiere saber.

Pero como puede ser que teniendo una cuota de mercado tan baja, esto beneficie a Linux? Pues porque Linux tiene una comunidad muy fuerte, actualmente. Gente que tiene ganas de sacar las cosas adelante. Crear aplicaciones de lo más variopintas, libres y OpenSource. Esta comunidad no existe en Windows. Otra ventaja de tener una cuota de mercado tan baja, es que la mayoría de virus y ataques son pensados para tener una máxima difusión. Con linux esto es complicado, ya que las distribuciones funcionan diferente, no tienen los mismos procesos, etc... en cambio Windows es un entorno conocido, y altamente explotable. Ventaja para Linux, ya que así de momento nos dejan en paz y no estamos en el punto de mira.

Linux todavía és complicado para el usuario medio ya que (aunque cada vez menos) se tenga que utilizar la consola para arreglar determinados problemas o instalar algunas aplicaciones. Aparte, claro del hecho que es un OS muy diferente de lo que los usuarios conocen hasta ahora. Ésto vuelve a ser una ventaja, ya que ahora mismo dentro del mundillo de Linux sólo hay gente con ganas de aprender y de ver cosas nuevas. Gente que está realmente interesada en aprender lo que Linux puede ofrecerle. Yo lo encuentro muy positivo.

Linux me recuerda un poco a la salida del Firefox. Justo cuando salió, era una pasada. Iba mucho más rápido de IE, no tenía vulnerabilidades, podías añadir Add-On's. Pero se hizo popular. Cada vez pesaba más, iba más lento y salian más vulnerabilidades. Ahora sigue siendo un buen navegador, pero no destaca tanto como antes. Yo lo atribuyo a su alta popularidad: como más famoso, más interesados en joderlo o en encontrar vulnerabilidades. Creo que si Linux, de golpe, es usado por mucha gente, le podría pasar algo similar.

Dónde quiero llegar con todo esto? Bien, imaginemos por un momento que el 97% de la cuota de mercado fuese de Ubuntu, y Windows un 1%. Estoy seguro que empezarían a aparecer virus para Linux a diario. Synaptic se empezaría a llenar de aplicaciones inútiles o infectadas. Para encontrar documentación de calidad sobre temas "avanzados" sería una odisea, ya que la mayoría de posts o manuales estarían enfocados al usuario medio... y la verdad, no quiero que Ubuntu ( o linux en general ) se convierta en algo así.

Pues entonces, qué? Bueno, seguir avanzando. Seguir mejorando las distribuciones Linux, seguir aportando a la comunidad linuxera lo que se pueda. Ayudar a los que se inicien en linux y que realmente quieren aprender. Todo esto favorece a los usuarios de GNU/Linux.

Y yo tengo plena confianza que algún día se dará el cambio. Algún dia, Ubuntu, o cualquier distribución por el estilo estará preparada para ser usada por el usuario medio y habrá alcanzado un grado de madurez suficiente para que la mayoría de gente que utiliza Windows, se tire a Linux. La gente, cansada de los problemas de siempre, buscará soluciones y encontrará un Linux fácil de manejar y mucho más humano. Esperemos que, cuando llegue este dia, Linux esté preparado. Si queremos ver las cosas de manera positiva, podemos dar las gracias a Microsoft de estar "reteniendo" a los usuarios malos, desinteresados o sin ganas de aprender nada, y dejando que los realmente buenos se pasen al software libre. Algún día esto cambiará y todo el mundo podrá disfrutar de un OS libre y OpenSource, recordando de lejos los pantallazos azules a los que nos tienen tan acostumbrados.

Saludos!

sábado, 12 de diciembre de 2009

Alcance Libre, software libre y excelente documentación

Pequeña nota. Buscan un sitio dónde encontrar buena documentación sobre el mundo de Linux? Visiten Alcance Libre. Dispone de una documentación ejemplar y también es un buen blog para mantenerse al día. Muy recomendable!

Borrado seguro de ficheros TrueCrypt con Python

[Estoy jugando con un script en Python para borrar volúmenes TrueCrypt de manera segura, si te interesa, sigue leyendo]
Crees que estás siendo seguido por el FBI o tienes pruebas sobre la muerte de JFK que implican a Obama, el Dalail Lama i al Monstruo de las galletas o un colección estupenda de películas de dudosa reputación que no quieres que nadie vea?? Pues TrueCrypt es tu programa. Gratis, Open-Source y aplicando un nivel de criptografía prohibido en algunos paises ( EEUU, por ejemplo ) es una de tus mejores opciones para ocultar información en contenedores. How-To de TrueCrypt hay muchos, aquí listo un par:
Voy a explicar un poquito cómo funcionan los volúmenes virtuales para entender luego como podemos hacer un borrado seguro quedando los datos irrecuperables. Vamos al lío.
Cuando creamos un contenedor TrueCrypt ( veeenga, revisar los links anteriooores ), se genera un fichero en nuestro sistema, que contiene todo un sistema de ficheros. Cuando está desmontado, los datos están cifrados pero si montamos el volumen -poniendo el password, claro- , todos estos datos se descifran a medida que se van necesitando, en tiempo real. El caso es que los primeros 65.536 bytes de cada contenedor, son cabezeras de información, que indican a TrueCrypt cómo montar el volumen. Sin esta información TrueCrypt no tiene ni idea de cómo montar el sistema de ficheros. Vale, y? ¬¬

Supongamos que queremos borrar todo un container TrueCrypt, pero que éste tiene un peso de 4.7GB. Si lo borramos de modo seguro con el algorítmo Gutmann, por ejemplo, se harán 35 pasadas. Osea, se sobreescribirá la información 35 vezes, o lo que es lo mismo... escribiremos en disco 164GB de información, para sobreescribir todos los datos. Esto puede tardar un poquito, y podemos hacerlo mucho más rápido tal que así.

Solución. Un pequeño algorítmo en Python que nos machaca la cabezera de un volumen TrueCrypt con el algoritmo Gutmann. Util? no creo. Seguro? Mucho.

#! /bin/python
import os
#constantes
FILE='container'
#Creación de valores aleatorios
rnd = lambda : str(os.urandom(3))
print 'Generando datos de sobreescritura con la secuencia Gutmann...'
data = [ rnd(), rnd(), rnd(), rnd(), '\x55', '\xAA', '\x92\x49\x24', '\x49\x24\x92', '\x24\x92\x49', '\x00', '\x11', '\x22', '\x33', '\x44', '\x55', '\x66', '\x77', '\x88', '\x99', '\xAA', '\xBB', '\xCC', '\xEE', '\xFF', '\x92\x49\x24', '\x49\x24\x92', '\x24\x92\x49', '\x6D\x86\xD8', '\xD6\xDB\x6D', '\xDB\x6D\xB6', rnd(), rnd(), rnd(), rnd(), ]
print 'Abriendo el fichero...'
f = open(FILE, mode='r+b')
print 'Escribiendo datos...'
for loop in data:
>>>>f.seek(0)
>>>>f.write(loop*65536) if len(loop) == 1 else f.write(loop*21845)
print 'Cerrando fichero...'
f.close()
print 'Done!'

Tanta explicación para este cachito de código? Pozí. Pero esto solo es el principio, espero mejorar el algorítmo un poquito. Lo siguiente será crear un fichero protegido que contenga una lista de ficheros que borrar, y quitar así la variable FILE, automatizando el proceso un poquitín más.

viernes, 11 de diciembre de 2009

Nuevas propuestas, thumbs.db

Iniciativa de Nicola Rizzi, autor de la web "rm -rf /" ( muy recomendada ), creando una página que puede convertirse en un referente en el mundo Linux.
Nicola, ha creado una página web llamada thumbs.db, dónde se quiere agrupar los diferentes blogs que existen sobre Linux.
Este servicio está muy bien pensado ya que el usuario final tiene las webs linuxeras agrupadas en un mismo sitio y puede descubrir pequeñas joyas, o blogs con poco tráfico. Por parte de los que escribimos un blog para el aire, prácticamente, también nos beneficia, ya que podemos ser encontrados más facilmente. La comunidad Linux sale ganando!

Tanto si teneis ya un blog sobre linux como si quereis encontrar buen material, pasaos por la página, que seguro que encontrais algo de interés.

Saludos!

domingo, 6 de diciembre de 2009

Configuración de POSTFIX con DOVECOT + TLS

Hace unos dias ya que me he estado pelenado con lo que era una de mis espinitas: el servidor de correo en linux. Pues bueno, no voy a hacer una explicación de cómo se instala todo un servidor de correo mediante postfix, dovecot y añadiendo seguridad con TLS... en Internet hay muchísimos manuales. Lo que sí que voy a hacer es un listado de las webs que he visitado para conseguir poner online todo el tinglado ( y funciona!! ):

Primero vamos con la instalación básica de Postfix, que mejor que la documentación de Ubuntu:
https://help.ubuntu.com/8.04/serverguide/C/postfix.html

Segundo, instalación básica de Dovecot:
https://help.ubuntu.com/8.04/serverguide/C/dovecot-server.html

Una vez que teneis esto funcionando, es hora de "securizar" el tema.... para ello podeis seguir con los apartados de SSL y "SMTP authentification" de la misma ayuda de Ubuntu o seguir esta guias para postfix:
http://www.marblestation.com/?p=549

También, para los más valientes, aquí hay recopilada las documentación de la web oficial de postfix:
TLS Support
SASL Support

Este post ha quedado un poquito frío, pero es lo que hay. Para quien esté siguiendo los pasos de algún manualillo y esté atascado, me ofrezco para ayudar en lo que pueda ;)
Saludos!

domingo, 29 de noviembre de 2009

Restaurar GRUB2 [Probado] después de instalar Windows 7

Uno de los inconvenientes de instalar Windows en el equipo es que, infaliblemente, se carga el MBR. No es educado ni te pregunta si te gustaría continuar usando los diferentes sistemas operativos que ya se encuentran instalados en el sistema, no. Total, que una vez se ha instalado Windows con éxito, a restaurar GRUB's tocan.

Con el Grub v1.0 era bastante fácil. Metías el Live-CD, buscabas por internet un HOWTO ( internet está lleno ) ejecutabas unas 3 líneas en la consola, y el MBR restaurado y con entrada de Windows incluida y todo. Bueno, pues esto era antes. Con Grub v.1.97 BETA (sisi, has leído bien ) también llamado Grub2 no es lo mismo.
Me encontré que me saltaba una pantallita que me decía algo así como:
GNU GRUB 1.97 BETA
MINIMAL BASH-LIKE ...etc....
sh:grub>
Y punto. Parece como que quiere que le des las órdenes de manera manual, para saber qué tiene que arrancar. Mal vamos.

Lo típico, meter Live-CD, buscar un HOWTO, ejecutar de todo y al final sin una solución. 4 horas más tarde (literalmente) y después de patearme medio Internete, encontré algo que me funcionó. Es lo siguiente:
  1. Iniciamos Ubuntu con Live-CD. Lo vamos a necesitar conexión a Internet y un CD vírgen.
  2. Ir a la página web de Super Grub Disk. Descargar la .ISO de SG2D CD-ROM ( clic aquí )
  3. Tostar la .iso descargada ( después de descomprimirla ) en un CD con Brasero
  4. Reiniciar el PC e iniciar desde el CD
  5. Nos saldrá un menú y elegimos la primera opción, que reza algo así como "Start Linux". Bien, os cuento que acabamos de hacer. SGD se encarga de simular que tienes GRUB y nos carca la partición Linux instalada. Ésto nos facilitará mucho las cosas cuando querramos restaurar el Grub.
  6. Pues aquí yo hice las mil y una pruebas. Probad con los siguientes comandos:
$ sudo upgrade-from-grub-legacy
$ sudo fdisk -l #Aquí vereis que disco es el de Linux. En mi caso és "sdb"
$ cd /
$ sudo grub-install --root-directory=/ dev/sdb
$ sudo update-grub
$ sudo update-grub2

En mi caso y ejecutando éstos comandos acabó funcionando el tema. El GRUB reconoce la versión de Windows instalada y automáticamente crea una entrada en el fichero de configuración. Quitar el CD, reiniciar y ala! Sistema operativo arreglado.

Y ahora un poquito de reflexión. Haber, la distribución Ubuntu 9.10 salió con el objetivo de mejorar el tiempo de inicio del sistema. Pare ello hicieron varias cosas, entre ellas poner el nuevo Grub2 y el nuevo sistema de ficheros ext4. Esto está muy bien, solo por el detallito de que Grub2 en realidad es Grub 1.97 BETA. El motivo por el cual sacaron este nuevo Grub, es el anterior no tenía compatibilidad ( o igual surgían problemas, no lo se exactamente ) con ext4. Un negativo para los chicos de Ubuntu. Esperemos que próximamente saquen la versión 2.0 de Grub y que aumenten la documentción al respecto.

Si tienes preguntas o si continuas teniendo problemas, dejen tu comentario!

Saludos!


Nota: Revisar el comentario de -ky0l3r-!!

Grep, filtrado inverso o Cómo Ver las línea que NO contienen la palabra buscada

Alguien ha visto el fichero de configuración de Dovecot ( servidor POP3 )? Són, aprox. unas 1300 líneas. Afortunadamente casi todas vienen comentadas.
Que pasa si queremos ver *SOLO* las líneas que están descomentadas? Pos tal que así:

$ cat fichero_configuracion | grep -v '#'

sábado, 28 de noviembre de 2009

Primera impresión de Windows 7 x64

De acuerdo, de acuerdo! Posts como estos hay a patadas en Internet. Ya deben de estar cansados de leer "primeras impresiones". Pero al final éste es mi blog ^^. No lo voy a hacer muy largo, sinó algo resumidito:
Proceso de instalación: Horrible. Soy injusto, lo se, pero me explicaré. Arranco desde el CD-ROM, cargan dos barras de proceso, y el sistema se me queda con un fondo de pantalla bastante agradable, con el puntero del ratón y nada más. Ni un aviso, ni un "espere", ni nada. La unidad lectora deja de leer, y la cosa no tira "palante". Pues resulta que a los DIEZ MINUTOS, el proceso de instalación revivie y continua. Cutre, cutreee. El proceso de instalación en si és muy fácil, muy intuitivo y lo podría hacer un niño de 3 años ( al que le guste esperarse 10 minutos viendo *nada* en la pantalla ¬¬ ). Como ya es costumbre en las instalaciones de Windows, se carga el MBR de Linux... ( que con el Grub2 estoy sudando sangre para restablecerlo :S )

Una vez instalado todo funciona muy fino. El inicio y el apagado són bastante rápidos. Han cambiado las interfícies del usuario para mejor. Es diferente, habrá que acostumbrarse, pero parecen prácticas. El sitema sigue sin reconocer los discos duros con ext3/ext4... tampoco me esperaba que funcionara, la verdad. Los drivers todos instalados a la primera todo parece "correcto". Las instalaciones con el WindowsUpdate van muy bien y -como toda la vida- uno tiene que reiniciar el PC una vez instaladas. Hay cosas que no cambian.

La impresión es buena. Me gusta el nuevo S.O. Ya veremos como responde dentro de un par de semanitas.

Por favor, dejen sus opiniones sobre el nuevo Windows 7. Te ha gustado? Que és lo que más te gusta? Y lo que menos?

viernes, 20 de noviembre de 2009

Compartir terminales en linux [HOWTO]

El problema? Bueno, pues imaginemos que tenemos a un compañero que se tiene que conectar a nuestro servidor mediante SSH y que debe tener privilegios de superusuario. Cómo controlarlo? Pues lo que haremos será compartir su consola, así podremos ver todo lo que está haciendo en tiempo real. El resultado final será una ventana bash donde veremos todo los comandos que está ejecutando y sus resultados. Y si nosotros escribimos en ésta consola compartida, el también lo verá. Vamos allá:

Primero creamos el usuario que utilizará nuestro compañero y lo ponemos en el grupo de administradores.
$ sudo adduser foo
$ sudo adduser foo admin

Para poder ver lo que tiene dentro de su sesión abierta, utilizarmos el comando screen ( man screen ). Es un comando muy potente y os dejaré un par de links de información vária, para que veais como se utiliza. Para ello crearemos un script que se ejecutará cada vez que el usuario inicie sesión en una consola ( o mediante SSH )

Antes de nada debemos ejecutar los siguientes comandos para permitir compartir las consolas mediant el comandos "screen":
$ sudo chmod u+s /usr/bin/screen # Estamos dando permisos SUID al comando screen. Esto puede tener graves implicaciones de seguiridad. Úsese bajo su propia cuenta y riesgo.
$ chmod 755 /usr/bin/screen

Y vamos com el primer script:

##SCRIPT .autoconfig

#Creamos un nombre de fichero mas o menos aleatorio.
tmp_file_name=`date | md5sum | awk '{print $1}'`
# Para comprobar si existe ya una sesión de "screen" ya abierta para el usuario que queremos monitorizar haremos una búsqueda en la lista de procesos. PEEERO ( siempre hay un pero ) como el proceso se llama "screen", cuando buscamos nos encuentra también "gnome-screensav". El script contempla el hecho de que este proceso se esté ejecutando.

#Guardamos el resultado de la búsqueda de "gnome-screen" en la lista de procesos dentro de un fichero
ps -el | grep `id $USER -u` | grep gnome-screen > /tmp/$tmp_file_name

#Contamos la líneas del fichero
a=`cat /tmp/$tmp_file_name | wc -l`
#Si el número de líneas és igual a 1 significa que el proceso está ejecutándose
if [ $a -eq 1 ]; then
#Ahora hacemos una búsqueda del proceso "screen" para saber si ya existe o no
ps -el | grep `id $USER -u` | grep screen > /tmp/$tmp_file_name

#Contamos las líneas que hay en el fichero
a=`cat /tmp/$tmp_file_name | wc -l`

#Si Hay dos líneas significa que sólo el proceso GNOME-SCREEN se está ejecutando
if [ $a -eq 1 ]; then

#Ejecutamos el comando screen
screen -a

fi
#Si resulta que el comando GNOME-SCREEN no está funcionando, entonces
else

# Volvemos a guardar el resultado del comando grep en un fichero temporal
ps -el | grep `id $USER -u` | grep screen > /tmp/$tmp_file_name
#Contamos el número de líneas que hay en el fichero
a=`cat /tmp/$tmp_file_name | wc -l`
# Si el resultado es zero, significa que no existe ningún proceso screen arriba para el usuario.
if [ $a -eq 0 ]; then
#Por tanto, llamamos a screen
screen -a

fi
fi
#Finalmente borramos el fichero temporal que habíamos creado
rm /tmp/$tmp_file_name


Para crear el script hacemos lo siguiente:
$ sudo vim /home/foo/.autoconfig #Creamos un fichero oculto
# -pegamos el script anterior-
$ sudo chown foo:foo /home/foo/.autoconfig #el usuario y el grupo del fichero
$ sudo chmod u+x /home/foo/.autoconfig #asignamos permiso de ejecución para el usuario

Bien! Ya tenemos el script creado y listo para funcionar. Ahora queremos que éste script se ejecute cada vez que FOO inicie sesión en el sistema. Para ello añadiremos una línea al fichero .bashrc
$ vim /home/foo/.bashrc
# añadimos una línea al final que ponga
"./.autoconfig" #sin las comillas, claro

Por último nos queda configurar "screen". Con el script lo entendereis muy fácil:

#FICHERO CONFIGURACIÓN SCREEN .screenrc
#Activamos el modo multiusuario
multiuser on
#Configuramos el usuario que podrán visualizar la consola compartida
acladd inedit

Para creaer el fichero de configuración hacemos lo siguiente:
$ sudo vim /home/foo/.screenrc #Creamos el fichero
# -pegamos el fichero de configuración anterior-
$ sudo chown foo:foo /home/foo/.screenrc #Cambiamos al propietario del fichero

Estupendo, ahora ya podemos hacer la prueba. Cómo? Muy fácil.
Abrimos un terminal, con nuestro usuario actual (inedit):
inedit@wally:/$ su foo #cambiamos de usuario. Ponemos el password de foo
foo@wally:/$ echo hola #ejecutamos algo...

Abrimos otro terminal y ejecutamos lo que sigue:
inedit@wally:/$ screen -r foo/ #muy importante poner el nombre de usuario del que se quiere ver la consola compartida acabado con una barra. Ej: usuario/ foo/ ...

Señorees. Ya tenemos lo que queríamos. Escribe lo que quieras en una consola que te va a aparecer automáticamente en la otra. Espero que todo esté claro. Si tienen dudas, problemas y demás, no duden en preguntar!

Para profundizar. Links sobre screen:

martes, 17 de noviembre de 2009

Microsoft TechNet en el Parc Bit [II]

Bueno, que me lio y después no hablo de lo que quiero: Microsoft TechNet.
Las presentaciones todas han estado muy bien. Decir que es la primera vez que asisto a un innovation tour, y la verdad que me he quedado bastante impresionado. TODAS las demos, repito TODAS, han sido perfectas. Ningún fallo, todo exactamente calculado y no ha surgido ningún problema, todo muy profesional. Vamos allá:

La primera Sesión de Windows 7 al principio un poquito flojita. Cosas muy a nivel de usabilidad del usuario, pero poco interesantes. Solo mejoras, todo muy visual y tal... hasta que hemos llegado al Problem Steps Recorder, ya haré un post dedicado para esto, que lo que encontrado muy interesante. Básicamene un sistema para "grabar" los pasos que sigue el usuario normal hasta que le sale un error. Básicamente hace un informe a base de capturas de pantalla con las acciones del usuario. Y después ha venido el VHD, ala! Otro post dedicado solo para esto, que también lo he encontado estupendo. Básicamente són ficheros que actuan como discos duros virtuales, por lo que hacer una cópia del SO es tan facil como copy-paste y puedes hacer las pruebas que quieras. Aparte nos han explicado el sistema de copias diferenciales y así uno se ahorra copiar todo el S.O.

Windows 7 y Windos Server 2008 R2 Better Together. Nuevos tipos de VPN's, libres de errores por parte del usuario si existe un problema como una desconexión temporal. Gestión de los equipos que se conectan a las VPN's mediante reglas en el Active Directory, y demás.

No me he enterado de nada. Novedades en virtualización con Windows Windos Server 2008 R2 System Center. Básicamente presentaban soluciones de virtualización en entornos críticos, y los sitemas de gestión de los aquipos virtualizados, todo junto con el directorio activo y todo lo demás.... bueno, esto está bien si sabes de que te hablan y tienes experiéncia sobre el tema... si no, pues mira, muy bien, nosé...

Y después de venir de papear: Chema Alonso. Nos ha recibido con unos vídeos de Nico Demo :). Vale, por que negarlo. QUERÍA conocer a Chema. Desde hace tiempo ya que le seguía en su blog y cuando me enteré de que vendría a Mallorca a hacer una presentación me encantó. Es un showman. Sabe como hacerlo. Tiene estilo, suelta las coñas cuando toca y consigue que se mantenga la sesión con un nivel de interés muy alto. Se ha pasado hora y media volando. Novedades de Seguridad en plataformas Windows y Forefont. Nos ha explicado y hecho un ejemplo de uso de BitLocker, cifrando una unidad USB y protegiendo todo su contenido. Bueno, vale, muy bonito. Si solo usas productos de Microsoft. Es nativo en W7 y Vista, en XP no, pero tiene compatibilidad. En ningún momento se ha contemplado la posibilidad de descifrar los datos en un MAC o en Linux. Los datos deben ser seguros, y pero accesibles, digo yo. Nos ha hecho un poco de história, como se fueron desarollando los kernels de los diferentes Windows y tal, ha sido interesante. Aún así, mientras explicaba el kernel v6.0 de Windows Vista igual tenía comentarios un poco ácidos. Ha hablado sobre las dichosas ventanitas del UAC, que te piden autización para ejecutar un programa ( o librerías ) en modo administrador de sistemas. Bueno, seguro que para administrar sistemas igual está muy bien. Pero haber, usuarios NORMALES. Osea, mancos. Gente que no sabe de informática. Ve un cartelito y si pulsan NO, la aplicación no se abre, si pulsan SI, la aplicación se abre, ellos quieres abrir la aplicación ¬¬.... seguro que los probres lusers se preguntan: por que deben haber puesto un cartelito que ponga NO, los chicos de Microsoft?
Pues no, Chema a defendido que UAC es lo mejor, y que pobre desgraciado el que lo desactive o que no lo use. Dice que es un sistemamuy avanzado, años luz de los demás sistemas operativos. Discutible. Aparte ha preguntado haber quien entra en su portatil con la cuenta de Administrador, como norma. Dice que esto está mal y que sólo se debería usar para realizar tareas puramente administrativas y que si, además, tenemos desactivado el UAC, pero que pero. Yo no se W7, pero el XP te crea una cuenta de Administrador en el proceso de instalación con el nombre que tu le dices. Viene así por defecto. Nosé, igual hay alguna incoherencia aquí.
En algunas cosas era un poco exagerado o no tenía prespectiva, pero estamos en Microsoft TechNet, coño! Esta gente está vendiendo sus productos y soluciones, dejémosles hacer su trabajo.

Resumiendo: toda la información muy bien presentada, las demos un 10, los contenidos profundos y las temáticas interesantes. Igual he sido un poco crítico con la exposición de Chema Alonso pero todo es crítica constructiva y tenía las espectativas muy altas. Me ha gustado mucho.

Nota: Links de interés por parte de Hispasec, vía subscripción una-al-día. Creo que dan una visión más realista sobre el UAC:

Microsoft TechNet en el Parc Bit [I]

Hoy he ido a la Microsoft TechNet en el Parc Bit.
Microsoft? Pero haber, todas tus entradas en este blog son sobre Linux, no eres anti Microsoft? Pues no, nada mas lejos de la realidad.
Mi primer contacto con los ordenadores fué con un portatil con W95, yo debía tener 5 o 6 años de edad cuando lo probé, por lo que no me acuerdo de las especificaciones del portatil. Seguro que mi reloj de pulsera és más potente que aquel portátil.
Después llegó el primer ordenador de sobremesa, con W98. Trasteaba por todas las opciones y estaba más tiempo roto que funcionando. Llegó el primer módem de 64K, y una partición en el sistema con Windows NT porque "el W98 nunca funciona y yo así no puedo trabajar" ( palabras de mi Señor Padre ). Pobre iluso. Evidentemente también me cargué el W.NT.
Después pasamos al Windows XP, mi padre compró 5 licencias originales el Pro y lo instalé en el PC de casa. Desgraciadamente rompía el ordenador cada tanto y tenía que reinstalar el sistema operativo. Un dia me dijo que había acabado las 5 licencias y que debía llamar a Microsoft. Pensé que había hecho algo malo (debía tener 14 años, o por ahí), no dije nada e instalé el software con una licencia de las que corren por Internet.

Realmente Windows XP estaba bien. Pero fallaba, de vez en cuando saltaba algún pantallazo azul. W.XP con SP2 ya era otra cosa. Era muy un muy buen sistema operativo. Funcionaba muy bien, pero cuando sacaron el SP3, ya era perfecto. Para mi Windows XP SP3 es uno de los mejores sistemas operativos con los que he trasteado. A nivel de usuario, claro.

Aún así, y no se porqué siempre que pienso en Microsoft, pienso en algo oscuro. Como que algo no va bien. Después de que saliese Vista era un sistema operativo super impopular. Yo no digo que Vista sea un mal sistema operativo, que lo és , sólo que no es nada amigable con el usuario. Vale, mucha seguridad incluida y mucha pollada, pero no es amigable. Parece que quiera joderte cada dos por tres. Considero el Windows Vista como un fracaso por parte de Microsoft porque no conozco a ningún usuario de "a pié" que le guste Vista.

Y conocí Linux. Hacía tiempo que había intentado instalar GNU/Linux y después de 2 dias descargando el CD y tostarlo, lo intentaba instalar y aquello fallaba por todos sitios. No funcionaba nada bien. Lo probé varias veces. Suse, Mandrake, Debian... o el proceso de instalación no acababa, o tenía algún problema con drivers, o el apartado gráfico no tiraba... dependía de un entorno gráfico porque Windows es lo que siempre había conocido. Total, que un desastre.
Pero hará ya un año que probé Ubuntu 8.04, y me gustó. Primero lo tenía virtualizado en VMWare y Windows XP como host. Después lo instalé en un HDD viejo que tenía de poco tamaño para ver si funcionaba, y ahora hace ya 4 meses que no utilizo productos de Microsoft. Aún así no recomendaría instalar Linux a ningún familiar o amigo a quien no le guste la informática. Almenos Ubuntu ( de momento ) está todavía demasiado verde. Pero a mi que me gusta trastear, Ubuntu me encanta. Puedo instalar todo lo que se me antoja, ya ni me acuerdo de lo que es un CRACK, ni un virus, ni nada por el estilo. Con Ubuntu puedo "jugar a que sé informatica" y aprender un montón.

Pero la historia de Microsoft no acaba aquí, con un fracaso de Vista. Windows 7 tiene que salir y tenía muchísimas ganas de probar la versión final (las RC no me fueron muy bien). Y estoy impaciente esperando las licencias para estudiantes ( que lleguen YA, por dios! ). Después de Vista estaba bastante decepcionado con Microsoft pero con W7 se ha ganado otra oportunidad. Ahora habrá que ver si cumple con las espectativas.

Resumiendo. Todo depende de cómo funcione W7, pero todo apunta a que siempre tendré una partición con una distribución de Linux ( de momento será Ubuntu ) y otra partición con W7 instalado ( con licencia de estudiante, si es posible ).
Esto tiene una segunda parte, nenes. Para explicar mi experiencia en la Microsoft TechNet, que es a lo que iba.

domingo, 15 de noviembre de 2009

Borrar kernels antiguos

Cuando actualizamos el sistema, algunas veces se insala un nuevo kernel. Linux guarda los kernels antiguos y podemos acceder a ellos mediante el menú de seleccion de GRUB. Y, por que deberíamos iniciar el sistema con un kernel antiguo? Pues puede que el nuevo kernel recién actualizado no funcione, o dé algún tipo de error. Con los nucleos antiguos tenemos la ventaja de que no nos quedaremos sin ordenador si un nuevo kernel falla. Pero claro, cada versión del kernel pesa, y tener 5 instalados y solo usar uno, también és tonteria.
Puede parecer que borrar un núcleo sea una tarea complicada y peligrosa. No lo és. Utilizando aptitude és extremadamente facil.
Una vez explicado esto os remitiré a un estupendo post de guia-ubuntu dónde explican estupendamente cómo borrar los kernels antiguos.

Consejo: No borreis TODOS los kernels antiguos, ya que si teneis algún problema con el kernel nuevo, os vereis en un aprieto. Siempre es bueno tener un núcleo de "repuesto" por si algo pasara. ( no borres el kernel más nuevo si no sabes exactamente lo que estás haciendo!! )

PD: Éste post no pretende repetir contenido ya dispoible en Internet ( y muy bien explicado ), tansolo pretendo hacer saber que la opción de borrar el kernel existe a toda aquella gente que todavía no lo sabe :-)

sábado, 14 de noviembre de 2009

Nuevo teclado


Teclado nuevo! Me he comprado un teclado de MAC completo. Muy bonito, elegante y altamente funcional ( literalmente, incluye hasta F19! ). Yo estaba usando un teclado Genius, del primer ordenador que tuve. Unos 10 anyos debe tener el teclado! Tiene un gran valor sentimental, pero como cada vez tengo menos sentimientos, he decicido reemplazarlo por esta nueva belleza metática y blanca. ^^ pero ya tocaba cambio.

Buscando en el historial

Para acabar de completar el post del otro día sobre atajos en bash, vamos a ver la búsqueda inversa del historial. Para activar és tan fácil como pulsar Control+R en la consola y se abrirá una ventana tal que así:

Y ahora tan solo tenemos que ir escribiendo el comando que queremos buscar. Por ejemplo, el último manual que busqué:

Delicious.com


Seguro que has visto este icono antes. Esto es Delicious, te explico lo que es.
Delicious és una pagina web que se encarga de guardar tus marcadores ( favoritos para los usurios de IE ) en la nube. Puedes consultar tus links desde cualquier otro PC con conexión a internet tal que así:
http://delicious.com/inedit00
En principio el perfil de cada uno es público. Lo que te da total libertad de ver tanto tus marcadores como los marcadores de tus conocidos. Esto es una gran ventaja ya que puedes revisar tus links en un sitio inseguro ( cyber, por ejemplo ) sin tener que escribir tu password. ¿Que tienes algunos links que no quieres que vea todo el mundo? (pillín) Pues marcas el enlace como privado y solo podras verlo accediendo a tu cuenta. Aparte de tener un buen sistema de tags, también puede mandar los marcadores a tus amigos y ellos los recibirán en su bandeja de entrada de la cuenta de Delicious.

Aparte existe el add-on para firefox que va de maravilla. Si quieres tener tus marcadores siempre disponibles, Delicious es tu web.

Life is too short to listen to bad music!



Y es cierto. Con la de buena música que hay en el mundo, siempre que ponemos la radio suenan los mismos temas, siempre nos bombardean con publicidad en la tele sobre el nuevo CD de Bustamante y polladas por el estilo. Hay demasiada basura. Pero tenemos Jango.com.

No lo conoces todavía? Pues macho, create una cuenta YA. Buscas un artista que represente el estilo de música que te gusta, lo añades como Estación y ala, música de la que te gusta a todas horas. Jango se encarga de ponerte música del artistas o de grupos parecidos al artista que tu has escogido. Además que tiene un sistema de votación de la música muy simple: no volver a sonar, me gusta, me gusta mucho. Y así, con el tiempo consigues una emisora de música a tu medida. Sin publicidad ni basura comercial ( a menos que la basura comercial te guste ). Además que salen grupos emergentes a los que puedes votar. Ideal para conocer música nueva.

Link: www.jango.com

viernes, 13 de noviembre de 2009

Google Analytics

Ya estoy registrado a otro servicio de Google. Google Analytics. Para ver las visitas que tengo en el blog ( me gustaría saber si existen, estas visitas... ) y demás. En principio ya está montado y tengo que esperarme un rato para que el sistema arranque. Mañana si esto veré si todo ha quedado operativo y funcionando. Aqui una de las muchas notas que corren por Internet de cómo configurar blogger con Google Analytics. No me molestaré en copiar una información que ya está en la red, que para eso creo que inventaron los links.

Por cierto, Google mola. Mucho.

Copiar un fichero a muchas carpetas [Linux]

Bien señores. Queremos copiar un fichero determinado en el /home de cada uno de los usuarios del sistema. Si tenemos dos usuarios, ejecutaremos dos comandos. Si tenemos doscientos mejor crear un script. Se puede mejorar bastante, pero tampoco quiero complicarlo demasiado:
#Variables configurables, el directorio y el nombre del fichero
DIR="/home"
FICHERO="fichero1"
#Hacemos un for a partir de la lista que nos sale del comando LS -A
for n in `ls -a $DIR` ;do
#Condición para omitir los directorios "." y "..". Comprobación de que $n sea un directorio.
if !( [ "$n" = "." ] || [ "$n" = ".." ] ) && [ -d ./$DIR/$n ] ;then
#Mostramos un mensajito
echo "Copiado ar1 a ./$DIR/$n"

#Copiamos el fichero
cp $FICHERO ./$DIR/$n
#Cambiamos los permisos. En nombre de usuario y su directorio en /home deben ser los mismos
chown $n:$n ./$DIR/$n/$FICHERO
fi
done;
Link sobre loops en BASH

Borrar los ficheros descargados por aptitude

Cuando aprendes Linux, parece que todo es magia. Ejecutas un "sudo apt-get install vim" y te instala el solito el VIM. La óstia, tú. Te sale un cartelito que te diche "amo, tengo 200MB de actualizaciones para descargar, ¿descargo o me espero?" todo super educado y muy bien, casi perfecto.
Hasta que me pregunté "¿adonde van?", osea, ¿adonde van todos los paquetes que se descargan para ser instalados? Yo, muy iluso pensaba que se almacenarían en /tmp o algo por el estilo y que se borrarían ellos solitos. No podía estar más equivocado. El sistema te "los guarda"!! Que amable que es Linux. El problema es que nunca te pide si quires borrarlos. Y claro, uno se lleva sorpresas:

$ls -la | wc -l #Contar el número de ficheros que hay en el directorio actual
>Resultado? 272 paquetitos :)
Totaaaal, que vamos a borrarlos. Cómo? Pues dos opciones:
$ sudo rm /var/cache/archives/*
O un modo más elegante. Ya que aptitude los instala, pues que aptitude los limpie:
$ sudo aptitude clean

(si, todo este maldito post tan largo por un comando tan corto como éste! si! i qué?! ) :D:D

Otra de atajos!

Me gustan los atajos. Tienes que acordarte de mas combinaciones, pero trabajas maś rápido. Aquí van un par así, rapido:
  • Control+D= Lo mismo que escribir "exit" y Enter, en el terminal. Que sale, vaya.
  • Control+U= Borra todo lo que esté a la izquierda del cursor, AKA si están al final de la línea, te lo borra toda. ( para ir al final pulsar la tecla FIN ¬¬ )
  • Control+W= Borra solo la palaba que se encuentra a la izquierda del cursor.
  • Shift+Insert: Pegar. Lo mismo que Control+V en cualquier parte del mundo menos en el bash. A saber por que.
  • Shift + Supr: Copiar. Copia el texto que tengas selecionado.
  • Control+L: Limpia la pantalla. Lo mismo que ejecutar un "clear"
  • Tabulación: Magia en estado puro. Autocompleta nombres de carpetas, ficheros, etc...

jueves, 12 de noviembre de 2009

Aprendiendo atajos en bash

Trabajando en la consola todo el dia. El internet VULEVER a fallar! Sabes que hace 6 minutos has hecho un ping para mirar si tenías Internet y ahora toca escibir de nuevo el comando... pero como qualquier vago buscaremos algún sistema más rápido y fácil para ejecutar cualquier comando que ya hayas picado.
#Ejecuta el último comando ejecutado en la consola. (Lo mismo que pulsar la tecla de dirección hacia arriba, vaya )
  • $ !!
# Y aquí viene el bueno. Ejecuta el último comando que empieze por la letra ( o letras ) especificadas. En el ejemplo el último comando en ralidad nos ejecuta "ping tera.es" de nuevo.
  • $ ping terra.es
  • $ cp ar1 ar2
  • $ echo $USERNAME > ar1
  • $ !p
Cuidado con ejecutar "!r" porque a saber lo que borrais!!
P.D: nivel de frikismo medio-alto. Si clasificarías este pots de interesante, buscate una novia! ;)

Creando ficheros con dd

¿Alguna vez has necesitado un fichero que pese bastante ( por ejemplo 1GB ) y has tenido que hacer una copia de una pelicula para hacer tus pruebas? Pues este es la manera luser de hacer tu curro. Entre muchas de las utilidades que tiene el comando dd existe una que es el creado de ficheros del tamaño que tu le inidicas. Veamos un ejemplo:
$ dd if=/dev/zero of=fichero_generado bs=1M count=10
Y ya tenemos creado un fichero de 10MB en nuestro directorio. Amén.



La verdad que no tiene mucho misterio, pero aún así lo explico:
  • if= Input File. Leeremos de /dev/zero, que nos devuelve "zeros"
  • of= Output File. El fichero resultante, con la ruta y el nombre que queramos.
  • bs=N Escribe los N bytes especificados. Si ponemos 1 será un byte. Podemos usar expresiones como 1K, 1M, 1G...
  • count=N Escribe N vezes los bytes especificados en bs
También podemos rellenar nuestro fichero con datos aleatórios. Para ello usaríamos como entrada /dev/random o /dev/urandom. Diferencia? Random ofrece unos numeros aleatorios más perfectos que URANDOM, pero es mucho mas lento. MUCHO.

Ficheros del sistema: .bashrc

Hoy toca .bashrc. Éste fichero se encuentra en el /home de cada usuario y contiene la configuración básica de bash. El fichero ya contiene una série de configuraciones, pero nosotros podemos incluir las nuestras personalizadas. Ya, ya... pero espera. Qué és esto de configurar bash? Para que sirve exactamente? Pues muy facil, aquí podemos especificar que comandos queremos que se ejecuten cada vez que iniciemos una consola. El ejemplo mas claro es definir los alias. Yo tengo un alias definido cómo:
$ alias la='ls -la'
Ahora para ejecutar "ls -la" es suficiente escribir "la". Pero también podemos darle usos diferentes. Por ejemplo crear un fichero de los usuarios que se conectan a la consola. Podríamos añadir una línea tal que así:
$ echo `date` -- LOGNAME:$LOGNAME TERM:$TERM >> /var/log/logins
Y creariamos, evidentemente, un fichero que nos almacene los logins con los siguientes comandos:
$ sudo touch /var/log/logins
$ sudo chmod o+w /var/log/logins
Esto no son más que ejemplos. También hay al fichero .bash_logout que se ejecuta cada vez que cerramos la consola. Si el fichero no existe, lo puedes crear tu con total libertad.
Animo a que alguien a que cree un script que guarde todos los comandos que haya ejecutado un usuario en una sesión por la consola. Esto si, que no me guarde comandos repetidos ;)

RHCE

RHCE Red Hat Certified Engineer Linux. Pues nada, que ahora me ha dado por consultar el manual para prepararse e ir al examen de RHCE. Muy interesante, la verdad. De momento no tengo intención de aprender para aprobar, sino aprender por aprender. 755 páginas de pura administración de sistemas, pero al leer los contenidos todo queda muy bien explicado.
La verdad que leyendo el manual me doy cuenta de todo lo que he aprendido en un año sobre Linux, y todo lo que nos han enseñado en el módulo de grado superior. También entiendo que se "nada" y que aún me queda muchísimo para aprender y para llegar a ser mas o menos bueno en la administración de sistemas... pero la verdad que estoy disfrutando mucho aprendiendo.

Considérese un manual avanzado de Linux, con muy buenos contenidos y muy buen material, siempre enfocado a la parte práctica y funcional de los conocimientos ( osea, aplicables al mundo real ).
Actualización: os dejo un link sobre System Adminstration Guide
12 dias sin decir ni pío. Haber con que sigo...

domingo, 1 de noviembre de 2009

Instalando el servidor FTP vsftpd [II]

"Segundas partes nunca fueron buenas"
Bueno, ampliamos la primera parte. Ahora nos toca configurar el servidor vsftpd para que se adapte a nuestras necesidades. Para ello modificaremos al archivo que se encuentra en /etc/vsftpd.conf. Comentaré un poquito las lineas más interesantes de configuración, aunque el fichero viene perfectamente comentado ( en inglés )
  • listen: Si quieres que el servicio escuche como demionio o si prefieres desactivarlo para configurarlo con el superservidor inetd.
  • anonymous_enable: Para activar/desactivar el usuario anonymous
  • local_enable: Para que los usuarios del sistema puedan hacer login con sus contraseñas
  • wirte_enable: Para que los usuarios puedan subir ficheros en sus directorios y modificar/borrar.
  • anon_upload_enable: Para que los usuarios anonimos puedan subir ficheros. Debe estar activado el usuario anonimo y el permiso de escritura, comentados anteriormente.
  • ftpd_banner: Para mostrar un banner ( mensaje de entrada ) al cliente que se conecte.
  • chroot_local_user: Enjaulamos a los usuarios en su propio directorio home. No conviene que los usuarios puedan "pasear" libremente por los directorios del sistema.
Básicamente estas són las opciones básicas de configuración del servidor vsftpd. "Fel free", como dicen los ingleses, de modificar e investigar que significan todas las demás opciones para configurar el servidor.

Instalando el servidor FTP vsftpd [I]

Practiquilla. Instalar servidor FTP tocan. Cual de ellos? Pues hay mucha variedad, pero hoy instalaremos vsftpd. Por que? Como ya deberíamos saber sabemos FTP es un protocolo inseguro, lo que significa que el usuario y password viaja a través de la red en texto claro ( sin cifrar ). vsftpd permite securizar el servicio. Ala, al lío.
  • $ sudo aptitude install vsftpd -y
Para comprobar el estado del servidor podemos ejecutar la siguente orden:
  • $ sudo /etc/init.d/vsftpd status
  • >vsftpd is running
Bueno, ahora tenemos un servidor instalado. Nos podemos conectar con los siguientes comandos:
  • $ ftp localhost
  • Connected to localhost.
  • 220 (vsFTPd 2.2.0)
  • >Name (localhost:user): ftp
  • 331 Please specify the password.
  • >Password: lo_que_quieras
La configuración por defecto del vsftpd es de servidor con una conexión anonima. Para especificar que nos queremos conectar con el usuario anonimo podemos hacerlo de dos modos.
  1. En usuario poner "anonymous" o más rápido todavía..
  2. ... en el usuario poner "ftp"
Así el sistema sabe que se trata de una conexión anónima. El password, al ser una conexión anónima, puede ser cualquier cosa. En servidores de publicos se acostumbra a utilizar como password la dirección de correo electrónico propio.

Bien! Ya tenemos instalado nuestro servidor vsftpd. En la segunda entrega personalizaremos un poquito más el servidor.

Comprobar fingerprint en SSH

Cuando iniciamos una sesión SSH contra un servidor por primera vez, nos sale un cartelito parecido a esto:

Y nos pregunta si el fingerprint és correcto. Ya saben, para preveer ataques MITM o simplemente para estar seguros que vamos a conectarnos al servidor correto. Pero como podemos verificar si el fingerprint es el correcto? Easy.
El fingerprint se obtiene aplicando una función hash sobre clave pública del servidor, osea que en el PC servidor podemos ejecutar la siguiente orden para sacar su fingerprint.



La salida del comando anterior no da lo siguiente:
  • El bitraje (2048) de la llave
  • El fingerprint, éste es el que tenemos que comparar con el que sale en el cliente
  • El tipo de llave (RSA).
Claro que si no tienes acceso al servidor SSH no podras calcular el fingerprint. Para saber cual es, llama a tu sysadmin o responsable del servidor.

*Aclaración 1: En la primera captura, especifico el puerto 443 como puerto de conexión, y no 22. Ésto es una buena practica de seguridad, ya que todos los scanners buscan en el puerto 22. Además los cortafuegos de las empresas deben tener el puerto 443 abierto para garantizar conexiones seguras con SSL, así uno se garantiza que el cortafuegos no va a cortar la conexión.
Les dejo con un paper de security focus que explica cómo los black hats atacan a los servidores SSH para comprometerlos.

sábado, 31 de octubre de 2009

Quitar tiempo de espera [Apagar de inmediato]

Una de éstas rápidas. Cómo desactivar el tiempo de espera - 60 segundos- antes de que sea apage/reinicie el PC? Pues con el siguiente comando lo quita:
gconftool-2 -s '/apps/indicator-session/suppress_logout_restart_shutdown' --type bool true

viernes, 30 de octubre de 2009

Quiero un SSD!!

Hoy día de instalaciones toca. Tres discos duros, un IDE del año catapúm y dos SATA mas nuevecitos. La versión de Karmic irá en un disco SATA de 200GB -que tenía un Vista que borré pero se le quedo el nombre al disco- y no en el de 80GB IDE como ahora. Y claro, tengo que mover unos 150GB de un sitio para otro. Pues casi he sufrido muerte súbita al ver esto:


Quiero un SSD!

Comprobar MD5 del CD de Karmic Koala

Manuales de cómo grabar nuestro CD de Ubuntu hay muchos. En la misma página oficial nos explican como grabarlo desde distintos SO. Normalmente los programas de grabación nos dicen si el CD se ha grabado con éxito o no. Pero también podemos hacerlo a mano tal que así:
  • $ md5sum -c /media/cdrom0/md5sum.txt #siendo cdrom0 vuestra unidad lectora de CD's
así el automáticamente comprueba si los MD5's del CD són correctos y nos informa. No compruieba la suma de verificación de todos los ficheros del CD, pero supongo que sí lo hace de los archivos imprescindibles para la instalación.

martes, 27 de octubre de 2009

Ingenuo Microsoft [curiosidad]

Si, he decidido dar otra oportunidad a Windows. Igual ahora cambia, igual es diferente, igual funciona... a saber. En su momento ya probé la versión RC6300 (o x ahí) virtualizada... la verdad que me gustó el nuevo color que le habían puesto a la pantalla... tres años de desarrollo para esto:



Pero bueno, que ahora quiero probar la versión "seria" de windows 7, y qué mejor que descargarnos la de prueba... pues en el formulario de inscripción que me encuentro?

Que pasa, que nadie usa Linux? Ni nadie tiene un MAC? Aishseñor.... creo que esto acabará como la última vez...

Cerrar sesión de otro usuario logeado

mmmfale, todo el mundo tiene familia. Un padre, una madre igual una hermana... y pareceser que TODOS se han juntado para hacer un complot. Definitivamente quieren que cuando yo trabaje en el PC todo vaya mas lento. Como lo consiguen? pues porque se dejan SIMEPRE, sistematicamente la sesión abierta con un par de programas abiertos... un openoffice por aqui... un navegador x ahí... y claro, mi ordenador no está para tonterias, ni yo tampoco. ahora bien. como cierras la sesión? Pues hasta ahora de la manera bruta... pero que bruta. Entraba en tty1 y...:
  • # sudo service gdm restart
y a tomar por culo se acabó
Pero claro, señores mios... existe otro sistema mucho mejor:
  • Con el comando "w"vemos los usuarios activos:
  • Aquí vemos el usuario killme al que vamos a cargarnos. Ejecutamos lo siguiente:
  • # sudo skill -KILL -u killme
Haber, no me hagáis fantasías y intentéis matar la cuenta root que os vais a cargar el sistema, y tendréis que aplicar la técnica de hard-reset ( lo de hard es por la complicada combinación de teclas ).

domingo, 25 de octubre de 2009

Reset en LINUX

Algunas veces Linux falla. Por qué? Pues a saber... ejecutas esto: ":(){ :|:& };:" (sin comillas) y resulta que deja de funcionar...

Bueno, nada funciona, y claro... que es lo último que nos queda? Pues pulsar el desgastado botón de RESET, y digo desgastado porque tengo una partición de Windows instalada. Pero nooo! Hay algo mas, esto es Linux! Una combinación de teclas para que el sistema intente desmontar el sistema de ficheros de modo que no queden ficheros corruptos y demás... La combinación de teclas es la siguiente:
Pulsar a la vez: CONTROL+ALT+PRINT_SCREEN
Mientras pulsas las teclas mencionadas escibres: REISUB

Si creen conveniente ayúdense con la nariz. Combinación no apta para mancos

Conocer nuestra dirección IP externa ( router )

Vale, el resultado del comando es bastante feo, pero funciona. Un día de estos ya lo puliré:
>echo $(wget -qO - http://checkip.dyndns.org)

Ficheros importantes en Linux

LISTA de FICHEROS IMPORTANTES

#Lista de repositorios
/etc/apt/sources.list
#Fichero hosts
/etc/hosts
#Fichero DNS
/etc/resolv.conf
#Usuarios del sistema
/etc/passwd
#Passwords de los usuarios
/etc/shadow
#Configuración servidor SSH
/etc/ssh/sshd_config
#Configuración de X11
/etc/X11/xorg.conf
#Logs del sistema
/var/log/
#Log syslog
/var/log/syslog
#Lista de servicios ( equivalencia numero de puerto con protocolo )
/var/servicios
--continuará--

sábado, 24 de octubre de 2009

Consola: Comprimir y descomprimir

Con tantos formatos de compresión uno necesita estudiar 3 días para empollar todos los comandos. Así que aquí les dejo una lista de los principales formatos de compresión y su uso.

>>>.tar (tar)
Empaquetar tar cvf archivo.tar /archivo/mayo/*
Desempaquetar tar xvf archivo.tar
Ver el contenido (sin extraer) tar tvf archivo.tar

>>>.tar.gz - .tar.z - .tgz (tar con gzip)
Empaquetar y comprimir tar czvf archivo.tar.gz /archivo/mayo/*
Desempaquetar y descomprimir tar xzvf archivo.tar.gz
Ver el contenido (sin extraer) tar tzvf archivo.tar.gz

>>>.gz (gzip)
Comprimir gzip -q archivo (El archivo lo comprime y lo renombra como "archivo.gz")
Descomprimir gzip -d archivo.gz (El archivo lo descomprime y lo deja como "archivo"
Nota: gzip solo comprime archivos, no directorios

>>>.bz2 (bzip2)
Comprimir bzip2 archivo
bunzip2 archivo (El archivo lo comprime y lo renombra como "archivo.bz2")
Descomprimir bzip2 -d archivo.bz2
bunzip2 archivo.bz2 (El archivo lo descomprime y lo deja como "archivo")
Nota: bzip2 solo comprime archivos, no directorios

>>>.tar.bz2 (tar con bzip2)
Comprimir tar -c archivos | bzip2 > archivo.tar.bz2
Descomprimir bzip2 -dc archivo.tar.bz2 | tar -xv
tar jvxf archivo.tar.bz2 (versiones recientes de tar)
Ver contenido bzip2 -dc archivo.tar.bz2 | tar -tv

>>>.zip (zip)
Comprimir zip archivo.zip /mayo/archivos
Descomprimir unzip archivo.zip
Ver contenido unzip -v archivo.zip

>>>.lha (lha)
Comprimir lha archivo.lha /mayo/archivos
Descomprimir lha -x archivo.lha
Ver contenido lha -v archivo.lha
lha -l archivo.lha

>>>.zoo (zoo)
Comprimir zoo -a archivo.zoo /mayo/archivos
Descomprimir zoo -x archivo.zoo
Ver contenido zoo -v archivo.zoo
zoo -L archivo.zoo

>>>.rar (rar)
Comprimir rar -a archivo.rar /mayo/archivos
Descomprimir rar -x archivo.rar
Ver contenido rar -v archivo.rar
rar -l archivo.rar

martes, 20 de octubre de 2009

Comprimir / Descomprimir ficheros RAR

El programa a instalar es:
> sudo aptitude install rar unrar
Amén.

sábado, 17 de octubre de 2009

Ver imágenes en modo consola

Instalamos el programita "zgv" con un
> sudo aptitude install zgv -y
Para ver una fotica solo hace falta poner el comando + nombre de la foto.
> sudo zgv foto1.jpg
El solito nos la carga. Si la imagen es muy grande podemos utilizar las teclas de dirección para ir viéndola a trozos. Para salir Control+C. Algunas vezes parece que la pantalla se queda "pillada", pulsamos Control+Alt+F[1,2,3,4,5,6,7] cambiando así la consola o el entorno grafico y arreglado.

Por curiosidad probé si funcionaba con una sesión SSH. Ehemmm.. evidentemente no. Es lo que tiene no pensar las cosas. Osea, carga la imagen en el lado SERVIDOR y no en la parte del CLIENTE. Pero bueno, ya sabemos una cosa mas para molestar a alguien que hace tranquilamente su trabajo.... cargamos una fotica de PWN3D y a difrutar de la cara que se le queda =)

viernes, 16 de octubre de 2009

Capturando información de la LAN

Capurar datos tocan. URL's e imagenes, pareceser.
Instalamos estos dos paquetes:
> sudo aptitude install dsniff driftnet
Primero usaremos un programa como Ettercap para atacar la red LAN con MITM (manualillo o un post anterior mio). Una vez activado usaremos el comando:
> sudo urlsnarf -i eth1 #eth1 sera sustituido por nuestra interfaz de red. puedes consultar en el comando ifconfig
y así empezamos a capturar todas las direcciones de nuestra LAN... vale, mola. Pero quiero mas.
Pues continuemos:
Ahora ( con el ataque MITM activo ) ejecutamos el comando:
> sudo driftnet -i eth1
Se abrirá una ventanita y iremos viendo todas la mayoría de las imagenes que circulan por la red... esto mola mas, verdad? Haciendo clic sobre una foto, automaticamente se guarda. Bueno, siempre es bueno especificar un directorio donde guardaremos todas las imagenes capturadas. Sería un desperdicio perder la foto de tu amigo en tanga.
> sudo driftnet -i eth1 -d directorio_que_queramos

Borrado seguro de ficheros

Algunas veces tenemos datos que queremos que sean borrados sin que sea posible de recuperar. Por defecto nuestra distribución de Ubuntu 9.04 ya viene instalado un comando llamado "shred" que nos permite reescribir el contenido de un fichero y, opcionalmente, borrarlo. Por ejemplo:
> shred fichero_borrame
Pero.... el fichero sigue estando ahí. No hemos borrado nada. Es cierto, pero hemos reescrito el contenido del fichero 25 vezes y ahora la información que contiene el fichero no es mas que ruido. Para borrarlo podemos hacer el típico:
> rm fichero_borrame
Para sobreescribir y borrar:
> shred fichero_borrame -u

Como alternativa a shred podemos instalar el paquete secure-delete:
> sudo aptitude install secure-delete
Ahora ya podemos utilizar el comando "srm" para borrar ficheros después de sobreescibir hasta 38 vezes!!! Después de este proceso podremos clasificar el fichero de irrecuperable.

Si somos unos paranoicos de la seguridad informatica, también podremos hacer uso del comando "smem", encargado de realizar el mismo proceso de reescritura pero sobre la memória RAM.

jueves, 15 de octubre de 2009

Activar y desactivar servicios en modo consola

Primero instalamos el programa rcconf:

>sudo aptitude install rcconf

y ahora solo queda ejecutar el comando con poderes de super usuario para modificar los servicios que queremos que se inicien.

>sudo rcconf

Bastante útil si, por ejemplo, teníamos desactivado el Genome Display Manager para entrar en modo consola y ahora queremos volver a activarlo.

jueves, 8 de octubre de 2009

Server is too busy

Desde hace ya mas de una hora que no se puede acceder a los servicios web de hotmail. Este puede ser debido al gran impacto que tienen los medios de comunicación convencionales ( TV, vaya ) sobre la población. La noticia se ha dado a conocer esta noche y seguramente todo el mundo ha ido a cambiar su original, única e irrepetible contraseña de "123456".
Resumiendo, el servidor devuevle un error :

Server is too busy


Acutalización!! Pareceser que hoy gusta sacar errores diferentes. Ahora el cartelito reza:

Internal Server Error - Read

The server encountered an internal error or misconfiguration and was unable to complete your request.

Reference #3.7ec11508.1255034006.36343d05

ya veremos cuando se acaba la broma y los syadmin's de hotmail logran solucionar el problema...

Seguridad con calves asimétricas [Reflexión]

En pleno proceso de higienización personal completa ( en la ducha, vaya ) me surge una duda. Pero antes de plantearla, veamos el contexto. La encriptación de datos con claves asimétricas, ya sean RSA o DSA, es lo mas potente que se conoce hoy en día hablando de seguridad en las comunicaciones. Con una clave lo suficientemente grande ( 2048 o 4096 si nos ponemos paranoicos ) y con un algortimo de cifrado simetrico lo suficientemente potente ( AES, por ejemplo ) podemos enviar y recibir datos de manera segura. Resumiendo, que solo los interesados van a poder acceder la información. Si los dos usuarios tienen conocimientos suficientes de informatica y conocen como funciona el sistema de encriptación, no cabe duda de que es irrompible.
Que pasa si el destinatario de tu email ( por ejemplo ) no tiene ni idea de lo que es RSA? Llegan los problemas. Si el usuario se ha creado un par de claves el solito, es muy posible que no cifre la clave privada. En caso de que las cifre, lo mas común es que use su -unica- contraseña para cifrarlo. Entonces esto me lleva a pensar que tener una clave privada propia con una contraseña de 25 carácteres solo sirve para proteger LA INFORMACIÓN QUE TE ENVIAN. Osea, proteges a tu remitente, pero no proteges tus mensajes enviados.
Pongamos un ejemplo. Pongamos que alguien se hace con tu clave privada. Que tiene? Pues una espera de 10^1000 años (tirando una pedrada) para romper tu contraseña ( evidentemente única, que solo usas para proteger tu clave privada ). En caso de que la consiga, que tiene? Pues los correos que me han mandado a mi. Que pasa si alguien roba la clave privada de tu destinatario, que no tiene un password fuerte y como usa el mismo password para entrar en Windows que para proteger su clave privada, el atacante tiene... todos los correos que has mandado y que no querías que otros leyeran. Estupendo!

Reflexión tonta ( se me ocurrió en la ducha! que esperabais?! ). La seguridad de tus datos dependen de la persona a quien envies la información. Ergo: tu eres responsable de la seguridad de la información que te envian.
Nota mental: no enviar mails con información sensible cifrados con RSA a personas no-informaticas AND no-paranoicas.

jueves, 1 de octubre de 2009

Jugando con inedt

Hoy toca trastear con inedt. Vamos a practicar y hacer que un escript bash escuche un puerto concreto y que, al conectarnos, se ejecute.
Primero tenemos que instalar el paquete openbsd-inetd.
Lo haremos con el clásico:
> sudo aptitude install openbsd-inetd

Ahora crearemos con nuestro editor preferido ( vim, nano, gedit... ) un pequeño script que se creará cuando nos conectemos en un puerto determinado. El script puede poner lo que quieras ( menos rm / -rf, no jodamos! ). En el ejemplo el fichero se llamará script-actualizacion.sh y pondremos esto:
>#! /bin bash
> echo "Actualización semi-automatica"
> sudo aptitude update
> sudo aptitude safe-upgrade -y #Con -y asumimos que queremos instalar las actualizaciones
Y le damos permisos de escritura al ficherito:
>chmod u+x script-actualizacion.sh
El fichero lo podemos guardar en /home/usuario_pruebas/script-actualizacion.sh cada uno que lo guarde donde le apetezca pero se tiene que acordar de la ruta. Bien, mas madera, que es la guerra! Ahora toca configurar nuestro fichero services, para dar mas realismo al asunto :) amosallá.

Editamos el fichero /etc/services ( sudo gedit /etc/services )
y añadimos al finaaaal de todo lo siguiente:
>actualizacion 12021/tcp #nuestro nombre de puerto!!
y guardamos el fichero. Bien, pero... que acabamos de hacer? Easy, le hemos dicho a la maquina que el puerto 12021 ahora se llama "actualizacion". Así de simple.
Ahora vamos a modificar un ficherito llamado inetd.conf que se encuentra en /etc. Léase:
>sudo gedit /etc/inetd.conf
y ahora añadiremos esta linea al fichero:
>update stream tcp nowait root /usr/sbin/tcpd /home/usuario_pruebas/script-actualizacion.sh
Amoshaber... explico un poquito.
  • "actualizacion": esto es el nombre que hemos elegido antes para nombrar a un puerto. En caso de que no queramos hacer el proceso anterior aqui pondríamos 12021.
  • "/home/usuario_pruebas/script-actualizacion.sh": La ruta de vuestro script.
Reiniciamos el servicio inetd con el comando:
>sudo service service openbsd-inetd restart
Y ahora para comprobar si todo ha ido bien hacemos un:
>netstat -ta
Y voalà!!! Nos aparece una línea que reza algo parecido a esto:
>tcp 0 0 *:update *:* ESCUCHAR

Enhorabuena!! Tenemos nuestro servicio arriba. Vamos a probarlo. Cómo? Pues con un simple telnet:
>telnet localhost update
Y que tenemos? pues la salida de nuestro fantastico script y el PC actualizado! Ahora podemos probar de ejecutarlo remotamente desde otro PC de la red! ( Atención que el otro PC no tendra configurado el puerto 12021 como "update" osea que haremos un >telnet ip_servidor 12021 ).

miércoles, 30 de septiembre de 2009

Proyecto Euler

Quieres aprender un nuevo lenguaje de programación? Quieres mejorar tus habilidades en un lenguaje que ya conoces? El Proyecto Euler te interesa. A día de hoy existen 256 ejercicios disponibles en la página, la mayoría de temática matemática. El enunciado se encuentra en inglés pero están muy claros la mayoría, te dan ejemplos detallados y al final una pregunta que debes responder para validar el ejercicio. Una vez resuelto el ejercicio se te abren dos posibilidades:
  • Consultar la documentación sobre la teoría específica de aquel ejercicio concreto ( por ejemplo: cómo calcular un palindromo ) y con una posible solución.
  • Un foro, dónde la gente que ha resuelto el ejercicio puede postear su código. Muy interesante para ver como la demás gente ha resuelto el mismo problema. Muy instructivo.
El lenguaje de programación lo eliges tu. Los ejercicios estan pensados para que haya una continuidad; el primer ejercicio va a ayudarte a entender ( o plantear ) el segundo ejercicio, etc... Otra cosa importante es que ( con una solución mas o menos optimizada ), todos los enunciados pueden ser solucionados por el ordenador en menos de un minuto. Ejemplos? Pues entre los mas simples hay:
  • Buscar el número Primo 1001
  • Suma de factoriales. Sumatorio(100!)
  • Buscar el palíndromo más grande que sea resultado de dos números de 3 cifras...
  • Estos son los mas simles...los ejercicios se complican bastante.
Si te gusta la programación y las matemáticas, ésta es tu pagina.

sábado, 26 de septiembre de 2009

Add-On's Firefox

Hoy toca hablar de los complementos de Firefox, y como hay muchos muchísimos, hablaremos mas concretamente de los complementos que yo uso habitualmente. Empezemos.

FireGPG: Nos permite gestionar nuestras cuentas de GnuPG y relizar tareas como: adminisitrar claves, añadir claves públicas de manera muy facil, cifrar/descifrar correos o ficheros, firmar correos, etc... Normalmente se integra con gmail para hacer que su uso sea aún mas facil, si cabe.
Ubiquity: Adquisición reciente. Muy bueno para la navegación 'rapida' y el ahorro de clics. Pulsando una combinación de teclas tenermos una miniconsola donde podemos escribir:
  • "go telefonica son unos tacaños" y esto significa: "en Google busca Telefonica son unos tacaños"
  • "map barcelona" y nos sacara la localización de barcelona
  • "get-last-mail" y nos dirá cual es el último email que hemos recibido en nuestra cuenta de GMail
  • "wiki Trafalgar" y nos abrirá la pagina correspondiente de Wikipedia
  • entre muchos otros comandos ( 79 default )
SpeedDial: Bueno, el típico. Pulsas Control+T para tener una pestaña nueva y te encuentras con una tabla con tus paginas preferidas de acceso habitual. Muy útil.
Delicious: Guarda tus Marcadores ( aka Favoritos en IE ) en la nube! Ademas puedes compartir con tus amigos los favoritos y enviarles los links que creas útiles. Muy recomendable. También es un fichaje reciente.
GMail Notifier: para tener controlada siempre tu bandeja de entrada. Muy util si recibes gran cantidad de correo, así ves cuando te van llegando.

Y tú? Que complementos del Firefox usas normlamente?

SSLStrip+Ettercap

Conseguir passwords en una red local con, o sin cifrado. Ea!

Distribución candidata: BackTrack 4 Pre Release grabada en un DVD o virtualizada con su herramienta favorita ( VMWare, VirtualBox, Qemu... ) y ejecutada como LiveCD. Evidentemente si lo virtualizamos necesitamos que la tarjeta de red esté en Bridged ( Puenteada ) con nuestra tarjeta de red, léase que debe tener una dirección IP diferente a maquina anfitrión y acceso a la red local. Enlace

(Nota: Si esto les ha sonado a chino, busquen manuales por este orden IntroducciónInformática>CómoGrabarUnCd>CómoGrabarUnDvd>que es un LiveCD>Internet, el gran desconocido>Hacking ético>Consola, mas que una pantalla negra con letras blancas>y finalmente vengan aqui a completar el manual. Mas o menos estos son los pasos que he seguido yo para conseguir los passwords de mi red =)

Herramientas que vamos a utilizar?

  • Ettercap: Para realizar el ataque MITM ( Man in The Middle ) sobre uno o varios elementos de la red.
  • SSLStrip: Para poder capturar la mayoría de datos que naveguen ( supuestamente ) de forma segura.
  • Macchanger: como simple precaución, cambiaremos la MAC de nuestra maquina virtual.
Bueno, la versión de Ettercap que viene con BackTrack ya nos servirá. Descargaremos la última versión de SSLStrip de la pagina web oficial ( creador Moxxie Marlinspike ) actualmente v0.6
De mientras iremos instalando las dependencias del programita.
  • sudo aptitude install python2.4 -y
  • sudo aptitude install python-twisted-web -y
Ejecutamos el comando 'macchanger -r' para establecer una MAC aleatoria y así proteger un poquito nuestra identidad. Vale, al lío.
  • Ejecutamos Ettercap-GTK por el menú o a través de la consola con un 'sudo nohup ettercap -G &'
  • Pulsamos Mayus+U ( o Sniff>Unified Sniffing ) y seleccionamos nuestra interface de red ( normalmente eth0... como podemos saber que interface es? con un 'ifconfig' en la consola. La interface que tenga una IP será la que estemos usando en la red )
  • Pulsamos Control+S ( o Hosts>Scan for Hosts ) y a continuación la tecla H ( o Hosts>Hosts list ).
Vale, hasta aqui qué tenemos? Una lista de los hosts que se encuentran disponibles en la red ( a excepción de nosotros mismos, claro ). Vale, y ahora qué? Pues podemos hacer un ataque MIMT a toda la red o podemos seleccionar un host de la lista y después en "Add to Target 1" y a continuación seleccionar el router ( ya que los datos cifrados viajaran entre el ordenador seleccionado y el router ) que presumiblemente es 192.168.1.1 y pulsar "Add to Target 2". El orden de Target1 o Target2 no es importante. Si no tocamos nada de Target1 o Target2, TODO el trafico de la red pasara por nuestro ordenador. Ventajas: puedes pillar mas contraseñas o información "útil". Inconvenientes, es mas facil de detectar para alguien que vigile y si hay muchos ordenadores - ergo hay mucho tráfico en la red - la velocidad de la red se verá afectada reduciendose drásticamente. Anyway! Lo mas facil es no tocar nada y seguir adelante:
  • Vamos a Mitm>Arp Poisoning, marcamos la primera casilla de Sniff remote conections y Aceptar. Dejemos un momento Ettercap aparcado que mas tarde lo usaremos.
  • Nos hemos descargado la última versión de SSLStrip, verdad? Entonces con la consola nos situamos en el mismo directorio donde esté el fichero y hacemos lo siguiente:
  • 'tar zxvf sslstrip-0.6.tar.gz' para descomprimir. Después hacemos un 'cd sslstrip-0.6' para situarnos en el directorio.
  • Ejecutamos: 'echo "1" > /proc/sys/net/ipv4/ip_forward' para decir al PC que redireccione los paquetes.
  • Y creamos una regla en iptables: 'iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000' *nota: --to-port puede ser el puerto que os apetezca, a mi me gusta el 10.000
  • Activamos nuestro encantador programa SSLStrip con un: 'python sslstrip.py -l 10000'
  • Y como paso final vamos a Ettercap y pulsamos Control+W ( o Start>Start Sniffing )
  • Voilà! Ahora todo el trafico de la red pasa por nuestro ordenador y el programita SSLStrip se encarga de filtrar la información interesante. SSLStip va a escupir bastante información, pero los passwords se ven mejor en la parte inferior de Ettercap.
  • PRUEBA: Con otro PC de la red accede a www.google.com - o sucedáneo - y autentificate. El nombre de usuario&password deberían aparecer en Ettercap. Igual no puedes entrar dentro de la cuenta de correo porque google.com se da cuenta de que algo pasa, pero demasiado tarde ya que nosotros ya hemos capturado el user&password.
Conclusión. Las redes no son seguras ( já! ¿y para esta conclusión me he chupado todo este coñazo de HOW-TO? ). Podemos sacar información sensible de ellas sin dificultad. Esta información seguro que esta amparada por alguna ley, con lo que convierte nuestros actos de extracción de información en algo algo ilegal.
Uso del manual: entender que si tu eres capaz de capturar passwords, los demás también pueden ( desconfía de los cybers, puntos de acceso wifi, etc.... ) y el ejercicio ha sido por curiosidad académica, una demostración practica de que se puede hacer muy fácil.
Ala yo ya lo he dichooo, ahora a jugar! Que la cara de pillo que se te ha puesto no es por que si...