Recuperar archivos de EncFS (si olvidas la contraseña)


Hace rato me pasó algo que casi me causa un aneurisma: Resulta que en mi disco duro principal mantengo protegidos archivos de vida o muerte en una partición pequeña de 50GB que contiene una carpeta encriptada vía EncFS (para luego subir el backup cifrado a una nube encriptada también). Bueno pues resulta que en la madrugada cambié la contraseña de Gnome EncFS Manager (frontend que uso para EncFS) por una ALEATORIA confiando en que el gestor de claves la guardaría y montaría siempre. Apagué la computadora (antes de hacer un backup "en claro" de la data) salí, y cuando regresé había perdido mi data CRÍTICA para siempre... (o eso pareció)

Hice todo lo que se me ocurrió:

  • Montar usando EncFS como root con las opciones public y anykey
  • Usar Photorec para recuperar parte de la data (al menos versiones anteriores)
  • Buscar la contraseña en el portapapeles/gestor de contraseñas
  • Hacerle bruteforcing al hash y al acceso directamente (me sabía parte de la contraseña)
  • Crear otro punto de montaje encriptado (con otra contraseña) y reemplazar el archivo de configuración de la carpeta problemática por el de la carpeta nueva.

Todo fue inútil, por diferentes razones, pero NADA funcionó.

Pregunté en las comunidades Linux dentro de Facebook y Google Plus y todos me respondieron con las cosas que ya había intentado o con lo que más me temía: Es imposible recuperar esa data (decían); Negado a darme un tiro (o algo similar) Decidí recurrir a los foros de los programas directamente (Gnome EncFS manager y EncFS propiamente) donde hallé la solución que buscaba:


Básicamente, si se tiene un respaldo de la carpeta encriptada con una versión ANTERIOR del archivo ".encfs6.xml" (previa al cambio de la contraseña pues) basta con hacer un swapping de ese archivo (reemplazar el nuevo por el anterior dentro de la carpeta) y la carpeta encriptada montará como es debido con la vieja contraseña. Por suerte, yo tenía acceso a dicho archivo y todo resultó como debía.

Instalar MariaDB 10.0 en Ubuntu 14.04 y derivados


Para instalar MariaDB 10.0 en Ubuntu 14.04 y derivados tenemos que hacer lo siguiente:

1. sudo apt-get install software-properties-common
2. sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
3. sudo add-apt-repository 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main'
4. sudo apt-get update
5. sudo apt-get purge mysql*
6. sudo apt-get purge mariadb*
7. sudo apt-get install mariadb-server

Y eso sería todo... Se nos pedirá una contraseña de root para nuestra base de datos y listo.

¿Servidor en producción? Instalación Segura

Para hacer una instalación segura corremos el comando:

sudo /usr/bin/mysql_secure_installation

Que nos hará algunas preguntas las cuales debemos leer detenidamente para proteger nuestro setup.

Extra: Maniputlar el arranque/detención

sudo /etc/init.d/mysql stop (si está corriendo)
sudo /etc/init.d/mysql start (si está detenida)

Usando MariaDB...

Luego de instalar podremos loguearnos como root a la base de datos con el comando:

mysql -u root -p

para comenzar a utilizarla como lo haríamos comúnmente (creando DB's, usuarios y demás).

P.D. Si vas a acceder remotamente a tu DB, no olvides abrir en tu firewall el puerto 3306/tcp para dicho cometido.

Cómo clonar un disco duro (o SSD) usando Linux


Si necesitas clonar un disco duro completamente, lo más fácil para lograrlo es tomar el LiveCD/LiveUSB de tu distribución linux favorita, bootear desde est@, instalar los paquetes smartmontools, gparted y gnome-system-monitor para después (con ambos discos duros conectados a la PC si vas a hacerlo "al vuelo") hacer lo siguiente:

1) Limpiando el disco duro "virgen"

Para esto abrimos gparted como root y seleccionamos el disco duro nuevo, después nos vamos a Dispositivo>Crear Tabla de particiones, seleccionamos la adecuada para nuestro caso (generalmente msdos y/o gpt) y listo:


2) Chequeo SMART

Ahora nos aseguramos de que el disco duro nuevo esté sano con el siguiente comando:

sudo smartctl --all /dev/sdX

(Donde /dev/sdX sería la ruta de nuestro disco duro "virgen"), Este comando nos debería mostrar el siguiente output en un disco duro nuevo:


3) Clonación

El proceso de clonación es muy sencillo, en una pestaña de nuestra terminal corremos:

sudo dd if=/dev/sdY of=/dev/sdX bs=4M;sync

(Donde /dev/sdY sería la ruta del disco a clonar y /dev/sdX sería la ruta del disco destino)

Y en otra diferente:

watch -n5 'sudo kill -USR1 $(pgrep ^dd)'

Regresamos a la primera pestaña y deberíamos ver el progreso de la clonación con dd en curso:


4) Acelerando las cosas

