Hacía tiempo que quería tener la funcionalidad de conexión segura SSL en el protocolo HTTP (HTTPS) en mi servidor, sobre todo para poder utilizarlo cuando accedo al área de administración en redes poco seguras. De este modo me aseguro que la comunicación entre mi servidor y mi navegador va cifrada, además de reducir la posibilidad de un ataque man-in-the-middle.
Desde hace tiempo que lo puse a funcionar en Cherokee Web Server, y no puedo dejar de escribir qué hice para hacerlo funcionar, así además de no olvidarlo yo, puede servirle a alguien también.
Los pasos básicamente son instalar apropiadamente los certificados raíz de CAcert.org en el servidor (concatenados en un fichero único), generar una petición de firma de certificado, generar la firma de CAcert.org usando la petición anterior y por último instalar la clave privada y la firma en el servidor.
Generamos nuestra petición de firma de certificado (certificate signing request), ejecutamos en una consola el comando: # openssl req -nodes -new -keyout private.key -out server.csr
A la derecha, en el menú, pulsamos en Dominios y luego en agregar. Ponemos nuestro dominio, en mi caso juanluperez.com.
Después pulsamos en Certificados de Servidor, y en nuevo. Copiamos el contenido de server.csr y lo pegamos en la caja donde nos pide el certificate signing request.
Nos devolverá un texto que comienza con algo como ----BEGIN CERTIFICATE----. Copiamos el texto tal cual está en un fichero texto plano y lo nombramos certificate.pem. ¡Ojo! La última línea debe ser ----END CERTIFICATE----, no nos servirá una última línea vacía. Lo aviso para los usuarios del editor nano, que siempre añade esta línea al final.
Descargamos el certificado raíz root.crt y el certificado intermedio class3.crt.
# cat root.crt class3.crt > chained.crt Concatenamos los dos certificados en un único fichero, tal y como lo necesitará cherokee más adelante.
Activamos SSL, vamos en el panel de configuración de Cherokee haciendo uso de cherokee-admin, un interfaz web de administración muy sencillo, en General y en pestaña Network vamos a la opción SSL/TLS backend y escogemos OpenSSL/libssl. A continuación vamos a la pestaña Ports to listen, añadimos el puerto 443 y activamos la casilla TLS/SSL.
Pulsamos en la sección vServers, a la izquierda seleccionamos el servidor virtual sobre el que queremos aplicar el certificado. Luego pulsamos a la derecha en la pestaña Security, donde vamos a añadir todos los ficheros de certificado que se necesitan.
En Certificate añadimos la ruta a certificate.pem.
En Certificate key añadimos la ruta a private.key.
En Client certs. request tenemos tres opciones, skip para no pedir certificado de cliente, accept en el caso de que acepte certificado en el caso de que se le envíe o require, que exigirá un certificado de cliente válido para permitir el paso. En mi caso me basta con skip, ya que no estoy interesado en autenticación, solo en el cifrado.
En CA List añadimos la ruta a chained.crt.
Los certificados que generamos en CACert duran 6 meses, por lo que cuando caduque nuestro certificado tenemos que volver a cargar uno renovado, pero esto es muy sencillo. Vamos a CACert, iniciamos sesión, pusamos en “ver” en la sección “Certificados de servidor”, luego seleccionamos el certificado que está apunto de caducar (o ya caducado) y le damos a renovar. Luego nos mostrará el certificado, lo copiamos en un fichero certificate.pem y lo volvemos a cargar en Cherokee.
Si no vemos listado el certificado que queremos renovar, debemos pulsar en “ver todos los certificados”.
Si te ha resultado útil te agradecería que me ayudaras a mantener el blog,
También acepto donaciones a través de Bitcoin en esta dirección: 12Ktf11yD3FedJrRdoQFL5uvd8XFEgpQhB
Me encontré hace tiempo un problemilla para escribir el caracter ‘~’ en LaTeX, buscando como conseguir escribir ese símbolo correctamente encontré un método genial para salir de dudas. Se llama Detexify, es una aplicación web con un funcionamiento simplísimo, tan solo basta con dibujar el caracter que estamos buscando y él nos mostrará las propuestas que más se aproximen a nuestro dibujo, acompañado claro está de como conseguir escribirlo en nuestro LaTeX.
Si te ha resultado útil te agradecería que me ayudaras a mantener el blog,
También acepto donaciones a través de Bitcoin en esta dirección: 12Ktf11yD3FedJrRdoQFL5uvd8XFEgpQhB
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.
Bitcoin es básicamente una moneda virtual, sus características técnicas principales son que es descentralizada (P2P), segura y anónima. Antes de seguir con más información sobre esta moneda os propongo ver un pequeño vídeo de weusecoins.com.
La idea parece genial, ¿no? Claro, pero seguro que te preguntas si es verdad que hay gente que las usa, hace negocios con esta moneda, gente que venda cosas y compre cosas… Y la verdad es que sí, cada vez más negocios aceptan esta divisa como medio de pago y eso que solo tiene poco más de dos años de vida.
El código de divisa oficial para Bitcoin es BTC , no está reconocido como código ISO estándar, pero es el que se usa. Aunque también mucha gente utiliza el símbolo ฿, el problema es que este es el símbolo que se usa para el Baht tailandés, cuyo código ISO es THB.
Había pensado en escribir un artículo explicativo sobre esta moneda, pero hay muchos artículos y sitios que puedes usar para entender de qué va Bitcoin, así que voy dejarte algunos consejos prácticos de cómo comenzar a usar Bitcoin y conseguir tus primeros céntimos de Bitcoin para que pruebes cómo funciona.
Los Bitcoins pueden fraccionarse hasta 8 decimales, esto quiere decir que si por ejemplo el euro puede fraccionarse hasta 2 decimales, teniendo los céntimos de euro, Bitcoin se puede fraccionar hasta céntimos de micro Bitcoin (µBTC), esto quiere decir que podemos tener céntimos de una millonésima parte de un Bitcoin. Esto ha sido pensado así teniendo en mente la posible deflacción de la moneda, para que podamos fraccionarla tanto como necesitemos. También se habla de mili Bitcoins (mBTC) que son la décima parte de un céntimo de Bitcoin. En cualquier caso, si necesitásemos más fracciones, no habría inconveniente en modificarlo a posteriori, pudiendo llegar a los pico Bitcoins o más fraccionado si fuese necesario.
Comenzar a usarlos:
Si usas Gentoo puedes instalarlo de Portage directamente:
Si usas Ubuntu puedes entrar en su página oficial bitcoin.org y descargarlo e instalarlo desde el PPA oficial.
Si usas otra distribución o bien si usas Windows:
Descargamos el programa oficial de la web, bitcoin.org.
Descomprimimos el fichero.
Entramos en la carpeta correspondiente y ejecutamos el programa llamado bitcoin, que es la versión con entorno gráfico. La otra es para usuarios más experimentados. Hay dos versiones de cada uno, para 32 y 64 bits así que ejecuta la que se adecúe a tu sistema.
Una vez ejecutado podemos ver un interfaz bastante simple pero funcional, a la izquierda vemos nuestro saldo confirmado en la cartera y el que está todavía sin confirmar (se necesitan 6 confirmaciones de la red para ello). A la derecha los últimos 3 movimientos, tanto envíos como recibos. Y por último en la parte de arriba un menú que nos permite el acceso a algunas acciones clave.
Ahora hagamos nuestras primeras acciones con nuestra cartera y hagamos alguna transacción con Bitcoin:
Cifrar la cartera: nuestra cartera se encuentra en un fichero llamado wallet.dat, al principio sin cifrar, por lo que nuestras claves privadas que usamos para cifrar nuestros Bitcoins están ahí para cualquiera que tenga acceso a nuestro sistema de ficheros. Pulsamos en opciones y luego en encriptar cartera. Damos una contraseña lo suficientemente buena como para que no puedan hacernos un ataque de fuerza bruta rápido y arreglado. Ahora cada vez que vayamos a hacer una transacción de envío de monedas no pedirá nuestra contraseña. No olvides tu contraseña, ¡porque no podrás usar tus Bitcoins!
Crear una dirección para recibir dinero en nuestra cartera: pulsamos en recibe monedas y luego en nueva dirección. Podemos poner una etiqueta a cada dirección para así poder recordarlas más fácilmente. Podemos crear una dirección nueva para cada recibo de dinero, así podemos tener una para persona, para cada empresa, sitio o bien una por cada transacción.
Recibir tu primer pago: no va a ser mucho, puede que un céntimo de Bitcoin o tal vez tan solo unos mBTC (mili Bitcoins o milésimas de Bitcoin), pero será suficiente para que puedas hacer tus primeras pruebas de funcionamiento. Entramos en dailybitcoins y ahí ponemos una dirección que hayamos creado para recibir dinero y el código de comprobación. Después debemos esperar a que nos llegue la transacción. Esta web retrasa los pagos para enviar muchos de una sola vez y así reducir los costes por comisión en las transacciones, así que tal vez tengamos que esperar algunas horas a que nos llegue el pago, pero llega, yo ya lo he comprobado varias veces. También puedes recibir un pago en Bitcoin Faucet.
Enviar tu primer pago: te propongo algo, ¿qué tal si pruebas a hacer tu primer pago? Es muy sencillo, copias esta dirección 12Ktf11yD3FedJrRdoQFL5uvd8XFEgpQhB al portapapeles, Ctrl+C, pulsas en “envía monedas” en el programa de Bitcoin, pegas la dirección y envías la cantidad que desees y quieras. En este caso me enviarás una cantidad de monedas a mí. Puedes poner 0.00003 o la cantidad que quieras, 0.01, 0.5, 1, 10, 0.000001 (un µBTC o micro Bitcoin). Et voilà, ¡has hecho tu primer donativo con Bitcoin! ¿No es genial? Por cierto, muchas gracias
Enlaces de información:
elBitcoin.org: un blog de noticias relacionadas con Bitcoin en español.
Hasta ahora el único nombre de usuario que se usaba en mi página con WordPress era admin, no hay duda de que esto supone una situación comprometida para mi sitio. Es obvio que es más vulnerable a ataques pues ya se conoce un nombre de usuario existente en la web y ya solo necesitamos conocer la contraseña para conseguir acceso.
Los pasos son muy sencillos, en este caso he decidido usar la consola de comandos de MySQL, me resulta más cómoda la consola para tareas que no son complicadas, como esta.
mysql -u root -h localhost -p Entramos en la consola de administración de MySQL poniendo la contraseña de root para MySQL, suponiendo que root es el usuario.
show databases; Mostramos las bases de datos que tenemos y buscamos la de WordPress.
use wordpress; Indicamos que vamos a trabajar sobre la base de datos wordpress.
show tables; Mostramos las tablas y buscamos la tabla wp_users.
describe wp_users; Vemos la estructura de la tabla wp_users.
select user_login from wp_users; Mostramos toda la información de todos los usuarios que tenemos y buscamos el usuario admin y miramos su id, que probablemente sea 1.
update wp_users set user_login = "mi_nuevo_nombre" where ID = 1; Cambiamos el nombre de usuario para identificarnos en la web por el que prefiramos.
Si te ha resultado útil te agradecería que me ayudaras a mantener el blog,
También acepto donaciones a través de Bitcoin en esta dirección: 12Ktf11yD3FedJrRdoQFL5uvd8XFEgpQhB
En una entrada anterior explicaba como instalar SparkleShare desde un Overlay de Gentoo. En este caso vamos a instalar la última versión (0.4.0) de SparkleShare desde su repositorio oficial Git. Hay que tener en cuenta que tomamos como referencia la entrada anterior, por lo que se tiene en cuenta que hemos llevado a cabo los pasos anteriores y tenemos resueltas las dependencias de SparkleShare.
# emerge -C sparkleshare -q Desinstalamos la versión antigua de sparkleshare.
$ mkdir ~/src/ Creamos un directorio donde contener las fuentes si no existiera.
$ cd ~/src/ Nos movemos al direcotorio creado.
$ git clone https://github.com/hbons/SparkleShare.git Descargamos las fuentes de SparkleShare.
$ cd SparkleShare/ Entramos en el directorio de las fuentes.
$ ./autogen.sh --prefix=/usr/local Generamos el Makefile.
$ make Construimos…
$ su -c "make install" Y por último instalamos en /usr/local/.
Si ejecutamos desde consola sparkleshare start veremos como se inicia nuestro cliente…
Si te ha resultado útil te agradecería que me ayudaras a mantener el blog,
También acepto donaciones a través de Bitcoin en esta dirección: 12Ktf11yD3FedJrRdoQFL5uvd8XFEgpQhB
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:
Descargamos el kernel y la imagen de inicio de la instalación por red. Y los movemos a una carpeta llamada netboot.
Creamos una imagen de disco que será usada por Qemu: qemu-img create -f qcow hda.img 20G, el tamaño puede variar dependiendo de la necesidad de espacio que podamos tener.
Iniciamos la instalación de Debian: qemu-system-arm -M versatilepb -kernel netboot/vmlinuz-2.6.32-5-versatile -initrd netboot/initrd.gz -hda hda.img -append "root=/dev/ram"
Imagen del inicio del arranque de la instalación por red de Debian
Esperamos a que inicie el programa de instalación y seguimos las indicaciones en pantalla, en principio es una instalación normal como en un ordenador normal.
Instalación de Debian - Selección de idioma
Instalación de Debian - Instalación del sistema base
Para los fines que le daré a este sistema, no necesito por ejemplo un entorno de escritorio, pero sí que necesitaré un servidor ssh.
Instalación de Debian - Selección de programas
No debemos preocuparnos por no instalar un cargador de arranque, ya que le pasaremos los parámetros de arranque a Qemu.
Instalación de Debian - Cargador de arranque
Y por fin terminamos la instalación, debemos tener en cuenta que el sistema de instalación reinicia el sistema, por lo que volvería a iniciar el sistema de instalación. Así que lo mejor sería dejar que reinicie, y una vez que lo haya hecho, cerramos Qemu.
Instalación de Debian - Reiniciar sistema
Descargamos el kernel y la imagen de inicio que usaremos para iniciar el sistema instalado. Y para terminar solo queda probar nuestra nueva instalación con el comando que usaremos para arrancar nuestro sistema Debian: qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda hda.img -append "root=/dev/sda1"
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
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.
Donaciones con Bitcoin
Escanea la imagen con tu lector de códigos QR, arrastrála a tu cliente de Bitcoin o haz clic aquí para donar.