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.