Para que todo vaya más rápido abrimos gnome-system-monitor como root y le damos la prioridad más alta al proceso dd iniciado por el usuario root (es decir, nuestra clonación en progreso).



NOTA: Si bien pudimos hacer esto con el comando/parámetro "nice" al iniciar dd, por alguna razón noté que (al menos en mi caso) haciéndolo así el proceso no tomaba la prioridad deseada, por eso estoy recurriendo a la interfaz gráfica para esto.

Ahora sólo queda esperar. En mis pruebas la mayoría de discos duros (sin importar el tamaño) ha tardado en clonarse alrededor de 1 hora. Esto es porque, acorde al tamaño, modelo y demás, los discos de mayor tamaño tienden a ser más modernos y se copian a velocidades superiores que los discos de menor tamaño, dejando el tiempo "en tablas" prácticamente para discos de 300GB a 1TB hasta donde pude observar.

5) Verificando las cosas

El mejor "test" que podemos realizar tras una clonación es bootear la máquina desde el disco duro clon para asegurarnos de que todo funcione como se debe y en caso de que sea así, reajustar/reacomodar archivos/particiones y otras cosas si lo llegásemos a requerir; SIN EMBARGO no se te olvide previamente volver a correr un test de S.M.A.R.T desde el entorno live para asegurarte de que el nuevo disco duro (ahora con la data del anterior) quedó en óptimas condiciones para empezar a operar.

Extra: Crear una imagen

Si no puedes hacer el proceso "al vuelo" lo que puedes hacer es crear una imagen de disco directamente con dd (y gzip) para después pasarla al destino final deseado. Este proceso involucra los siguientes comandos:

Creación

dd if=/dev/sda conv=sync bs=4M | gzip -c  > ruta/para/imagen/hdd.img.gz

Restauración

gunzip -c ruta/a/hdd.img.gz | dd of=/dev/sda conv=sync bs=4M

P.D. Sin importar qué método de clonado elijas, recuerda siempre que se puede clonar un disco más pequeño en uno más grande pero mo al revés y de hecho la idea de un "clonado" es usar discos de capacidades iguales de ser posible.

Comprar y Vender Bitcoins en México con Bitso


NOTA: Si no sabes qué son las criptodivisas (bitcoin por ejemplo) te recomiendo leer este otro post que hice hace algún tiempo sobre el tema.

Me acabo de encontrar la mejor casa de cambio para Bitcoin que hay en México: Se llama Bitso y su uso es bien sencillo, veamos cómo funciona:

1) Date de alta


El registro en Bitso es muy limpio y conciso. Sólo da click aquí (se abrirá el enlace en una nueva ventana); Necesitarás rellenar únicamente los datos que ves en la imagen (obviamente usando un e-mail válido y de un servicio seguro/encriptado como ProtonMail o bien, si no quieres abrir otra cuenta usa alguna de las que ya tengas con autenticación de 2 factores habilitada por tu seguridad).

Una vez creamos nuestra cuenta, bitso nos enviará un e-mail de bienvenida con nuestros datos de acceso (puede tardar un poco), en caso de que al cabo de una hora no lo tengamos en nuestra bandeja de entrada (o en SPAM) podemos pedir un mail de restablecimiento de usuario/contraseña para corroborar que nuestra cuenta fue creada y poder acceder así a la plataforma.

2) Verifica tu cuenta


Para poder comprar y vender bitcoin en bitso necesitarás verificar tu cuenta; Para lograr esto sólo necesitas subir al sistema una copia digitalizada (en full color a 300dpi de preferencia) de la parte frontal (y otra de la trasera) de tu credencial para votar (y/o de cualquier otra identificación oficial como licencia para conducir/pasaporte) además de un escaneo (igual en full color a 300dpi de preferencia) de un comprobante de domicilio válido (Con "válido" me refiero a lo usual, vigencia de no más de 3 meses atrás, que esté a tu nombre, con la dirección que se lee en tu identificación proporcionada etc); Yo personalmente usé un estado de cuenta Telcel en este apartado.

3) Habilita la TFA

Es importante que en cuentas de este tipo de servicios (donde se maneja dinero y/o datos sensibles) activemos todas las medidas de seguridad posibles. En el caso de mi cuenta Bitso, yo activé la two-factor-authentication por medio del Google authenticator que tengo instalado en el iPhone.

4) Abonar Saldo

Puedes agregar saldo (en MXN) a tu cuenta de muchas maneras, siendo la más fácil, fiable y sin comisiones (por parte de Bitso) el SPEI/Transferencia interbancaria Nacional. Otras maneras de abonar saldo son:


