Después de tanto tiempo parece que por fin es posible usar el DNIe en Gentoo satisfactoriamente. Aquí detallo las instrucciones, que por supuesto son válidas para otros sistemas diferentes, salvo que habría que proceder de forma análoga con comandos distintos en la instalación de los paquetes propios del sistema de paquetería que uses.
# emerge pcsc-tools pcsc-lite opensc Instalamos los paquetes necesarios.
# rc-update add pcscd default Añadimos pcscd al arranque.
# /etc/init.d/pcscd start Iniciamos el servicio pcscd
# emerge jss Network Security Services para Java necesario para muchos sitios web
Modificar el fichero de configuración /etc/opensc.conf: # card_driver dnie {
# # Enable/Disable user consent on signing (default: enable)
# user_consent_enabled = true;
# # Program to be used for ask confirmation (default: pinentry)
# user_consent_app = /usr/bin/pinentry;
# }
...
reader_driver pcsc {
...
# Connect to reader in exclusive mode?
# Default: false
# connect_exclusive = true;
...
# Enable pinpad if detected (PC/SC v2.0.2 Part 10)
# Default: true
enable_pinpad = false;
...
}
...
# PKCS #15
framework pkcs15 {
....
# Prefer pkcs15 emulation code before
# the normal pkcs15 processing.
# Some cards (like esteid and pteid) work in emu-only mode,
# and do not depend on this option.
#
# Default: no
try_emulation_first = yes;
....
}
...
# Parameters for the OpenSC PKCS11 module
app opensc-pkcs11 {
pkcs11 {
# Should the module support hotplug of readers as per PKCS#11 v2.20?
# This affects slot changes and PC/SC PnP, as v2.11 applications
# are not allowed to change the length of the slot list.
# Default: true
plug_and_play = false;# Maximum Number of virtual slots
...
$ dnie-tool -d -w Probamos que tenemos acceso al DNIe. Asegúrate de tener el lector conectado y el DNIe introducido en el lector. $ dnie-tool -d -w
Waiting for a card to be inserted...
DNIe Number: 99999999X
SurName: PEREZ
Name: JUAN LUIS
Añadimos los certificados raíz como autoridad certificadora en Firefox. Que los podemos bajar de aquí.
Añadimos el módulo para acceder al lactor en Firefox, en Editar->Preferencias->Avanzado->Cifrado->Dispositivos de seguridad->Cargar->Examinar… Y añadimos la ruta /usr/local/lib/pksc11/opensc-pkcs11.so.
Hoy vamos a ver como instalar Sparkleshare en un servidor propio y su uso en una estación de trabajo. He leído hablar de él y también me parecía genial la idea de poder tener un algo similar a Dropbox pero en mi propio servidor. La idea es genial, en el servidor tenemos ssh como servicio y en los clientes instalamos Sparkleshare y Git.
En el lado del servidor solo es necesario tener en funcionamiento el servicio ssh, y al menos un usuario en el servidor que será el que tenga acceso a su carpeta compartida. En el lado del cliente será necesario tener instalado openssh para usarlo como cliente (que yo ya tenía instalado), git y sparkleshare.
# chmod g+s /home/sparkleshare (con esto conseguimos que los ficheros y directorios creados por usuario pertenezcan al grupo sparkleshare)
# su usuario -c “git init –bare /home/sparkleshare/usuario/usuario.git”
2. Preparar la máquina cliente:
Instalamos Sparkleshare en la máquina de trabajo cliente, también con Gentoo:
# layman -a betagarden Añadimos el overlay betagarden a nuestro portage.
# layman -S Sincronizamos todos nuestros overlays de terceros.
# echo "app-backup/sparkleshare ~amd64" >> /etc/portage/package.keywords/sparkleshare Aceptamos sparkleshare para instalar como inestable.
# emerge -avq sparkleshare Lo instalamos.
$ sparkleshare start Y lo ejecutamos como usuario.
3. Configurar Sparklshare en la máquina cliente:
Ponemos nuestro nombre y la dirección de correo-e a la que queremos que Sparkleshare nos envíe notificaciones.
¡Antes de continuar es importante este paso! En este momento Sparkleshare ha creado una pareja de claves pública y privada para su uso con ssh para la comunicación con el servidor. Tenemos que agregar la clave pública a nuestro usuario en nuestro servidor para permitir el acceso con las claves generadas por Sparkleshare.
$ ssh-copy-id -i .config/sparkleshare/sparkleshare.usuario@micorreo.com.key.pub usuario@miservidor Ejecutamos esto como usuario en la máquina cliente para copiar la clave pública en el servidor.
En la siguiente ventana de configuración ponemos el servidor con el nombre de usuario, por ejemplo: usuario@miservidor. Y en nombre de la carpeta ponemos la ruta completa al repositorio git en este caso sería /home/sparkleshare/usuario/usuario.git.
Bien, ahora sí podemos pulsar en “sincronizar”.
¡¡Y ahora a probarlo!!
5. Otras consideraciones para la configuración:
Debemos tener en cuenta que si nuestro puerto de acceso a ssh no es el puerto 22 por defecto, Sparkleshare no funcionará pues no tenemos en la interfaz ninguna forma de indicar el puerto de conexión. Sin embargo sí que hay una solución para ello. Haremos lo siguiente en el equipo cliente como usuario: $ nano -w ~/.ssh/config Creamos y editamos el fichero.
Host ejemplo.com
Port 1234
4. Opinión del estado actual del proyecto Sparkleshare:
Todavía es un proyecto joven al que le falta pulir muchas cosas y añadir muchas funciones más. Detecta bien los cambios de nombre de fichero, la adición de ficheros, la modificación de su contenido, la eliminación… Sin embargo el interfaz gráfico todavía deja bastante que desear. Se ve que se están centrando más en el comportamiento y funcionamiento de la sincronización.
Si te ha resultado útil y te gustaría compensarme invitándome a una cervecita o bien ayudánme con los gastos del blog:
Recompilar el kernel activando las siguientes características:
Device Drivers --->
Graphics support --->
<*> /dev/agpgart (AGP Support) --->
<*> Modul für deinen Chipsatz wählen
<*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
<*> ATI Radeon
[*] Enable modesetting on radeon by default
Y también:
Device Drivers --->
Generic Driver Options --->
-*- Userspace firmware loading support
[*] Include in-kernel firmware blobs in kernel binary
(radeon/R700_rlc.bin) External firmware blobs to build into the kernel binary
(/lib/firmware) Firmware blobs root directory
Un ScreenCast es al vídeo lo que un SnapShot (pantallazo o captura de pantalla) a la fotografía. Hay algunos programas que realizan capturas de vídeo de lo que se muestra en nuestra pantalla, unos con mejores resultados que otros y también con mayor o menor dificultad de uso. Ejemplo de ello son Istanbul y RecordMyDesktop, dos soluciones que podrían funcionar muy bien. Sin embargo, no me permiten grabar sonido de un micrófono mientras graba la pantalla, para por ejemplo dar explicaciones mientras muestras algo. Cosa que puede ser bastante útil. Hace unos meses descubrí que ffmpeg es capaz de esto y me puse a hacer algunas pruebas para conseguir grabar vídeos con la característica de que se pudiera oír mi voz dando algunas explicaciones. En realidad no era para nada muy serio, pero en alguna ocasión me ha surgido la situación que querer explicar a alguien cómo hacer algo, y la verdad que tardaría un minuto en hacerlo con un vídeo así y no como sería con una explicación por escrito, que además si no me explico bien, quizás pueda llevar más a confusión. Veamos las opciones de ejecución por separado:
-i dispositivo se usa para indicar el dispositivo de entrada tanto para vídeo como para audio.
-f formatoes para indicar el formato de entrada ya sea de vídeo o de audio.
-r n consigue que se haga la grabación n fotogramas por segundo.
-s tamaño es la forma que tiene ffmpeg de recibir el tamaño de captura de pantalla, puede ser indicado de varias formas, como 640x480 o bien su equivalente vga. Podemos ver una lista de nombres para los diferetesta tamaños aquí o bien poner un tamaño diferente de la forma valorxvalor.
-b se usa para estipular la tasa de bits por segundo que se van a usar en la salida ya sea de vídeo o sonido, ejemplo: -b 128k.
-sameq consigue que se haga la captura con la misma calidad que tenga la propia entrada. Haciendo que la tasa de bits por segundo de la salida sea la necesaria como para que no sea apreciable ninguna pérdida de calidad con respecto a la entrada. Si usas esta opción, no es neceseario usar -b.
-async n muy útil para conseguir una buena sincronización del sonido de entrada y la imagen. De este modo, si grabamos nuestra voz mientras grabamos el vídeo veremos como nuestras palabras van en sincronía con el vídeo.
Algunos ejemplos:
$ ffmpeg -f oss -i /dev/dsp salida.mpg Para capturar sonido con OSS.
$ ffmpeg -f alsa -i plughw:1,0 salida.mpg Para capturar sonido con ALSA.
$ ffmpeg -f -x11grab -i :0.0 -s 1280x1024 -r 25 salida.mpg Para capturar vídeo de la pantalla.
$ ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 -sameq Desktop/out.mpg Para capturar vídeo de la webcam.
$ ffmpeg -async 1 -f alsa -i plughw:1,0 -f x11grab -s 1440x900 -r 25 -i :0.0 -b 128k Desktop/out.mpg Capturar vídeo y sonido a la vez.
Tener un sistema de 64bits en ocasiones da algunos quebraderos de cabeza, más que nada porque hay Software que es distribuido para plataformas x86 en su versión 32bits. Esta práctica es muy normal en desarrollos de Software privativo. Antes Adobe no distribuía su famoso Flash para 64bits para GNU/Linux y otro ejemplo es Skype, que aún se niega a publicar una versión de 64bits de su famoso programa de vídeo-conferencias.
Si además unimos a esto que Skype tiene problemas con las cámaras basadas en el driver gspca, tenemos un cóctel bastante amargo.
Para hacer funcionar nuestra flamante cámara basada en el driver gspca_561 o cualquier otra cámara basada en los drivers gspca en el Skype de nuestro Gentoo GNU/Linux 64bits debemos seguir los pasos siguientes:
# echo "media-libs/libv4l ~amd64" >> /etc/portage/package.keywords
# emerge -av media-libs/libv4l Para instalar la versión 0.6.1 de libv4l que está enmascarada y es la que mejor funciona.
# nano -w /usr/bin/skype Modificamos el fichero para que cuando ejecutemos Skype cargue la biblioteca de compatibilidad con V4l1:
#!/bin/sh
cd “/opt/skype”
if [ -n "/opt/skype" ] ; then
if [ "${LD_LIBRARY_PATH+set}" = "set" ] ; then
export LD_LIBRARY_PATH=”${LD_LIBRARY_PATH}:/opt/skype”
else
export LD_LIBRARY_PATH=”/opt/skype”
fi
fi
export LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so
exec ./skype “$@”
Si nos encontrásemos con la situación de que portage nos dice que Skype está enmascarado por el tipo de licencia, debemos decir a portage que acepte la licencia de Skype o bien que las acepte todas y así olvidarnos de eso. Basta con editar el fichero /etc/make.conf para añadir una de estas líneas:
ACCEPT_LICENSE="skype-eula" Para aceptar solo la licencia de Skype.
ACCEPT_LICENSE="*" Para aceptar cualquier licencia.
Con esto podemos usar normalmente Skype, y veremos como ya podemos disfrutar de nuevo nuestra Webcam.
¿Cómo podemos instalar un sistema operativo en un equipo en el que no hay ni ratón, ni teclado, ni tan siquiera un monitor? Por red, está claro. Para ello primeramente deberíamos haber configurado la BIOS de nuestro equipo para que inicie automáticamente desde CD.
Después debemos preparar nuestra imagen de CD para que inicie automáticamente el servicio SSH al iniciar el sistema, y por supuesto con una clave de paso conocida. El CD de instalación de Gentoo nos propone unos parámetros de arranque para este fin, un ejemplo: gentoo-nofb dossh passwd=miclavedepaso y nos iniciará el sistema sin soporte frame-buffer y arrancará el demonio SSH para entrar como root con clave miclavedepaso.
Pero claro, no tenemos teclado, no podemos introducir estos parámetros en el arranque. Por lo que modificaremos el fichero isolinux.cfg del CD de instalación para hacer esto.
# umount /mnt/cdrom Desmontamos la imagen original del sistema de ficheros.
# qemu -boot d -cdrom MiGentoo-20100119.iso Probamos la iso con Qemu.
Ahora podemos grabar migentoo.iso en un CD para arrancar nuestro equipo. Desde otro equipo podemos entrar por SSH de forma remota. Para ello debemos saber qué dirección IP tiene en nuestra red, cosa que supongo no será muy complicado de averiguar. Podemos entrar en nuestro router y mirar qué equipos hay con direcciones asignadas.
Sin embargo tenemos la opción de modificar la inicialización de la red para que en lugar de intentar configurar todas las interfaces de red haciendo uso de DHCP, ponga una dirección IP válida para nuestra interfaz de red. De este modo, una vez llevado a cabo el paso 4 anterior, prosiguiríamos con los siguitentes:
# emerge -av sys-fs/squashfs-tools Instalamos sys-fs/squashfs-tools si no lo estuviera.
# mkdir /tmp/squash /mnt/squash
# mount -o loop -t squashfs /tmp/iso/image.squashfs /mnt/squash
# cp -rp /mnt/squash/* /tmp/squash/ Montamos el sistema de ficheros SquashFS y copiamos el contenido.
# nano -w /tmp/squash/etc/conf.d/net Modificamos el fichero con nuestra configuración de red de modo que quede así:
# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d. To create a more complete configuration,
# please review /etc/conf.d/net.example and save your configuration
# in /etc/conf.d/net (this file :]!).
config_eth0=( "192.168.1.111/24" )
routes_eth0=( "default via 192.168.1.1" )
# mksquashfs /tmp/squashfs /tmp/iso/image.squashfs.nuevo
# umount /mnt/squash
# rm -f /tmp/iso/image.squashfs
# mv /tmp/iso/image.squashfs.nuevo /tmp/iso/image.squashfs
# rm -rf /tmp/squash Creamos la nueva imagen SquashFS, desmontamos la imagen antigua y substituimos la copia antigua por la nueva. Para acabar borramos la copia temporal del contenido de la imagen SquashFS.
Una vez hecho esto podemos continuar con el paso 5 del primer bloque. De esta manera con ejecutar en nuestra máquina de trabajo un comando como por ejemplo ssh root@192.168.1.111, ya podríamos comenzar con la instalación. También podríamos usar el CD como sistema de rescate, por supuesto.
Si vas a instalar Gentoo te recomiendo que uses GNU screen, ya que si la conexión SSH falla o simplente quieres apagar tu equipo de trabajo, puedes cerrar y volver a entrar en la sesión screen con posterioridad para seguir por donde ibas.
Sabemos que las nuevas versiones de WordPress son capaces de autoactualizarse a través del protocolo FTP. En mi servidor no tengo ni quiero configurar un servidor FTP, porque con el SSH me basto y me sobro. Podemos conseguirlo en Gentoo de un modo muy sencillo:
Instalamos el soporte de SSH2 para PHP:
# emerge dev-php5/pecl-ssh2
Reiniciamos nuestro servidor web Cherokee: # /etc/init.d/cherokee restart
Autoactualización con soporte SSH.
Cuando aparezca una nueva actualización de WordPress y este nos avise como de costumbre, veremos que nos aparece la pantalla de autoactualización de siempre, pero con SSH como una nueva opción. La seleccionamos y rellenamos los campos necesarios para actualizar. Debemos tener en cuenta algunas cosas muy importantes antes de pulsar en actualizar, como son hacer copia de seguridad de nuestra base de datos y de la propia instalación de WordPress. Que luego si algo va mal y no la hemos hecho nos podemos estar tirando de los pelos una hora y estaremos igual pero calvos.
Además, si os diera error y aparentemente lo tenéis todo correcto. Debéis tener en cuenta que la estructura de directorios y ficheros de vuestro WordPress deben tener como dueño al usuario de ejecuta el servidor web, en mi caso es cherokee.
Ejemplo de solución: # chmod -R cherokee:cherokee /var/www/directorio/a/wordpress
Tened en cuenta cosas como el usuario que usáis para hacer login, que debe tener permisos suficientes para ejecutar este proceso. En mi caso es root, pero no permito el acceso a root por SSH así que tengo que cambiar esto en mi configuración sólo y exclusivamente para la actualización automática. Aún así sigue siendo más cómodo esto que hacer la actualización manual.
Una de muchísimas cosas que me gustan de Gentoo es la estética de la consola. Supongo que la manera en que se suele administrar este sistema y sobre todo lo peculiar de su instalación hacen que los usuarios que disfrutamos de ella usemos la consola mucho. Y si lidias con algo durante mucho tiempo, qué mejor que sea lo más bonito posible, ¿no?
Algo que echo mucho de menos en una instalación de Ubuntu es esa tan cuidada decoración de la consola que tiene Gentoo, así que he decidido copiarla en mi portátil, donde uso Ubuntu 9.10.
Bueno, la consola en Gentoo básicamente se muestra como una consola con un prompt decorado con colores y, ademas, el comando ls que colorea los ficheros según el tipo al que pertenecen. Debemos ejecutar estos comandos:
Si algo te ha resultado útil, te ha ahorrado tiempo o dinero, o simplemente te ha gustado mi blog, puedes darme la voluntad para ayudarme a pagar los costos del sitio.