domingo, 6 de diciembre de 2009

Restaurando GRUB 2 en Debian GNU / Linux

Hay veces en el que el gestor de arranque GRUB se puede estropear. Por ejemplo, al instalar otro sistema operativo.

Para recuperarlo, debemos arrancar con un CD de instalación de Debian en modo "rescue". Una vez configurado el idioma del teclado, abrimos otra consola con "Alt-F2" y ejecutamos los siguientes comandos:

mount /dev/sda3 /mnt mount -t proc /proc /mnt/proc mount --bind /dev /mnt/dev chroot /mnt/ grub-install /dev/sda

De esta forma, hemos recuperado el sector de arranque en "/dev/sda", teniendo la instalación de Debian en la partición "/dev/sda3".

domingo, 4 de octubre de 2009

Configuración de un servidor SSH en Debian GNU / Linux

En este artículo vamos a ver una serie de recomendaciones para tener un servidor SSH lo más seguro posible.

Los pasos de la configuración son los siguientes:

1. Instalación
2. Uso de pares de claves
3. Cambiar el puerto por defecto

A continuación se detallan cada uno de estos pasos:

1. Instalación

Para la instalación únicamente debemos ejecutar el siguiente comando:

aptitude install ssh

2. Uso de pares de claves

Configurando el servidor SSH para que solo se pueda acceder mediante pares de claves SSH se obtiene un gran beneficio. Por un lado, se obtiene mayor seguridad, ya que para el acceso a la máquina se debe disponer de una clave privada cuya clave publica este dada de alta en el servidor. Y por otro lado, es posible configurar que la clave privada de acceso esté guardada sin contraseña, de forma que se pueda acceder directamente al servidor sin que se solicite ningún tipo de contraseña. Esto puede ser útil, por ejemplo, para scripts de tareas automatizadas.

El primer paso será generar un par de claves SSH y configurar el servidor para que se pueda acceder con ellas.

Generamos el par de claves en el cliente de la siguiente forma:

ssh-keygen -t dsa -C "USERNAME@DOMAIN"

En el comando anterior podemos sustituir USERNAME por el nombre del usuario y DOMAIN por el dominio que queramos.

Durante la creación nos solicitará una contraseña que será la que proteja la clave privada generada. Si se considera que la cuenta del usuario está en un entorno fiable podemos omitirla y acceder al servidor SSH automáticamente sin contraseña.

Para permitir que ese cliente se conecte con las claves generadas a un usuario del servidor, debemos crear un fichero "$HOME/.ssh/authorized_keys" que contenga la información de la clave pública que hemos generado. Por defecto, la clave pública se genera en un fichero "$HOME/.ssh/id_dsa.pub". En el fichero "authorized_keys" se podrán meter todas las claves públicas que se desee y cada una deberá estar en una línea.

Es muy importante el tema de permisos en estos ficheros. Únicamente deberán poder ser accesibles por el usuario de la cuenta en la que esté contenido cada fichero.

Por último, si queremos que únicamente se permita el acceso a la máquina mediante pares de claves y no se permita acceder mediante usuario y contraseña, debemos configurar en el fichero "/etc/ssh/sshd_config" el valor de la variable "PasswordAuthentication" a "no" y reiniciar el servidor de SSH.

Si un usuario tiene varias claves, puede seleccionar la clave que quiere usar con el parámetro "-i" del comando ssh.

También es interesante impedir que se pueda acceder directamente con el usuario root. Para ello, debemos configurar en el fichero "/etc/ssh/sshd_config" el valor de la variable "PermitRootLogin" a "no" y reiniciar el servidor de SSH.

3. Cambiar el puerto por defecto

Cambiando el puerto por defecto del servicio SSH se consigue burlar ciertos escaneres de puertos. Para ello editamos el fichero "/etc/ssh/sshd_config" y cambiamos el parámetro "Port".

Al cambiar el puerto, para acceder al servicio debemos indicar un parámetro adicional. Por ejemplo, si cambiamos el servicio al puerto 1234 usaríamos el siguiente comando:

ssh -p 1234 user@hostname

domingo, 13 de septiembre de 2009

Reparar BIOS corrupta de ordenador

Hace algún tiempo, actualizando la BIOS del ordenador se produjo algún problema y quedó corrupta. El ordenador no arrancaba.
Trás el susto y pensar que me tocaba comprar otra placa base, descubrí en Internet que si la BIOS es enchufable, osea, que no va soldada a la placa base sino que tiene un conector, se puede reprogramar con un programador. Estos programadores los suelen tener en las tiendas de electrónica y, por un módico precio, te programan todo tipo de chips.

Por lo que cogí el chip de la BIOS y un disquete, con el programa a cargar en la BIOS, y por unos 4 euros me reparon la BIOS en una tienda de electrónica de Madrid llamada Conectrol.

En Madrid hay varias tiendas de electrónica que seguro que dan este servicio. Son estas:

Conectrol
Diotronic
Actrón

Conexión a internet en el ordenador mediante móvil bluetooth GPRS

Este artículo explica como configurar una instalación de Debian GNU / Linux para conectarse a Internet usando la conexión GPRS de un teléfono movil Sony-Ericsson w800i.

Se deben tener instalados los paquetes bluez-utils y ppp.

El primer paso es activar el bluetooth en el móvil y localizarlo en el ordenador con el siguiente comando:

hcitool scan

Se obtiene un resultado con una dirección del tipo 11:22:33:44:55:66, que es la dirección que identifica el móvil por bluetooth.

Ahora se debe emparejar el móvil. Para ello debemos ejecutar los siguientes comandos con el usuario root:

hcitool cc 11:22:33:44:55:66
hcitool auth 11:22:33:44:55:66

Con el siguiente comando obtenemos los servicios que proporciona el móvil por bluetooth:

sdptool browse 11:22:33:44:55:66

Para poder usar el móvil para conectarse a internet desde un ordenador tiene que tener un servicio del tipo "Dial-up Networking". Por ejemplo, se debe obtener información de este tipo:

Service Name: Dial-up Networking
Service RecHandle: 0x10001
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

Con el siguiente comando nos conectamos con el móvil para que se cree un canal de comunicación:

rfcomm connect /dev/rfcomm 11:22:33:44:55:66 1

El valor 1 del final del comando es el canal asociado al servicio del tipo "Dialup Networking".

Para evitar tener que ejecutar este comando cada vez que vayamos a usar la conexión, podemos crear una entrada en el fichero "/etc/bluetooth/rfcomm.conf" con la siguiente información:

rfcomm0 {
bind no;
device 11:22:33:44:55:66;
channel 1;
comment "Sony-Ericsson W800i";
}

Y con esta configuración solo tendremos que ejecutar el comando de la siguiente forma:

rfcomm connect rfcomm0

Otra opción es poner el parámetro bind con el valor yes, y al reiniciar el servicio de bluetooth se realizará la conexión automáticamente. Para reiniciar el servicio se ejecuta como root el siguiente comando:

/etc/init.d/bluez-utils restart

Para poder usar el móvil como modem, el usuario del ordenador debe pertenecer a los grupos dialout y dip. Para ello se puede editar como root el archivo "/etc/group" y añadir el usuario a los grupos correspondientes.

El siguiente paso es crear como root el fichero "/etc/ppp/peers/bluetooth_w800i" con el siguiente contenido:

debug
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/bluetooth_w800i"
usepeerdns
/dev/rfcomm0 115200
defaultroute
crtscts
lcp-echo-failure 0

Y después crear como root el fichero "/etc/chatscripts/bluetooth_w800i" con el siguiente contenido:

TIMEOUT 35
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
OK 'AT+CGDCONT=2,"IP","nombre_apn"'
OK ATD*99***numero_perfil_datos#
CONNECT ""