NOTA: Para los que cuentan con una cuenta en Banorte/Ixe (Como es mi caso) puedes añadir la cuenta de Bitso (que también es Banorte) a tu catálogo de cuentas de terceros para hacer una transferencia banorte > banorte con únicamente el número de cuenta y la referencia/concepto (sin necesidad del número CLABE y sin la comisión de 8 pesos y fracción que cobra el SPEI) para abonar saldo en MXN a tu cuenta, esta información te la da bitso al generarte el reporte PDF para transferencia SPEI (hasta abajo del mismo como una nota) cuando seleccionas dicho método de abono.

Como verán, según el método que vayan a usar, pueden abonar desde 40 MXN a su cuenta de Bitso para comprar bitcoin con ese dinero.

5) Compra y Vende Bitcoins con Bitso

El proceso de compraventa es bien sencillo, una vez estés registrado y hayas abonado saldo a tu cuenta, tanto comprar como vender es cosa de un click (literalmente):


En este caso estoy comprando bitcoins con pesos, sólo tengo que poner cuántos pesos quiero convertir a bitcoin y dar click en el botón verde de comprar bitcoins); Automáticamente mi saldo en MXN se convierte en BTC. Para vender, sólo damos click en la casilla "Yo Quiero>Vender bitcoins" y el proceso es el mismo:


6) Retirar tus fondos

Como todos sabemos, la nube sólo es segura para todo aquello que no necesita estar seguro. Lo ideal es NO dejar tus Bitcoins y/o Pesos demasiado tiempo en Bitso. Si ya tienes un setup bitcoin adecuado sólo genérate una dirección para Bitso y retira tus monedas bitcoin a tu monedero personal con su formulario:


El proceso toma apenas unos minutos y si tienes tu cliente bitcoin sincronizado con la red verás tu transferencia reflejada rapidísimo:


Para transferir pesos (por ejemplo si vendiste BTC y ganaste MXN), tienes las siguientes opciones:


Siendo de nuevo la más aconsejable SPEI (por rápida, confiable y sin comisiones por parte de bitso entre otras cosas), para la cual sólo necesitarás una cuenta bancaria válida de la que ocuparás tener los siguientes datos a la mano:


(Recuerda que tu "NIP de transacción" es el que seleccionaste al crear tu cuenta en Bitso). Y pues eso sería todo. ¿Qué estás esperando?:

5 consejos infalibles para volver a disfrutar del email

Usamos el E-mail a diario, y a diario nos llueven más y más mensajes. ¿Recuerdan allá por los 2000's cuando era "cool" tener una dirección de correo electrónico? Parece que dejó de serlo cuando se convirtió en una obligación, un medio para que todos te encontraran, te presionaran e incluso te hostigaran.

No sé ustedes, pero en mi caso, la mayoría de mis cuentas de correo de uso común se volvieron un caos. La tan aclamada "Cuenta de Google" no pasaba un sólo día sin tener más de 40,000 mensajes sin leer (mensajes que obviamente no me importaban ya para nada), la cuenta @miempresa que manejo recibía más promociones y alertas que otra cosa y otras cuentas más que llegué a abrir, quedaron en el olvido de plano. Había intentado de todo: Una cuenta maestra, el borrón y cuenta nueva, usar diversos clientes de escritorio... Eventualmente todas mis cuentas (incluso las que digo que "quedaron en el olvido") se llenaban de SPAM y era imposible gestionarlas de manera efectiva sin importar el método que aplicara.

Al principio creí que era mi culpa (al menos en la cuenta del tipo @miempresa por ejemplo): Si bien soy cuidadoso con dónde meto mi e-mail en el mundo digital, la realidad es que a lo largo del año asisto a muchas expos y eventos sobre emprendimiento de ésos donde, (al estar parado revisando un stand) alguna edecán furtiva llega y en cuestión de un segundo con un láser escanea tu gafete y se lleva todos tus datos (entre ellos tu e-mail) llenando este último de promociones. Esa era mi explicación a todo el SPAM que recibía; Sin embargo (como veremos más adelante) puede que haya estado equivocado y haya algo más macabro detrás...

He aquí entonces la lista de 5 cosas que hice para volver a tomar el control de mi correo electrónico. Confío en que estos consejos/tips te servirán a ti también:

1) Adiós Google Apps


Lo primero que hice, fue eliminar el dominio de mi empresa de Google Apps (aún cuando yo era uno de los pocos que había quedado con el servicio gratis para 10 usuarios desde que Google empezó a cobrar); Esto debido a varias razones: La principal se debió a que tuve la oportunidad de probar Zoho Mail con un cliente y éste servicio no sólo te ofrece de 10 hasta 25 usuarios gratis (10 de entrada, hasta 25 vía referrals), sino que también tiene una serie de características y ventajas que me enamoraron (hablaré de ellas en un post futuro); Aunado a ésto estaban mi disgusto por la maña de Google de leer tus correos para soltar anuncios relevantes durante el uso de sus productos en línea y la pobre gestión de las "multicuentas" en su plataforma, entre otras cosas.

Si eres un usuario un poco más técnico, sabrás que al hacer el cambio de proveedor de correos realmente no pierdes tus direcciones ni nada, sólo cambias el proveedor como tal, (lo que en teoría conlleva a que te sigan bombardeando con el mismo SPAM de antes en la misma dirección pero en otra bandeja de entrada ahora en dado caso)... Aquí es donde "me dieron escalofríos": Desde que cambié las cuentas @miempresa de Google Apps a Zoho Mail (y con ellas mi dirección de correo principal) el SPAM de todos los días se redujo de una manera sorprendente, aún cuando la dirección seguía activa para envío y recepción y no me había dado de baja de ninguna lista de correo como tal, con esto no estoy diciendo que el filtro de SPAM de Zoho sea mejor que el de Gmail (o que no lo sea), me refiero a que no me llegaron los correos habituales de SPAM ni a mi bandeja de entrada ni a mi correo no deseado en el transcurso de varios días (y el ratio de SPAM pasado se mantiene muy bajo a comparación de antes la verdad). ¿Qué quiere decir esto? Mi suposición es que quizá Google tenía mi dirección de Google Apps "vendida" pero no tengo prueba fehaciente de ello (quizá de verdad sólo sea que el filtro anti-spam de Zoho es mejor o algo así)... Eeeen fin, raro/escabroso o no, estoy feliz de tener prácticamente cero SPAM (y cero anuncios) en mi correo ahora junto a otros goodies que Zoho me ofrece.

2) ProtonMail


Uso servicios cloud que considero "de misión crítica" en mi vida diaria, servicios como podrían ser DigitalOcean, Evernote o Cloudflare. Estos servicios obviamente requieren tener una dirección de correo electrónico asociada, y como son bastante importantes, delegué su manejo a mi cuenta en el servicio de correo electrónico encriptado del CERN: ProtonMail además de añadirles autenticación a 2 factores... Esto principalmente porque no me gustaría ver algún día la cuenta asociada con estos servicios comprometida de algún modo, entonces qué mejor que usar el proveedor de e-mail más seguro.

3) Seguridad 101


Así como protegí mis servicios de misión crítica con TFA (two-factor-authentication), también lo hice para mis cuentas de correo empresariales. Gracias a cómo funciona Zoho Mail, puedo usar un sólo dispositivo móvil para autenticarme en las 3 cuentas de correo @miempresa que manejo dentro de la plataforma después de haber introducido sus respectivas contraseñas.


Aunado a la seguridad en el terreno empresarial, aproveché que hace poco compré un dominio para uso personal con Namecheap, registrante que, (entre varias features que ofrece con sus dominios) me permite crear direcciones para reenvío de correos. Esto me es útil porque por ejemplo ¿recuerdan el caso de las expo que les dije? Muchas de éstas no aceptan un correo @gmail, @outlook, @ymail, etc al registrarse, ¡Quieren el de tu empresa para hacerte SPAM! La manera en que pude atacar esto gracias a mi dominio personal con namecheap es que ahora tengo una cuenta del tipo spam@yo.com que redirecciona a una cuenta común que nunca uso, y con esta cuenta "spam@yo.com" me puedo registrar en todos esos lugares sin problema. Lo mismo para la dirección que uso para comprar en línea (del estilo shop@yo.com) que redirecciona a un correo específico para revisar las promociones después sin que molesten en mi bandeja de entrada principal.

4) Buenos Clientes de Correo


Aprendí que manejar varias cuentas mediante la web es tedioso. Sobretodo si éstas tienen contraseñas largas y/o autenticación de 2 factores habilitada. Es por eso que ahora también uso algunas aplicaciones cliente en modo IMAP para mis diversas cuentas, siendo los clientes que uso Thunderbird en Linux y Boxer en iOS. Estos 2 clientes me dan la funcionalidad que necesito en ambas plataformas (e incluso ciertos plus), haciendo de la gestión de mis correos una tarea sencilla y fácil de disfrutar todos los días.

5) Unroll.me

Con el paso del tiempo, nos vamos suscribiendo a más y más listas de correo (¡A veces ni sabemos cómo pasó!); ¿Cómo eliminar/modificar dichas suscripciones de tajo? Es difícil. Incluso cuando nos "damos de baja" manualmente acorde a las instrucciones del newsletter parece que no nos hacen caso, ¿verdad? Bueno, si lo que quieres es revisar y modificar las suscripciones a las listas de correo que te tengan agregado lo más fácil es usar Unroll.me:


Unroll.me es un servicio que, (tras pedir acceso a tu cuenta de correo) Se encargará de ayudarte a revisar y modificar (en mi caso específico eliminar jajajaja) todas las suscripciones a listas de correo que tengas en una dirección determinada. Es un muy buen servicio, sin embargo peca de "invasivo" al pedir demasiado control sobre tu correo electrónico... Mi recomendación es usarlo en esas cuentas que "ya no tienen solución" durante una semana y dejar que el servicio haga su trabajo no sólo removiéndote de las listas de correo que consideres molestas acorde a las instrucciones de las mismas automáticamente, sino manejando los correos que lleguen desde éstas durante ese tiempo para que los newsletters empiecen a tomar tu dirección de correo como "no disponible" y dejen de enviarte e-mails basura después de esa semana; Más tarde puedes desactivar tu dirección de correo electrónico de unroll.me sin problema alguno (revocándole previamente los permisos que le hayas concedido desde la interfaz de tu proveedor).