El el fichero anterior se debe sustituir el valor numero_perfil_datos por la posición en la configuración del móvil del perfil de conexión de datos que queremos usar. Y el valor nombre_apn por el nombre del APN que tiene configurado el perfil del móvil.

Una vez hechos estos pasos ya tenemos todo configurado. Solo tenemos que ejecutar el siguiente comando para iniciar la conexión:

pon bluetooth_w800i

Y el siguiente comando para desconectarse:

poff bluetooth_w800i

Si algo no funciona correctamente podemos consultar las trazas del fichero "/var/log/messages" para intentar descubrir el error.

Espero este artículo sea de ayuda.

Saludos,
Tony

miércoles, 2 de septiembre de 2009

Trabajando con DVDs en Debian GNU / Linux

A continuación mostraré varios comandos bastante prácticos para manipular DVD en Linux.

Con el siguiente comando podemos compiar un DVD completo al disco duro como imagen ISO. Con esto obtenemos una copia completa del DVD para posteriormente copiarla a un DVD, o simplemente para reproducirlo desde el disco duro. El comando sería el siguiente.

dd if=/dev/dvd of=copia.iso

De esta forma, se leerá todo el contenido del dispositivo "/dev/dvd" en el fichero "copia.iso".

El contenido del DVD anterior se puede ver montándolo en un directorio. Para esto, debemos ejecutar el siguiente comando como usuario root:

mount -o loop copia.iso /mnt

Con este comando se monta en la carpeta "/mnt" el ISO del DVD obtenido con el comando anterior.

Con el siguiente comando podemos crear un DVD a partir del contenido obtenido de otro DVD. Para ello creamos un directorio, copiamos la estructura del DVD (directorios AUDIO_TS y VIDEO_TS) y ejecutamos el siguiente comando:

genisoimage -dvd-video -V "Nombre o etiqueta del DVD" -o nuevo_dvd.iso directorio_estrucura_dvd

domingo, 30 de agosto de 2009

Cambiar la relación de aspecto de un video en formato AVI con sonido dual en Debian GNU / Linux

Hay que ejecutar los siguientes tres comandos:

mencoder -force-avi-aspect 1.77777777778 -ovc copy -oac copy -aid 1 -o video_y_audio_1.avi video_origen.avi
avimerge -i video_y_audio_1.avi -p video_origen.avi -a 1 -o video_y_audio_1_y_audio_2.avi

La relación de aspecto se cambia en el primer comando con el parámetro "-force-avi-aspect".
También se puede quitar el parámetro y la relación de aspecto se dejará vacía en el video resultante, con lo que los reproductores de video la calcularán automáticamente usando la resolución del video.

lunes, 27 de julio de 2009

Servidor Multimedia uPnP para PlayStation 3 en Debian GNU / Linux

El servidor uPnP que vamos a configurar es MediaTomb, ya que está incluido en Debian. Con él podremos usar desde la PlayStation 3 toda la música, fotos y videos contenidos en nuestro ordenador.

Para su instalación debemos instalar el paquete "mediatomb" y todas sus dependencias, que se instalarán automáticamente.

Los ficheros de configuración que utiliza son los siguientes:
  • /etc/mediatomb/config.xml
  • /etc/default/mediatomb
En el primero de estos ficheros vamos a configurar la etiqueta "protocolInfo" con el parámetro "extend" al valor "true", para que los MP3 y MPEG4 funcionen correctamente en la PlayStation 3. También, con la misma finalidad, deberemos descomentar en este fichero una etiqueta "map" para que el tipo mime asociado a los fichero con extensión "avi" sea "video/divx".

Para añadir los contenidos multimedia al servidor debemos acceder a la siguiente URL:

http://localhost:49152/

En ella podemos ver el sistema de ficheros y añadir los directorios o ficheros que queramos compartir.

Ya solo queda acceder a los contenidos desde la PlayStation 3. Hay que que tener en cuenta, que los videos solo se mostrarán desde el menú de videos de la consola, la música desde el menú de música, y las imágenes desde el menú imágenes.