En esta era digital donde el e-mail se genera "a granel" y es uno de nuestros medios de comunicación más importantes, es vital mantenerlo limpio, seguro y sobrio. Gracias a éstos 5 puntos yo logré retomar control del mío... ¿Retomarás el control del tuyo también?

#QuickTip: Añadir correo de iCloud a Thunderbird


Si quieres añadir tu correo de iCloud al cliente de correo thunderbird, lo que tienes que hacer es utilizar la siguiente configuración (obviamente usando tus datos específicos donde aplique):


Esta información viene directo de Apple como podrán ver en este enlace. Lo único que hay que cambiar (al menos en el caso de thunderbird) con respecto a lo que ellos dicen son los nombres de usuario entrante y saliente, donde en lugar de escribir toda la dirección de correo en este caso sólo tenemos que escribir el nombre de usuario (de otro modo nos dará error).

SSL, IPv6 y SPDY Gratis para tu dominio con Cloudflare


Recientemente Cloudflare anunció SSL gratuito para los dominios de todos sus usuarios en cualquiera de los planes disponibles (incluso el free) añadiendo, (para quienes activen SSL) soporte para el nuevo protocolo SPDY en el proceso. Estas novedades se aúnan a la no tan reciente (lanzada hace unos meses ya) adición de soporte para IPv6 en todos los planes también, haciendo de Cloudflare un must-have para todos aquellos que posean un sitio web y/o dominio actualmente. Si aún no conoces Cloudflare, puedes leer nuestro post pasado sobre el tema (incluye video).

Fig. 1
Para activar SSL en tu dominio previamente habilitado en Cloudflare, sólo tienes que irte a los settings del mismo y en la sección de SSL seleccionar la opción que más te convenga (ver Fig 1), siendo las disponibles:

  • Off: Sin SSL.
  • Flexible: SSL del lado de Cloudflare, encriptando el tráfico del usuario a tu sitio. Ésta opción no necesita un certificado SSL público ni implementaciones programáticas. En el momento que un usuario acceda a cualquiera de las páginas de tu dominio a través de https:// se encriptará su conexión hasta donde cloudflare tenga alcance (los elementos externos no seguros como widgets de terceros permanecerán sin encriptar).
  • Full: Requiere SSL implementado en tu servidor, más no un certificado SSL público.
  • Strict: Requiere un certificado digital SSL público, expedido por una entidad de confianza.
En cualquiera de los casos, deberás hacer que tu sitio/página redireccione todas las peticiones http:// a https:// en automático, ya que aún con extensiones como HTTPS Everywhere habilitadas del lado del cliente (hablando del caso de Firefox por ejemplo), si el servidor "no sabe" que puede responder con https:// per sé, seguirá procesando ambos tipos de requests y no se encriptará todo el tráfico de los usuarios. Un excelente video sobre cómo implementar SSL en un sitio/app es el que hizo Ryan Bates de Railscasts hace tiempo, y (aunque dirigido a Rails en ese caso) los mismos conceptos aplican para cualquier tipo de sitio/implementación.

Cabe destacar que de querer llevar a cabo las implementaciones más profundas de SSL en tu dominio (es decir, todas aquellas que requieran y/o pudieran requerir un certificado especial como la Strict y/o la Full) vía Cloudflare necesitarás estar dentro de un plan de pago en su plataforma.

Firmar digitalmente tus correos en Thunderbird

Cuando manejamos correos electrónicos @miempresa es importante mantener un nivel de profesionalismo en nuestras comunicaciones, sobretodo si éstas están relacionadas con nuestros negocios. Según el proveedor de correo que tengas, puedes hacer que tus correos electrónicos salgan con varios sellos de integridad ya añadidos como podrían ser algunos headers específicos de tu dominio o las claves DKIM por ejemplo... Sin embargo, a la hora de buscar un medio más personal de identificación y/o validación para tus comunicaciones siempre puedes contar con una clave GPG, de las que ya he hablado en el pasado (haz click en el enlace para saber cómo generarlas). Una de estas claves es algo así como una firma autógrafa pero en formato digital e identifica lo que sea que estés firmando con ella como auténticamente tuyo (como un correo electrónico enviado desde tu dirección profesional por ejemplo). Yo genero una clave GPG personal cada año para firmar mis comunicaciones de negocios y añado su fingerprint en el footer de mis correos electrónicos por ejemplo.

Aquí tenemos que aclarar que firmar un correo electrónico no quiere decir encriptarlo (prohibir su lectura estrictamente mediante cifrado a todo aquél que no tenga acceso a una clave GPG y permisos para usarla per sé) y aunque tu misma clave para firma puede servir para ésto también, el proceso de encripción de correos vía GnuPG no será explicado en éste post, ya que sólamente nos centraremos en el proceso de firmado.

¿Cómo firmo mis correos?

Una vez generada y exportada tu clave GPG (acorde al tutorial enlazado previamente), necesitarás añadir a Thunderbird un add-on que se llama Enigmail:


Una vez añadida, la extensión nos preguntará si queremos iniciar un asistente para configurarla, recomiendo responder que sí:


Más tarde, se nos preguntará si queremos activar Enigmail para todas nuestras cuentas activas en la aplicación o sólo para algunas de manera selectiva, yo opté por lo segundo. Luego, nos preguntará si queremos encriptar los mensajes por defecto o no, es vital responder que NO queremos que lo haga:


También nos preguntará si queremos firmar los mensajes por defecto... Aquí mi consejo también es responder que no, para que podamos seleccionar qué mensajes firmar digitalmente y cuáles no (de todos aquellos que se envíen desde la cuenta específica que elegimos para autenticar):


Luego nos preguntará si queremos hacer ajustes específicos en las preferencias de Enigmail. Mi consejo es responder que sí, ya que dichos ajustes tienen que ver con la selección de clave GPG a usar y otros puntos importantes:


Una vez terminado el asistente nos dará un resumen de las acciones a realizar y tras la confirmación, al redactar u mensaje podremos firmarlo digitalmente desde el menú de Enigmail en la ventana de redacción:


Al enviar se nos pedirá la contraseña de la clave GPG que estamos usando, la ponemos y listo, el mensaje se enviará firmado al contacto que podrá verlo como tal en su webmail y/o cliente de correos predeterminado junto a nuestra firma GPG pública en el cuerpo del mismo.

Linux: Un WINEPREFIX para cada aplicación Wine instalada


Como todos los Linuxeros sabemos, cuando se requiere usar alguna aplicación Windows en nuestro Linux siempre podemos contar con Wine, la capa de compatibilidad directa para programas de ésta plataforma. Sin embargo lo que pocos saben (hasta que lo viven) es que las dependencias de algunas aplicaciones pueden romper y/o dejar inutilizables otras, es por esto que es recomendable instalar c/u de las aplicaciones Windows que vayas a usar dentro de tu Linux bajo un prefijo Wine distinto. Para hacer esto, necesitaremos seguir el siguiente proceso (en la línea de comandos):

1. WINEPREFIX=$HOME/.wine-app/ winecfg
2. WINEPREFIX=$HOME/.wine-app/ winetricks libs01 libs02 libs03
3. WINEPREFIX=$HOME/.wine-app/ wine setup.exe

NOTA: Recuerda reemplazar app por el nombre de la aplicación que estés instalando, (por ejemplo "evernote") en los comandos de arriba.

Básicamente lo que estamos haciendo aquí es primero inicializar un prefijo vacío con la configuración predeterminada de Wine, abriendo la ventana de configuración después de manera automática para editar cuestiones como la versión de Windows a usar, el nombre de usuario y la organización a nuestro gusto (comando #1).

Luego, instalamos las dependencias de la aplicación Windows que queremos usar vía winetricks, (comando #2) para finalmente correr el instalador de la aplicación a instalar forzando a que la ruta final de destino sea el prefijo que creamos previamente (comando #3). Instalar apps Wine de esta manera te permite tener un control más completo sobre los entornos de c/u de tus programas "emulados" (recuerden que Wine no es un emulador, so eso está mal dicho jeje) y así te evitarás conflictos de dependencias cruzadas.

P.D. Este es más o menos el mismo proceso que siguen programas/scripts como PlayOnLinux al instalar programas Windows en sus llamadas "botellas" sin embargo, (aunque separar las aplicaciones wine en entornos isolados es lo mejor que puedes hacer); Para todo lo que no son juegos generalmente es mejor seguir un enfoque más orgánico y usar Wine por sí solo como estoy recomendando aquí.

Remover sudo-user y habilitar Root en Ubuntu 14.04 y derivados


Ubuntu por defecto no trae habilitada la cuenta de root, teniendo solamente acceso al superusuario mediante "sudo" (que está habilitado por defecto en la cuenta del usuario estándar que se crea al instalar el sistema).

Este setting puede conllevar riesgos de seguridad en ciertos deployments, (en la computadora de un usuario normal no hay tanto problema, pero si hablamos de redes y servidores la cosa es distinta). Para habilitar la cuenta de root entonces y cambiar el setup predefinido, primero corremos en terminal:

sudo passwd root

Se nos pedirá nuestra contraseña de usuario para entrar en modo sudo y después una nueva contraseña para el usuario root en el sistema. Lo ideal es usar una distinta a la de nuestro usuario estándar.

Luego tenemos que quitar al usuario estándar sus privilegios de sudoer, para esto hacemos:

sudo nano /etc/group

Y en archivo que abrirá buscaremos "sudo" encontrando algo parecido a la siguiente línea:

sudo:x:27:user

Removemos el nombre de usuario de dicha línea, guardamos y salimos para después reiniciar el equipo. Notaremos que a partir de entonces, (al hacer un comando "sudo" usando ese usuario) el sistema nos mostrará un error del tipo:

user no está en el archivo sudoers. Se informará de este incidente.

Y ahora para acceder a comandos del superusuario podremos hacer el clásico:

su -

Entrando la contraseña que pusimos para Root en el prompt.

Nuevo Heartbleed: vulnerabilidad en Bash detectada (CVE-2014-6271, #Shellshock)


Red Hat ha anunciado el descubrimiento de una nueva vulnerabilidad en bash que puede ser explotada por un atacante para establecer variables del entorno de forma remota e incluso ejecutar comandos de shell en un sistema Unix based/like, (ya que alguien podría declarar una variable del tipo VARIABLE = function() remotamente en dicho sistema y ejecutar código arbitrario en el mismo). Para los que no entiendan la magnitud de este problema, Bash es el entorno de shell usado no solo en prácticamente todos los sistemas Linux allá afuera sino también en OS X y en algunos de la familia BSD,  (si no me equivoco) por lo que si utilizas algún sistema operativo Unix based/like como éstos, deberías tomar cartas en el asunto... Para saber si tu sistema se encuentra afectado por la vulnerabilidad mencionada, corre en consola:

env x='() { :;}; echo OOPS' bash -c /bin/true

Si el output de dicho comando es OOPS entonces tu versión de bash está afectada por la vulnerabilidad y deberás actualizarla lo antes posible. Por otro lado si el output es:

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for 'x'

tu sistema está seguro (al menos contra esta vulnerabilidad).

La mayoría de distribuciones linux ya están distribuyendo los bugfixes adecuados a través de sus canales de updates convencionales, so si estás en un sistema Fedora/CentOS/RHEL (por ejemplo) bastará con correr:

sudo yum -y update

para obtener las actualizaciones pertinentes y parchar la vulnerabilidad. Asegúrate de revisar que la actualización de bash venga en la descarga y verifica el estatus de tu sistema con el comando citado previamente después del parchado.

MEAN Boilerplate v2.0: Creando apps NodeJS multi-hilo en segundos


¿Alguna vez te ha llamado la atención desarrollar apps, sitios web y/o API's usando el famoso MEAN Stack? (MongoDB, ExpressJS, AngularJS & NodeJS); El MEAN Stack no sólo es lo de hoy sino que también propicia un workflow bastante rápido y fresco al permitirnos manejar la gran mayoría de nuestro development en base a Javascript y/o Coffeescript (tanto las partes del frontend como del backend); Descansando sobre la súper veloz plataforma que es NodeJS y con todos los beneficios que vienen de desarrollar sobre ésta.

Sin embargo en ocasiones parece "complejo" trabajar con todo el ecosistema de NodeJS debido a que es demasiado modular, requiriendo muchas veces repetir ciertos procesos (y/o código) una y otra vez por proyecto, integrando piezas por aquí, piezas por allá... ¿No sería mucho más cómodo que existiera una plantilla con toda la base general ya hecha para empezar a construir el proyecto de tus sueños? De éstas hay muchas... Sin embargo la gran mayoría peca de complejidad y algunas incluso fallan en modularidad (irónicamente).

Es por ésto que existe MEAN Boilerplate, la plantilla perfecta para tus proyectos mean-powered. Aunque podrá parecer minimalista en el núcleo, MEAN Boilerplate viene equipada con una serie de poderosas features pensadas para evitarte horas de trabajo redundante y permitirte centrarte en lo que más importa. ¿Quieres conocer dichas características? Veamos:

  • Uso completo del MEAN Stack (MongoDB, ExpressJS, AngularJS & NodeJS)
  • Estructura MVC
  • Capacidades de configuración YAML
  • Script "nodemon" para desarrollo
  • Coffeescript como lenguaje principal de scripting
  • LESS como lenguaje principal para styling
  • Fixes para IE
  • Uso de Bower
  • Twitter Bootstrap, jQuery, Angular-Resource (para AngularJS) y Font-Awesome incluidos por defecto
  • Manejo de errores integrado
  • Optimizaciones SEO
  • Implementación "crypted-auth" para restringir acceso a contenido protegido
  • Soporte multi-hilo integrado (clusterización)

¿Interesante no? Y lo mejor, crear un proyecto listo para usar/modificar es cosa de unos segundos asumiendo que ya tengas los elementos del MEAN Stack instalados en tu computadora/servidor (MongoDB, NodeJS, ExpressJS) además de Bower y Git; En dicho caso basta con correr:

1. git clone https://github.com/Jmlevick/mean-boilerplate.git MY_APP
2. cd MY_APP
3. git init
4. npm install
5. bower install

Y para ver tu proyecto recién creado en vivo, corres:

npm start

Lo que lo lanzará en http://localhost:3000. ¿Te ha gustado la MEAN Boilerplate? Es un proyecto de código libre creado por mí (usado en producción para varios proyectos de Xenode Systems), así que si lo has encontrado útil agradecería que te pasaras por su repositorio oficial en Github y le clickearas al botón de Star, De antemano, muchas gracias:

Get FFmpeg working on Ubuntu 14.04 and derivates


So as many of you might have noticed, in Ubuntu 14.04 we don't have ffmpeg anymore as it was replaced by libav (a ffmpeg fork of the project); So if you want to issue commands with "ffmpeg" or use programs that specifically need to work with such command, you only have to do this:

sudo ln -s /usr/bin/avconv /usr/bin/ffmpeg

And that's all. Now all calls to the "ffmpeg" command should be handled by avconv (the command that replaces the ffmpeg one in Ubuntu 14.04 and it's derivates).


How to Install Evolus Pencil on Ubuntu and derivates (standalone)


Pencil (by Evolus) is a very cool multiplatform app for creating wireframes and it is available for Linux. The pencil project only releases RPM binaries for Fedora and, (in the case of other distros such as Ubuntu) you can use the app through a Firefox extension... The problem is, sometimes the Pencil extension doesn't get updated at the same time as Firefox does, having compatibility issues as newer versions of the browser get released.

If you're using Ubuntu (or one of it's derivates) you can install pencil (in a standalone way) by downloading the RPM from their site and then running:

1. sudo apt-get install alien
2. sudo alien --to-deb 'path/to/pencil.rpm'
3. sudo dpkg -i 'path/to/pencil.deb'
4. FFVER=`grep -Po "\d{2}\.\d+" /usr/lib/firefox/platform.ini`
5. ARCH=`uname -p`
6. XURL=https://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/$FFVER/runtimes/xulrunner-$FFVER.en-US.linux-$ARCH.tar.bz2
7. cd /opt
8. sudo sh -c "wget -O- $XURL | tar -xj"
9. sudo chmod +x /opt/xulrunner/xulrunner

Then we have to modify the Pencil launch command with:

gksu gedit /usr/bin/pencil

Replacing in there /usr/bin/xulrunner with /opt/xulrunner/xulrunner:


And that's all, Open the Pencil app and start using it:


#QuickTip: Instalar Arduino en Ubuntu 14.04 y derivados



Esto es muy sencillo, sólo tenemos que correr el siguiente comando en una consola:

sudo apt-get update && sudo apt-get install arduino arduino-core

Luego simplemente abrimos el Arduino IDE que tendremos disponible en nuestro menú de aplicaciones y éste nos va a preguntar si nos queremos añadir a un grupo que requerimos para actualizar el firmware de nuestro arduino. Nos añadimos según las indicaciones (se nos pedirá una contraseña) reiniciamos nuestra sesión y listo:


[SOLUCIÓN] acentos/tildes separadas de vocales en Kingsoft Office


Este es un problema que me estaba volviendo loco... De un tiempo para acá, noté que en algunas apps (como las de WPS/Kingsoft Office y/o Evernote) el sistema me estaba escribiendo los acentos separados de las vocales. Al principio pensé que faltaban paquetes de localización. Luego pensé que era por mala configuración del teclado, más tarde culpé a las fuentes microsoft y finalmente a los paquetes de compatibilidad con 32 bits en mi sistema Linux de 64 bits...

Después, me di cuenta de que este problema no podía tener "causas específicas" pues lo han reportado usuarios de distintas plataformas a lo largo del tiempo (al menos con Kingsoft Office) ya sean de Windows, Android y/o Linux por ejemplo. Afortunadamente en mi caso había otros factores relevantes como el hecho de cómo está instalado mi sistema operativo actual (es una reinstalación con viejas configuraciones) y también, el bug afectaba una Wine App. Gracias a esto último más que nada fue que pude identificar el problema y su solución que (al menos en Linux) es muy sencilla:

Nos vamos a la parte de Soporte de idiomas en nuestro sistema según corresponda, dejamos que se instalen los paquetes faltantes (si los hay) y desactivamos IBus como sistema de método de entrada para el teclado, seleccionando ninguno como opción:


Teóricamente con esto debería bastar. Reiniciamos nuestra sesión y los acentos deberían funcionar en las apps donde anteriormente había problemas, así mismo como a lo largo de todo nuestro sistema como es usual. En caso de que no fuera así, el asistente im-config es una utilidad que nos permitirá específicamente hacer este cambio del input method system si fuera necesario (siendo esto último aplicable en Ubuntu y derivados, no sé si lo esté disponible para otras distros también):


De igual manera, tras finalizar el asistente reiniciamos nuestra sesión y el cambio deberá haber surtido efecto.