Archivo de la categoría: Sin categoría

Crónicas de un arranque dual o de cómo FreeBSD convive pacíficamente junto a Manjaro en mi disco duro

Todos los que hemos recorrido los caminos del software libre hemos desarrollado un fuerte interés por FreeBSD en más de una ocasión. En mi experiencia, he tenido oportunidad de echarle mano en el ámbito laboral, pero para uso personal siempre me sentí más cómodo con las distribuciones GNU/Linux.

Sin embargo, me doy cuenta que esta tendencia está cambiando. Por un lado, systemd ya no es una opción para mí y ciertamente veo más complicado cada día andar por el mundillo “linuxero” evitando el contacto con el daemonio del sistema, a pesar de las múltiples y excelentes opciones que hay en la vía (tema que da lugar quizá a otra entrada).

Por otra parte, la mayoría de nosotros cuenta con abundante espacio en disco duro y a menudo andamos buscando alternativas para llenar esas particiones con sistemas que llamen nuestra curiosidad por conocer y analizar, prácticamente de laboratorio por decirlo de alguna manera. Por mi parte, no me considero un distrohopper y tampoco soy de virtualizar mis instalaciones, pero soy de los que gusta tener una o varias particiones del disco listas para recibir un nuevo huésped con quien divertirme o aprender un rato.

Actualmente mi máquina de escritorio juega con Manjaro OpenRC y KDE Plasma como entorno de escritorio (versión 5.8.1 al momento de escribir la entrada) y mi intención es que siga siendo el sistema operativo principal por un tiempo más. El planteo entonces es poder instalar FreeBSD en una de las particiones disponibles y correr un arranque dual utilizando el actual Grub de Manjaro para escoger entre sistemas operativos.

Lo que sigue no es un tutorial de cómo instalar FreeBSD, el proceso en sí es bastante intuitivo y comprensible, además está amplia y perfectamente descrito en la Documentación oficial del Proyecto. Lo que sigue es más bien la crónica de mi experiencia instalando FreeBSD junto a mi actual distribución GNU/Linux.

Preparando la instalación

Es algo obvio, pero por si alguien se pregunta, lo primero fue preparar un dispositivo de arranque con la imagen de FreeBSD que descargué desde aquí y que luego pasé a un pendrive así:

$ sudo dd if=/ruta_de_descarga/FreeBSD-11.0-RELEASE-xxx-memstick.img of=/dev/sdc
1433746+0 registros leídos
1433746+0 registros escritos
734077952 bytes (734 MB, 700 MiB) copied, 268,342 s, 2,7 MB/s

Algo verdaderamente notorio es la multiplicidad de opciones que ofrece FreeBSD en cuanto a arquitecturas, imágenes listas para importar a máquinas virtuales y tarjetas SD para dispositivos embebidos.

Ahora bien, antes de iniciar desde el pendrive, hay que echar un ojo a las particiones en el disco (/dev/sda) para tenerlas bien identificadas.

$ lsblk /dev/sda -o NAME,SIZE,MOUNTPOINT
NAME       SIZE       MOUNTPOINT
sda        465,8G
├─sda4     1,9G       [SWAP]
├─sda2     19,1G
├─sda3     425,8G     /home
└─sda1     19,1G      /

Como puede verse, tengo un disco con una disposición bastante estándar, es decir, una tabla MBR con 4 particiones primarias: el directorio raíz (/) un directorio de usuario por separado (/home) una partición de intercambio (swap) y una partición libre (/dev/sda2). No cabe duda que FreeBSD irá a parar a /dev/sda2 y obviamente no quiero tocar los preciados datos en /home ni mucho menos dañar la actual instalación de Manjaro (/), así que voy tomando nota.

Para facilitar todavía más las cosas, lo que personalmente prefiero es eliminar la partición /dev/sda2 para que quede como espacio sin asignar o sin utilizar. De esta manera, la tarea de configurar esa partición la haré desde el instalador de FreeBSD.

Ahora sí está todo listo para iniciar desde el dispositivo USB. Una vez que arranca dará a escoger entre iniciar el instalador , ejecutar una consola de comandos o una sesión en vivo del sistema . Más por capricho que por experiencia, me inclino a ejecutar la shell  para preparar la partición manualmente y posteriormente ejecutar el instalador.

When finished type 'exit' to return the installer.

#

Creando y configurando las particiones

Para gestionar las particiones en FreeBSD contamos con una gran herramienta: gpart. Algo a tener en cuenta al momento de trabajar con el disco es la notación que usa FreeBSD para nombrar los dispositivos: donde en GNU/Linux teníamos /dev/sda, aquí se llama ada0; la partición /dev/sda1 ahora es ada0s1 y así con el resto.

# gpart show -p ada0
ada0        MBR            (468.8G)
ada0s1      linux-data     (19.1G)
- free -                   (20G)
ada0s3      linux-data     (428.8G)
ada0s4      linux-swap     (1.9G)

El primer paso a partir de aquí es crear la partición ada0s2 utilizando el espacio libre que dejó la ya eliminada /dev/sda2.

# gpart add -t freebsd -i 2 ada0
ada0s2 added
Antes de continuar, una pequeña reseña del comando:
gpart add: agrega una nueva partición a la tabla ya existente
-t freebsd: el tipo de partición (freebsd en este caso)
-i 2 ada0: indicarle a gpart que la partición se creará con el índice número 2 en el dispositivo ada0. Si no especificamos un tamaño, lo asignará automáticamente

Al mirar nuevamente la tabla, la cosa va tomando forma.

# gpart show -p ada0
ada0        MBR            (468.8G)
ada0s1      linux-data     (19.1G)
ada0s1      freebsd        (20G)
ada0s3      linux-data     (428.8G)
ada0s4      linux-swap     (1.9G)

A continuación, debe crearse el sistema de archivos en la partición (freebsd-ufs) con el siguiente comando:

# newfs ada0s2
/dev/ada0s2: 20000.0MB (40960000 sectors) block size 32768, fragment size 4096
using 32 cylinder groups of 626.09MB, 20035 blks, 80256 inodes.
super-block backups (for fsck_ffs -b #) at:
...
Un detalle a tener en cuenta es que BSD discrimina entre particiones primarias y lógicas llamando a estas segundas slices. Por ejemplo, la partición primaria /dev/ada0s2 (del tipo BSD) tendrá el slice /dev/ada0s2a (freebsd-ufs o simplemente ufs).

Teniendo ya lista la partición, regreso al instalador escribiendo # exit y realizo los primeros pasos de configuración del sistema: distribución del teclado, hostname, componentes opcionales) hasta llegar al editor de particiones.

A partir de este punto me encuentro ante dos alternativas: seleccionar Manual y configurar los puntos de montaje desde allí o continuar ensuciándome las manos desde la Shell. Como me gusta complicarme la vida a fuerza de comandos, lo que hago es irme de nuevo a la consola.

Primero voy a generar el archivo /tmp/bsdinstall_etc/fstab.

# echo "/dev/ada0s2a / ufs rw 1 1" > /tmp/bsdinstall_etc/fstab

Luego, montar el nuevo sistema de archivos y salir.

# mount -t ufs /dev/ada0s2a /mnt

# exit

El instalador comenzará la copia de archivos, pedirá configurar la red, el usuario root, la zona horaria, el reloj y demás. Bastará aquí con seguir los pasos. Al terminar, salgo y reinicio.

Agregando FreeBSD al Grub de GNU/Linux

Como es natural, al reiniciar el Grub no mostrará FreeBSD entre las opciones de arranque. Normalmente, en Manjaro bastaría con ejecutar $ sudo update-grub, pero en este caso lo que debe hacerse es crear la entrada de forma manual y regenerar el Grub.

$ sudo nano /etc/grub.d/40_custom

/etc/grub.d/40_custom

!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "FreeBSD" {
set root=(hd0,2)
chainloader +1
}
Añadimos la entrada manual indicando que el directorio raíz se encuentra en /dev/sda2 (hd0,2).
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
Generando un fichero de configuración de grub...
...
Encontrado unknown Linux distribution en /dev/sda2
...
hecho

¡Y listo! Reinicio y veo a FreeBSD flamante entre las opciones del Grub, lista para convivir pacíficamente junto a Manjaro en mi disco. Restará instalar y configurar un entorno gráfico y las aplicaciones que uso a diario, pero esa es toda una historia aparte.

Anuncios

Migrando a OpenRC desde Manjaro

En el artículo anterior escribí acerca de cómo abandoné systemd a favor de openrc. En aquel momento les comentaba que una de las distribuciones elegidas fue Manjaro OpenRC. En mi caso, y debido a que no estaba dispuesto a continuar con Archlinux, decidí recomenzar haciendo una instalación mínima (o netinstall) para luego ir instalando y configurando individualmente los demás componentes del sistema. Pero este no tiene por qué ser el caso de todos. De hecho, si actualmente sos un usuario de Manjaro y estás pensando en quitar systemd probablemente no esté en tus planes comenzar desde cero reinstalando el sistema. En tu caso, lo que buscás es lo que habitualmente se denomina migración.

Normalmente este tipo de acciones sobre el sistema son un dolor de cabeza, en especial cuando se trata de quitar systemd y arriesgarse a romper el sistema (pensemos en las dependencias y librerías). Sin embargo, cuando se trata de Manjaro ocurre todo lo contrario. En primer lugar porque todos los paquetes y sus dependencias se encuentran en los repositorios oficiales (en Archlinux necesitamos de AUR o del repositorio eudev-openrc). En segundo lugar, esta distribución GNU/Linux, que cada día va ganando más interés entre los usuarios, está bien cuidada por sus desarrolladores y la comunidad que los acompaña, dicho de otra manera, esta hecha para simplificarle las cosas al usuario y al mismo tiempo funcionar bien. Además el proceso está bien documentado.

Pues bien, dicho esto vamos a proceder con la migración. Para hacerlo nos apoyaremos en el artículo que la gente de Manjaro nos facilita en su Wiki y voy a seguir lo más cerca posible sus lineamientos y su formato.

 

Instalando OpenRC

$ sudo pacman -S openrc-base
Con este comando se instalarán los paquetes necesarios. Por supuesto, pacman nos consultará sobre los paquetes que presenten conflictos (systemd-sysvcompat), a lo que debemos responder “sí” para que proceda a la instalación.

La salida de este comando será algo como esto:

:: Hay 12 miembros en el grupo openrc-base:
:: Repositorio community
1) cronie-openrc  2) cronjobs  3) cryptsetup-openrc  4) dbus-openrc
5) device-mapper-openrc  6) dhcpcd-openrc  7) glibc-openrc
8) inetutils-openrc  9) lvm2-openrc  10) mdadm-openrc  11) netifrc
12) udev-openrc

Introduzca una selección (por omisión=todos):
resolviendo dependencias…
buscando conflictos entre paquetes…
:: cronie-openrc y systemd-sysvcompat están en conflicto. ¿Quitar systemd-sysvcompat? [s/N] s

Paquetes (15) openrc-0.21-1  systemd-sysvcompat-229-3 [quitando]
sysvinit-2.88-16  cronie-openrc-20160528-1  cronjobs-20160402-1
cryptsetup-openrc-20160528-1  dbus-openrc-20160528-1
device-mapper-openrc-20160528-1  dhcpcd-openrc-20160528-1
glibc-openrc-20160528-1  inetutils-openrc-20160528-1
lvm2-openrc-20160528-1  mdadm-openrc-20160528-1  netifrc-0.3.1-7
udev-openrc-31-1

Tamaño total de la descarga:    0,39 MiB
Tamaño total de la instalación:  2,49 MiB
Tamaño neto tras actualizar:    2,48 MiB

:: ¿Continuar con la instalación? [S/n]

Acto seguido, agregaremos algunos servicios básicos al arranque.

$ sudo rc-update add dbus default
...

$ sudo rc-update add cronie default

Posteriormente instalaremos un display-manager, para que al reiniciar el equipo arranque en la interfaz gráfica en lugar de una simple línea de comandos.

$ sudo pacman -S displaymanager-openrc

Para configurarlo vamos a modificar la línea "DISPLAYMANAGER=xdm" en /etc/conf.d/xdm por la que corresponda a nuestro DM favorito (sddm, lightdm, etcétera):

$ sudo nano /etc/conf.d/xdm

/etc/conf.d/xdm

# We always try and start X on a static VT. The various DMs normally default
# to using VT7. If you wish to use the xdm init script, then you should ensure
# that the VT checked is the same VT your DM wants to use. We do this check to
# ensure that you haven't accidentally configured something to run on the VT
# in your /etc/inittab file so that you don't get a dead keyboard.
CHECKVT=7
# What display manager do you use ?  [ xdm | gdm | kdm | gpe | entrance ]
# NOTE: If this is set in /etc/rc.conf, that setting will override this one.
DISPLAYMANAGER="<displaymanager>"
Recuerden cambiar <displaymanager> por el de su elección.

Añadimos el servicio para que arranque por defecto.

$ sudo rc-update add xdm default

En este punto aún no es recomendable reiniciar, ya que aún falta un buen grupo de paquetes que harán operar el sistema adecuadamente.

 

Utilidades básicas del sistema

A continuación vamos a instalar varias utilidades: audio (alsa), red (networkmanager), eventos acpi (acpid), multiusuario (consolekit), suspensión/hibernación (pm-utils) y servicios de registro (syslog-ng), entre otros.

$ sudo pacman -S networkmanager-openrc syslog-ng-openrc pm-utils acpid-openrc alsa-utils-openrc avahi-openrc consolekit-openrc gpm-openrc polkit-consolekit cgmanager-opernc
resolviendo dependencias…
buscando conflictos entre paquetes…
:: networkmanager-openrc y systemd-sysvcompat están en conflicto. ¿Quitar systemd-sysvcompat? [s/N] s
:: networkmanager-consolekit y networkmanager están en conflicto. ¿Quitar networkmanager? [s/N] s
:: polkit-consolekit y polkit están en conflicto. ¿Quitar polkit? [s/N] s
:: pm-utils y tlp están en conflicto. ¿Quitar tlp? [s/N] s

Paquetes (25) cgmanager-0.39-2 consolekit-1.1.0-7 eventlog-0.2.12-4
libdbi-0.9.0-2 libnih-1.0.3-2 networkmanager-1.2.2-1 [quitando]
networkmanager-consolekit-1.2.2-2 openrc-0.21-1
pm-quirks-0.20100619-4 polkit-0.113-4 [quitando]
syslog-ng-3.6.3-2 systemd-sysvcompat-229-3 [quitando]
sysvinit-2.88-16 tlp-0.8-1 [quitando] udev-openrc-31-1
acpid-openrc-20160528-1 alsa-utils-openrc-20160528-1
avahi-openrc-20160528-1 cgmanager-openrc-20160528-1
consolekit-openrc-20160528-1 gpm-openrc-20160528-1
networkmanager-openrc-20160528-1 pm-utils-1.4.1-6
polkit-consolekit-0.113-5 syslog-ng-openrc-20160528-1

Tamaño total de la descarga: 5,20 MiB
Tamaño total de la instalación: 33,60 MiB
Tamaño neto tras actualizar: 9,25 MiB

:: ¿Continuar con la instalación? [S/n]

Una vez que finalice, procedemos a habilitar los servicios con:

$ sudo rc-update add <servicio> default
Reemplazando <servicio> según sea el caso.

 

Problemas con Plymouth

La Wiki nos advierte de los problemas que puede causar Plymouth con OpenRC. Para evitarnos complicaciones editaremos el archivo /etc/mkinitcpio.conf

$ sudo nano /etc/mkinitcpio.conf

Primero debemos quitar plymouth de la línea HOOKS=... para que quede así

/etc/mkinitcpio.conf

...
HOOKS="base udev autodetect modconf block resume filesystems keyboard keymap fsck"
...

Y regeneramos initrd

$ sudo mkinitcpio -p linux<versión>
Dónde <versión> es el número de versión del kernel que estás corriendo (el comando uname -r te dirá cuál es si no lo sabés).

 

Quitando definitivamente a systemd del sistema

Con OpenRC instalado y funcionando, la existencia de systemd en el sistema queda completamente injustificada. Para deshacernos definitivamente de él, vamos a instalar los siguientes paquetes.

$ sudo eudev eudev-systemdcompat
eudev es un reemplazo para udev provisto por la gente de Gentoo y que nos asegura una mejor compatibilidad con OpenRC
resolviendo dependencias…
buscando conflictos entre paquetes…
:: eudev y libsystemd están en conflicto (libudev.so). ¿Quitar libsystemd? [s/N] s
:: eudev-systemdcompat y systemd están en conflicto. ¿Quitar systemd? [s/N] s
advertencia: bucle de dependencias detectado:
advertencia: eudev-systemdcompat será instalado antes que su dependencia eudev

Paquetes (4) libsystemd-229-3 [quitando] systemd-229-3 [quitando] eudev-3.2-1
eudev-systemdcompat-230-1

Tamaño total de la descarga: 1,16 MiB
Tamaño total de la instalación: 7,47 MiB
Tamaño neto tras actualizar: -21,62 MiB

:: ¿Continuar con la instalación? [S/n]

Bastará un reinicio para finalizar la tarea.

 

Algunas consideraciones extra

Para que tengan en cuenta, los usuarios de Plasma 5 pueden encontrarse con que Pulseaudio no inicie en el arranque. Para resolverlo, basta con dirigirse a

Preferencias del Sistema -> Arranque y Apagado -> Autoarranque

Crear un script similar al siguiente:

$ sudo nano /usr/local/bin/pulse.sh
#!/bin/sh
pulseaudio --start

Y agregarlo al inicio del sistema junto con sus scripts personalizados.

Por mi parte, prefiero prescindir de Pulse (los desarrolladores son los mismos de systemd) y tomarme el trabajo de configurar ALSA o JACK a secas, lo que es tema para otra entrada.

 

Otro asunto es montar automáticamente particiones en discos adicionales a través de /etc/fstab. El punto de montaje habitual en Archlinux y derivadas es /run/media/nombre_de_particion, pero con OpenRC lo conveniente es cambiar el punto de montaje a /media/nombre_de_particion (al mejor estilo Debian y derivadas). Por ejemplo, digamos que tenemos un disco duro adicional en nuestro equipo donde alojamos datos, música, documentos, películas y demás y queremos que sea montado automáticamente al inicio. Entonces ejecutaremos:

$ sudo blkid /dev/sdX
/dev/sdX: LABEL="datos" UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="ext4"

Buscamos el UUID de la partición /dev/sdX correspondiente al disco duro en cuestión. Ahora, editamos /etc/fstab añadiendo al final el punto de montaje.

$ sudo nano /etc/fstab

/etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump>  <pass>

UUID=xxxxxxxx-...  /media/datos ext4    defaults,noatime 0       0
Al reiniciar, nuestra partición de datos estará montada automáticamente como /media/datos.

 

Por último, no quiero dejar de recomendarles visitar la Wiki OpenRC de Gentoo y por supuesto la Wiki OpenRC de Manjaro (de donde salió este artículo) para que conozcan a fondo su funcionamiento, opciones, configuraciones y el modo de operarlo, así como los posibles problemas que puedan hallar.

Adiós cruel daemonio de sistema o de cómo vencí mi hartazgo hacia systemd

Systemd es un monstruo de caminar lento, torpe y caprichoso que con el tiempo se ha ido comiendo cada ser viviente del entorno en su afán por controlarlo todo. El asunto es que por mucho tiempo intenté mantener una convivencia pacífica con el gigante bicho que dominaba mi distribución GNU/Linux favorita. Hasta que un buen día me harté.

Para un usuario desatendido, digamos, aquel que sólo utiliza el equipo para navegar, escuchar música o editar documentos, el funcionamiento de systemd pasa desapercibido la mayor parte del tiempo. Ahora, si ese usuario quisiera disfrutar de los beneficios de poner su equipo en hibernación la cuestión se pone más difícil en la mayoría de los casos. Y ya cuando empezamos a tratar con servicios más o menos avanzados y necesitamos que estos servicios se ejecuten de una manera especifica con una configuración particular y además requerimos mayor control sobre los mismos, la cosa cambia. Y en este sentido, systemd viene a complicarlo todo.

Pero en fin, esta entrada está lejos de ser una lista exhaustiva de las maldades del monstruo ya por todos conocidas. Tampoco quiero entrar (por ahora) en el tema de la filosofía Unix y toda la discusión al respecto. Simplemente quiero contarles cómo, luego de alcanzar altos niveles de molestia con systemd y su mal comportamiento, atravesé victorioso el proceso de abandonar al daemonio de sistema.

¿Cómo quitarse systemd sin morir en el intento?

La primera cosa que me vino a la mente cuando me planteé esta pregunta fue: ¿por qué no migrar directamente desde Archlinux? Esta idea fue descartada por varias razones. En primer lugar, toda una distro pensada para funcionar con systemd implica la minuciosa tarea de ponerse a trabajar varios días hasta que todo quede funcionando correctamente, eso si andamos con suerte, y la pereza me gana en ese sentido. Por otra parte, el simple hecho de que OpenRC no esté soportado de manera oficial (requiere AUR o el repositorio openrc-eudev) indica claramente que la gente de Arch no está interesada en que se use nada más que systemd en su distro.

De manera que con Arch fuera del tablero, los nombres empezaron a salir a la superficie: FreeBSD, Devuan y Gentoo. FreeBSD resultaría lo más sencillo dado que la conozco bastante habiéndola usado en el ámbito de servidores. Devuan era una opción fuerte, pero la idea de abandonar el rolling-release me pesaba (lo mismo ocurre con FreeBSD). Gentoo sonaba fuerte, pero ya estoy viejo para andar compilando.Sin embargo, pensé en darle la oportunidad.

Así fue que, mientras probaba Gentoo, busqué opciones y di con una versión de Manjaro con OpenRC, lo que me resultó especialmente interesante: inspirada en Arch (aunque con repositorios propios), con pacman como gestor de paquetes y rolling-release. Además, en este caso OpenRC está soportado oficialmente por la distro. Dado que me estaba sobrando una partición, me decidí a instalarla en su formato mínimo para ir analizando cómo se comportan los servicios en esta distro para luego, instalar un entorno de escritorio.

Actualmente mi equipo está completamente libre de systemd con dos distribuciones en paralelo: Gentoo+Gnome y Manjaro-OpenRC+Plasma5. Ambas serán expuestas a muchas pruebas antes de definirme por una (o por quitarlas y buscar otra). A su vez, ambas han mostrado un desempeño excelente, así que es probable que se queden un buen rato por aquí.

Para finalizar  quisiera comentarles los beneficios que he obtenido en el corto plazo. Por un lado, ha mejorado notablemente el tiempo de arranque del sistema (obvio, pero tengo que decirlo), los procesos se mantienen más estables y los servicios configurados de acuerdo a mis necesidades funcionan sin ningún problema. Por el otro lado, he recuperado la sensación de control sobre el sistema y sus procesos de fondo (daemons).

P.D.: quienes estén pensando mudarse a un mundo sin systemd, les recomiendo darse una vuelta por aquí: http://without-systemd.org/wiki/index.php/Main_Page

Cifrado extremo en GNU/Linux (Segunda Parte)

Lo prometido es deuda y llega la Segunda Parte de este artículo sobre cifrado en GNU/Linux. En la entrada anterior escribí acerca de cifrado de datos en el disco duro y realicé una simulación sencilla para ayudarnos a entender un poco mejor cómo efectuar las tareas de cifrado utilizando las herramientas más comunes. Y aunque este tipo de cifrado digamos “local” es muy importante, hoy por hoy para casi todo lo que hacemos en nuestros equipos utilizamos una conexión a Internet y, por lo tanto, los datos e información transmitidos pueden ser interceptados por alguna persona, empresa, organismo gubernamental o simplemente un “bot” que esté a la espera de obtener algo valioso de nosotros. La necesidad de cifrar los datos que viajan a través de las redes es evidente. Esta vez escribiré acerca de esto, es decir, qué tratamiento en términos de cifrado debemos darle a las operaciones de navegación, correo electrónico, comunicación y conectividad en general.

Evitando filtraciones en las peticiones DNS

Cuando realizamos una petición DNS los datos transmitidos, tanto de ida como de vuelta, no siempre son anónimos ni están cifrados de manera predeterminada, independientemente si usamos Tor para navegar o si estamos visitando un sitio con seguridad SSL/TLS (https). Dado que las peticiones DNS representan uno de los principales eslabones de la cadena en una conexión web, es importante asegurarnos que los datos transmitidos sean cifrados. Para esto contamos con una herramienta muy útil: dnscrypt.

Dnscrypt funciona de manera análoga a un proxy, cifrando el intercambio de datos entre nuestro equipo y los servidores DNS.

Petición DNS (sin cifrar) -> dnsmasq -> dnscrypt (cifrado) -> Servidor DNS cifrado

Ahora bien, para implementar esta herramienta iremos a nuestra consola de comandos.

Como es habitual en el blog, trabajaré en Archlinux o derivadas.
$ sudo pacman -S dnscrypt-proxy dnsmasq

$ sudo nano /etc/resolv.conf

/etc/resolv.conf

# nameserver ip_servidor_dns_publico
# nameserver ip_router
nameserver 127.0.0.1

$ sudo chattr +i /etc/resolv.conf
En primera instancia, instalamos los paquetes necesarios. Luego, editamos el archivo /etc/resolv.conf comentando todas las líneas que apuntan a servicios DNS y agregamos la línea al final, de manera que las peticiones DNS se realicen de manera local, es decir, en el propio equipo o localhost. Luego de guardar el archivo, cambiamos sus atributos a sólo lectura para evitar que el gestor de conexiones de red (NetworkManager) sobre-escriba la configuración después de un reinicio. Si además hemos agregado DNS desde la interfaz gráfica de NetworkManager debemos borrarlos.
$ sudo systemctl enable dnscrypt-proxy

$ sudo systemctl edit dnscrypt-proxy.socket --full

dnscrypt-proxy.socket

[…]
[Socket]
ListenStream=127.0.0.1:40
ListenDatagram=127.0.0.1:40
[…]

Habilitamos el servicio y editamos el archivo del Socket en SystemD. Apuntamos al puerto #40 debido a que dnsmasq utiliza por defecto el puerto #53.
Por defecto, dnscrypt utilizara “dnscrypt.eu-nl” como servidor DNS externo. En caso que deseemos cambiar este servidor, debemos editar la unidad de servicio de SystemD de la siguiente manera.
$ systemctl edit dnscrypt-proxy.service --full

dnscrypt-proxy.socket

[…]
[Service]
[…]
-R nombre_del_servidor_DNS
[…]

Un listado de los servidores disponibles con sus características se encuentra en /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv.
$ sudo nano /etc/dnsmasq.conf

/etc/dnsmasq.conf

[…]
no-resolv
server=127.0.0.1#40
listen-address=127.0.0.1
[…]

Editamos el archivo de configuración de dnsmasq de manera que las peticiones sean redirigidas hacia dnscrypt. Luego, habilitamos e iniciamos los servicios en SystemD.
$ sudo systemctl restart dnscrypt-proxy.service

$ sudo systemctl enable dnsmasq

$ sudo systemctl start dnsmasq

$ sudo systemctl restart NetworkManager.service

 

Con esto bastará entonces para cifrar todo el tráfico DNS redirigiendo las peticiones a través de dnscrypt. Si deseamos realizar una prueba del funcionamiento, podemos ir al sitio https://dnsleaktest.com y ejecutar una Prueba Extendida. Además, si utilizamos Wireshark y ejecutamos un filtro con la dirección IP del servidor DNS externo, podremos verificar que la conexión está siendo cifrada.

Preparar y configurar tu navegador web

La mayoría de los navegadores soporta complementos o extensiones que nos permiten mejorar nuestra experiencia en la web. Muchos de estos complementos están enfocados en la seguridad y el cifrado. Por ejemplo, si sos de los que usan Firefox, seguramente tendrás instalado HTTPS-Everywhere, SSleuth. Descentraleyes, Greasemonkey con scripts tales como HTTP-to-HTTPS redirector o Green SSL Password Fields, entre otros.

Prestar atención al tipo de seguridad y cifrado que ofrecen los sitios por los que navegamos se vuelve una tarea imprescindible cuando se trata, por ejemplo, de la página de Banca en Línea del Banco, sitios de compras online, proveedor de correo electrónico con interfaz web y tantos otros sitios donde administramos información sensible.

Cifrado de correo electrónico y chat

GPG (GNU Privacy Guard) es sin duda la herramienta por excelencia para cifrado de correo electrónico y conversaciones de chat sobre XMPP en GNU/Linux, aunque eso no es todo, ya que permite cifrar el contenido de directorios y archivos, además de servir para gestionar claves y firmas de paquetes y medios de instalación (ISO’s) de distribuciones. Como si esto fuera poco, si tenés un gestor, depósito o cartera de contraseñas, podés cifrar esas claves mediante GPG.

En general, los clientes más comunes de correo electrónico y chat permiten configurar el agente para GPG por defecto, de manera que cada vez que redactemos un correo el propio cliente nos permitirá definir si este mensaje será cifrado y/o firmado o bien cuando recibamos un correo cifrado, el agente se encargará de descifrarlo para nosotros. En cuanto a los clientes de chat, habitualmente aparece un ícono con la forma de un candado para activar el cifrado de la conversación en la que nos encontramos.

Por su parte, las claves y firmas GPG en nuestro sistema pueden ser administradas con la herramienta homónima desde la consola o bien con un cliente GPG con interfaz gráfica como Kleopatra (orientado al entorno de escritorio KDE) que incluye integración para el gestor de archivos Dolphin, facilitando el cifrado de archivos.

Extra: el uso de una VPN

Las Redes Privadas Virtuales son una herramienta muy poderosa cuando de privacidad y anonimato se trata. Por supuesto, esto dependerá del servicio que utilicemos, cuya oferta es muy variada en cuanto a precio y prestaciones. Sin embargo, la mayoría de los servicios de pago más serios garantizan dos principios fundamentales. En primer lugar, al redirigir todo el tráfico que sale y llega a nuestro equipo a través de estas redes, nuestra dirección IP pública quedará “enmascarada” detrás de la VPN, manteniéndonos anónimos. En segundo lugar y no menos importante, una VPN cifrará los datos mediante el uso de algunos de los métodos que la mayoría conoce, a saber SSL/TLS, PPTP, L2TP, entre otros.

Por otra parte, gracias a proyectos como OpenVPN, podemos montar nuestro propio servidor para estos fines, teniendo el control completo del servicio y sus prestaciones, lo que representa una ventaja notable.

Extra extra: cifrado en teléfonos

Los dispositivos móviles del tipo Android, o su alternativa Cyanogenmod traen por defecto soporte para cifrado completo de los datos del equipo. Por su parte, dnscrypt nos explica en su sitio web cómo usar su herramienta para teléfonos de esta clase, pero en mi caso particularmente, no he tenido tiempo de probarlo, por lo que no entraré en detalles sobre esto. Lo que sí haré será darles una lista de algunas de las herramientas que uso en mi equipo con Cyanogenmod y que se encuentran en los repositorios de F-Droid, a saber:

  • OpenKeychain (GPLv3+): cliente para OpenPGP con integración para K-9 Mail, Conversations, oandbackups, cifrado y firmado de archivos, y más
  • OpenVPN for Android (GPLv2): cliente para gestionar conexiones VPN
  • K-9 Mail (Apache2): cliente de correo electrónico. Permite configurar OpenKeychain como agente GPG predeterminado
  • Conversations (GPLv3): cliente para XMPP. Además de OpenPGP tiene soporte para Cifrado end-to-end con OTR y OMEMO
  • Twik (GPLv3): aplicación que funciona como asistente para generar y almacenar contraseñas seguras
  • Silence (GPLv3): aplicación para enviar mensajes SMS cifrados

Dejaré el cliente de mensajería instantánea Telegram fuera de la lista debido a que, si bien es una aplicación libre (GPLv2+) con cifrado end-to-end, los servicios y protocolos detrás de la aplicación y que por lo tanto la hacen funcionar no son libres.

Bien, hasta acá el artículo. Seguramente habrán muchas cosas que quedaron en el tintero. Por razones de tiempo y espacio he decidido abreviar tanto como pude. Quedaré atento a sus sugerencias y comentarios. Recordemos que la fuerza y la grandeza de GNU/Linux está en la comunidad y son ustedes los que tienen la oportunidad de ampliar y mejorar esta entrada. Siéntanse en libertad de hacerlo.

Cifrado extremo en GNU/Linux (Primera Parte)

Si bien es cierto que el tema de cifrado está muy de moda en estos tiempos, también es cierto que me apasiona todo lo referido al mismo y por eso me debía un artículo al respecto. Si has leído alguna de mis publicaciones anteriores ya sabés que la seguridad, la privacidad, el anonimato son prioridades en mi vida por las redes y la informática y me gusta pensar y actuar en este sentido. Por lo tanto, cifro tanto como puedo y si no puedo, también lo cifro. De ahí, el título de este artículo: en esta entrada voy a hacer un recorrido por las distintas etapas del proceso y las herramientas que uso para un cifrado de pies a cabeza en un sistema operativo GNU/Linux.

Etapa 0: pensar antes de actuar

Antes de empezar a meter dedo en el teclado es muy importante tomarse un tiempo para definir objetivos. Esto permitirá optimizar tiempos, elegir las herramientas adecuadas y tener resultados de calidad. Para esto conviene que tengamos claridad respecto de los ataques a los que podemos estar expuestos, el tipo de dispositivo que estamos cifrando (laptop, escritorio, móvil) y el destino o uso que le damos a este dispositivo (servidor, uso hogareño, trabajo).

Por ejemplo, el cifrado que necesitamos en una computadora de escritorio que tengamos en casa no tiene por qué ser el mismo (aunque puede serlo) que para una máquina de las mismas características pero que está en nuestro lugar de trabajo y que compartimos con otros usuarios. Por otro lado, también podemos hacer una distinción si el equipo en casa sólo lo usamos para navegar o escuchar música o si lo usamos para guardar documentos con información de tipo sensible, como documentos legales. Insisto, podremos usar el mismo cifrado, pero no necesariamente debemos hacerlo.

Por lo tanto, en esta etapa de planificación cabrá hacerse preguntas del tipo: ¿Contra qué clase de ataques deseamos protegernos? ¿Cuál será la estrategia apropiada para cifrar? ¿Cómo trataremos los datos temporales como el espacio de intercambio (swap), logs, etcétera? ¿Qué trato se le dará a un sistema con múltiples usuarios? ¿Cómo y en qué momento se accederá a los datos cifrados?

Etapa 1: cifrado total o parcial de un disco duro o de una partición de disco duro

Cifrar el disco duro y los datos de usuarios es primordial para proteger nuestra privacidad. La principal ventaja de cifrar un disco o partición de disco radica en que impide el acceso físico no autorizado a los datos contenidos en dicho dispositivo y su manipulación. Las herramientas que disponemos para realizar este tipo de cifrado están categorizadas de varias maneras. En cuanto a mí, tengo preferencia por dos de ellas: ecryptfs para cifrar directorios y archivos; dm-crypt para cifrar un disco duro completo o alguna de sus particiones.

Por otra parte, muchas distribuciones GNU/Linux como Manjaro, openSUSE, CentOS, Debian y Ubuntu, por nombrar sólo algunas, nos dan la oportunidad de configurar características de cifrado del sistema, particiones y datos de usuario (/home) directamente al el momento de la instalación. En mi opinión esto es algo fantástico y lo he utilizado siempre al trabajar con este tipo de distribuciones.

De manera entonces que no quedan excusas para proteger nuestros datos y nuestro sistema, basta con elegir un método, las herramientas y poner manos a la obra. A continuación voy a realizar una simulación a modo de ejemplo para la cual escogí a Manjaro como distribución. Digamos entonces que ya instalé el sistema escogiendo las opciones de cifrado de mi preferencia quedando mi configuración de la siguiente manera:

/dev/sda1: partición de arranque (/boot) sin cifrar

/dev/sda2: partición raíz (/), cifrada con LUKS

/dev/sda3: directorio de datos de usuario (/home). En este caso lo dejo sin cifrar para hacerlo luego utilizando la herramienta ecryptfs.

/dev/sda4: espacio de intercambio (swap). También quedará sin cifrar en este momento, ya que trataré este punto en la etapa siguiente.

Ahora bien, he iniciado el equipo, ingresé la clave de cifrado para el sistema y estoy en la pantalla del gestor de inicio, esperando para ingresar la contraseña. Lo primero que haremos una vez iniciada la sesión será instalar las actualizaciones del sistema para tenerlo a la fecha para luego buscar e instalar los paquetes necesarios. Abrimos una consola de comandos y ejecutamos:

$ sudo pacman-mirrors -g && sudo pacman -Syy

$ sudo pacman -S manjaro-keyring archlinux-keyring

$ sudo pacman -Syu
(Este comando lo ejecutamos cuando iniciamos Manjaro por primera vez. Lo que hace es: optimizar la lista de mirrors, actualizar la base de datos de repositorios, instalar las claves y firmas de Manjaro y Archlinux, actualizar el sistema)
$ sudo pacman -S ecryptfs-utils keyutils rsync lsof
(Notaremos que estos paquetes ya vienen instalados en Manjaro)

Ahora ya estamos listos para cifrar el directorio /home de nuestro usuario. Para esto, cerramos la sesión de escritorio y abrimos una sesión en tty2 presionando Ctrl+Alt+F2 iniciando como usuario root:

tty2

hostname login: root
Password: ******************
Last Login […]

# killall -u usuario && ps -U usuario
(Es necesario que el usuario a quien vamos a cifrar su directorio /home no tenga ningún proceso en ejecución y que dicho directorio no esté montado)

El siguiente paso consiste en asegurarnos que el nuevo directorio /home cifrado será desbloqueado y montado al momento de que el usuario inicie sesión y no posteriormente como si se tratara de un directorio cualquiera. Para esto, modificaremos el archivo “/etc/pam.d/system-auth” de la siguiente forma:

# nano /etc/pam.d/system-auth

/etc/pam.d/system-auth

Posterior a la línea “auth required pam_unix.so” escribimos

auth     required pam_ecryptfs.so     unwrap

Arriba de la línea “password required pam_unix.so” escribimos

password     optional      pam_ecryptfs.so

Posterior a la línea “session required pam_unix.so” escribimos

session     optional      pam_ecryptfs.so     unwrap

Guardamos y cerramos el archivo

Finalmente, nos encontramos en condiciones de cifrar el directorio:

# modprobe ecryptfs

# ecryptfs-migrate-home -u usuario
Passphrase: ************
(Cargamos el módulo y realizamos la migración a un directorio cifrado. Este proceso puede tomar mucho tiempo dependiendo de la cantidad del tamaño del directorio) (Es muy importante que la Passphrase sea la misma que la clave de inicio de sesión del usuario. Esto servirá para que desbloquee el directorio en forma automática al iniciar sesión)
(Finalizado el proceso, cerramos la sesión y cambiamos a tty1 con Ctrl+Alt+F1 e iniciamos sesión normalmente con el usuario)  (Durante el proceso, ecryptfs hará una copia de seguridad creando un directorio /home/usuario.datos_aleatorios el cual puede ser borrado una vez verificado que todo esté en su lugar)

Hasta acá hemos realizado una instalación en limpio de una distribución GNU/Linux cifrando el directorio raíz al momento de configurar las particiones y luego hemos cifrado el directorio /home/usuario para proteger los datos allí almacenados. Hemos iniciado sesión con este usuario y hemos verificado que esté todo funcionando correctamente. Ahora podremos reiniciar el sistema y pasar a la próxima etapa del proceso…

Etapa 2: tratamiento del espacio de intercambio

En términos muy simples, el espacio de intercambio o swap corresponde a una porción del disco donde van siendo descargados datos temporales desde la memoria de lectura del sistema. Aquí van quedando almacenados datos muy sensibles, como por ejemplo credenciales de sitios web, contraseñas y más. No hay que pensar demasiado para notar las amenazas a la privacidad y la importancia que representa cifrar esta información, sobre todo si consideramos que al hibernar o suspender un equipo, todo va a parar a swap.

Siguiendo con la simulación anterior, vamos ahora a proceder con el cifrado de esta partición. Para esto, simplemente ejecutaremos:

$ sudo ecryptfs-setup-swap -f
(El script modificará el archivo /etc/fstab comentando las líneas que tengan particiones swap automontadas y añadiendo al final “/dev/mapper/cryptwap1 none swap sw 0 0” para montar la nueva partición swap cifrada)
(Además, modificará el archivo /etc/cryptswap añadiendo la línea “cryptswap1 UUID=id_de_la_particion_swap /dev/urandom swap,offset=1024,cipher=aes-xts-plain64”)
$ swapon -s
(Verificamos que haya quedado cifrado correctamente)
Nombre del fichero   Tipo        Tamaño    Utilizado  Prioridad
/dev/dm-1            particion   2097180   164        -1

Breve Pausa: gestión de contraseñas

Aunque las he nombrado a lo largo de toda la entrada, es el momento de hacer una pausa y dedicarle un apartado especial a las contraseñas. Muchos estudios se han realizado al respecto y se ha encontrado que la mayoría de las personas utilizan claves que son muy fácilmente desbloqueables, como por ejemplo la misma palabra que describe al usuario o al sistema operativo (algo así como usuario: root, contraseña: manjaro), fechas de nacimiento, nombre de sus hijos o mascotas y un largo etcétera. Sumado a esto, muchas personas utilizan la misma clave para todo, quizá con algún pequeño cambio.

De nada servirá que cifremos si vamos a utilizar contraseñas de este tipo. Para que cualquier acción que tomemos con el fin de proteger nuestra privacidad y nuestra información tenga sentido debemos utilizar contraseñas fuertes. Mi recomendación al respecto es generar claves de muchos dígitos, en especial si la cantidad es un número primo (19, 31). Además, esta contraseña debe ser una combinación de letras, números y caracteres especiales (siempre que lo permita) y estos números no deben remplazar letras: la clave “milanesasconpure” es tan mala como “m1l4n3545c0n9ur3”.

Claro, una contraseña de las características descritas es muy difícil de recordar. Para ayudarnos tenemos algunos métodos, como por ejemplo, usar una contraseña que responda a los movimientos para piano de una melodía especial. Otra forma que muchos utilizan es cifrar también sus contraseñas mediante el uso de una aplicación específica para estos fines, de manera que sólo debemos recordar una única contraseña maestra que sirve para desbloquear (individualmente) las contraseñas cifradas.

Etapa 3: archivos y directorios

Pues bien, ya hemos hablado de las contraseñas y toca ahora que veamos cómo crear un directorio Privado donde podremos almacenar datos de manera cifrada y que, al contrario del cifrado completo del directorio /home, este será desbloqueado y montado sólo al momento en que lo necesitemos para luego ser desmontado nuevamente. Esto nos permitirá tener estos datos resguardados mientras utilizamos el equipo, impidiendo el acceso físico y remoto no autorizado a los mismos. Comenzaremos como siempre, abriendo una consola y ejecutando:

$ ecrytpfs-setup-private --nopwcheck --noautomount
Este script creará los directorios ocultos ~/.Private y ~/.ecryptfs (sin no existen previamente). La opción –nopwcheck sirve para utilizar una contraseña distinta a la de inicio de sesión del usuario; la opción –noautomount se explica a sí misma. Durante el proceso se solicitarán dos claves: una para login y otra para montaje. La segunda será la clave que desbloquee el directorio, la primera será la clave bajo la que será cifrada la clave de montaje, por lo cuál, al momento de montar el directorio, se solicitará únicamente la primera contraseña.

Para montar y desmontar este directorio cifrado, ejecutaremos respectivamente:

$ encryptfs-mount-private

$ encryptfs-umount-private

 

Final de la Primera Parte

En esta entrada hemos visto cómo resguardar los datos en nuestro disco duro (permanentes y temporales) mediante el uso de las herramientas de cifrado que disponemos para optimizar este proceso. Pero para llevar este cifrado al extremo debemos pensar que como usuarios de un sistema efectuamos un gran número de operaciones con nuestros equipos: navegamos por la vasta red de Internet, enviamos y recibimos correo electrónico, guardamos información en servicios de almacenamiento en “nube”, descargamos paquetes que luego instalamos, enviamos mensajes de chat y mucho más.

No es necesario aclarar la importancia que implica realizar estas operaciones de manera segura mediante el cifrado de la información. Quedo entonces comprometido a publicar la Segunda Parte de este artículo donde trataré todos los temas pendientes y sumaré una pequeña perlita sobre herramientas de cifrado para dispositivos móviles.


Fuentes:
https://wiki.archlinux.org/index.php/Disk_encryption
https://wiki.archlinux.org/index.php/Dm-crypt
https://wiki.archlinux.org/index.php/ECryptfs
https://wiki.archlinux.org/index.php/Security#Choosing_secure_passwords

 

La experiencia Plasma 5

Un poco de contexto

Hace unas semanas decidí hacer una instalación en limpio de Archlinux en mi escritorio y esta vez elegí como entorno KDE Plasma 5 (5.6.1 para ser específicos), dejando atrás a XFCE, el escritorio “libre de colesterol” famoso por ser ligero y altamente configurable, el cual me venía acompañando incondicionalmente por los últimos 5 o 6 años.

En el pasado no le había dado una verdadera oportunidad al escritorio de KDE por razones que son más bien excusas. Lo cierto es que no me gustaba realmente, y lo poco que me llamaba la atención quedaba empañado ante el hecho de ser reconocido como uno de los entornos de escritorio menos amigable con los recursos de la máquina. Luego, llamó especialmente mi atención cuando recientemente leí sobre este nuevo proyecto de KDE denominado Plasma 5 que venía a patear el tablero de la mejor manera que podría hacerlo: un nuevo entorno basado en Qt enfocado en la personalización, el buen gusto por el estilo y que prometía ser muy generoso con los recursos del sistema.

Sin embargo, y a pesar de haberlo probado en máquinas virtuales y en mi disco duro por varios días y de haber notado que efectivamente es agradable visualmente y que “vuela” en cuanto a rendimiento, seguía dándome la impresión de que algo le faltaba, aunque honestamente quizá era a mí a quien le faltaba hacer click para vencer la inercia de tantos años con xfce. Después de varias vueltas mientras pasaba por un proceso de aburrimiento con el escritorio del ratoncito, decidí volver a intentar con Plasma 5.

Lo que sigue es el resultado de mi experiencia.

Anécdotas iniciales

Lo primero que me encontré al iniciar sesión fue con una gran ignorancia sobre este entorno de escritorio. Claro, al ser una instalación sobre Arch y haber instalado sólo el paquete correspondiente al entorno en sí, sin instalar ninguna otra aplicación además de un emulador de terminal como para tener desde donde trabajar una vez iniciado el sistema con interfaz gráfica tenía una vaga idea por dónde empezar: instalé Firefox para tener desde dónde obtener la información que necesitaba.

Acá empezaron las dudas: las aplicaciones GTK se portan mal en KDE Plasma. Un error aquí fue asumir que la integración entre Plasma 5 con aplicaciones GTK era total cuando no lo es. Descubrí que apenas existe una manera de hacer estas aplicaciones se vean más o menos bien, cosa que no es tan así. La navegación con Firefox me resultó insoportable pero al menos sirvió para definir qué aplicaciones instalaría y cuáles no, además de pasearme por la ArchWiki en busca de los detalles necesarios.

Ya con la información y varios programillas instalados pude configurar gran parte del sistema. Esto también fue útil para saber que finalmente me libraría de un navegador que nunca me gustó demasiado pero que siempre utilicé por razones prácticas: en entornos GTK, el navegador de Mozilla es lo mejorcito que hay (al menos para mi gusto).

La fase de aprendizaje: los primeros problemas

Como mencioné, Firefox no va a ningún lado en KDE. La Archwiki menciona una versión desarrollada por gente de OpenSUSE con especial integración para Plasma y que está en los repositorios de AUR. No la instalé por razones ya sabidas. Me incliné entonces por Konqueror: navegador y gestor de archivos todo en uno fue todo lo que necesité saber para decidirme por usarlo. Los problemas aparecieron en forma de mensajes que alertaban sobre ciertas implementaciones al momento de iniciar sesión a mi cuenta de pump.io (en el nodo microca.st). Debo agradecer aquí a Jan, un compañero en redes libres que además es el desarrollador de Dianara, un grandioso cliente de escritorio para redes pump.io. Gracias a él, entendí que Konqueror funciona por defecto con el limitado motor KHTML pero que también soporta otros motores, entre ellos WebKit, que en Arch viene empaquetado como “kwebkitpart”. Problema resuelto.

El resto significó pasar por el proceso de re-aprender principalmente cómo funcionan las pequeñas cosas en Plasma pero que siempre son detalles importantes: dónde están los directorios con archivos de configuración, cómo trabaja el gestor de ventanas y el compositor, dónde se configura cada aspecto del escritorio y el sistema, etcétera. No es para nada difícil ni complicado para quienes usan GNU/Linux por varios años, pero requiere dedicarle su tiempo y prestarle atención a los detalles.

La etapa del disfrute

Superada ya la fase anterior, llegó rápidamente la etapa en que empecé a disfrutar de este entorno de escritorio. No cabe duda sobre lo bien que la gente de KDE está haciendo las cosas. Esto se nota en cada aspecto de Plasma 5.6.1: hay estabilidad, buen diseño, excelente funcionalidad, simplicidad, personalización al extremo y un uso de recursos que da gusto. Esto me deja en una situación muy particular: no tengo que prestarle demasiada atención al entorno de escritorio, lo que me da más tiempo para ocuparme de todo lo demás, algo que nunca me había ocurrido con XFCE.

Me he encontrado con excelentes aplicaciones para este escritorio, entre las que puedo destacar: la ya mencionada Dianara, Cantata como cliente de reproducción para MPD, el lector de fuentes RSS Akregator, el emulador de terminal Konsole, el cliente de correo KMail que me ha impresionado por su funcionalidad e integración con firmado y cifrado de correo, superando ampliamente al cliente de Mozilla, Thunderbird y para interactuar con mi equipo móvil con CyanogenMod está KDEConnect.

Me ha encantado por su parte que cada aspecto del sistema sea susceptible de ser personalizado, todo se puede modificar a gusto del usuario y las opciones son geniales con excelentes animaciones, efectos de escritorio, fuentes, esquemas de color y un largo etcétera. Respecto a esto, otro de los motivos que me llevó a buscarle la vuelta a Plasma 5 es el Artwork Antü, obra de un chico chileno llamado Fabián del Blog Pingüinos y un Café, quien ha hecho un trabajo fascinante, cuidando mucho los detalles y con muy buen sentido de lo estético, dándole a Plasma una apariencia muy disfrutable.

Conclusión

Ayer leí un artículo Adrián Perales en el que menciona su Paseo por algunos escritorios de GNU/Linux y estoy de acuerdo con él en que “El escritorio sigue siendo importante”. Con tantas opciones la elección se vuelve algo muy personal. Mi recomendación es que prueben tantos como puedan y que lo hagan de manera regular: un entorno que hoy no nos gusta, puede encantarnos en el futuro y al contrario, nuestro escritorio preferido de hoy puede dejar de gustarnos más adelante.

En mi caso, tengo argumentos para decir que KDE Plasma 5 ha llegado para quedarse y estará en mi escritorio por el tiempo que siga siendo lo que es hoy: un entorno bien hecho desde sus fundamentos.

Cuidá tu privacidad en la Red

Últimamente se habla mucho sobre privacidad y seguridad en las redes. De hecho, cada sitio o blog de los que visito a diario ha tocado el tema más de una vez en el último mes, ni hablar del último año, dejando evidencia de la importancia que ha alcanzado este asunto y la necesidad que tenemos los que defendemos la libertad de que la gente tome conciencia del tema. Por mi parte, quisiera aportar otro granito de arena para que sigamos construyendo.

Cuidá tus datos personales

El aspecto más importante en cuanto a la privacidad es lo que hacemos con nuestros datos, nuestra información personal. Nada más claro, y sin embargo, vemos a diario cómo las personas cuelgan en redes sociales los datos de dónde viven, su número telefónico, dónde estudian o trabajan y en qué horarios, qué lugares frecuentan, quienes son los demás integrantes de su familia, etcétera. Lo que me parece peor es que suben fotografías de sus hijos con la información de ellos también ahí a disposición de cualquiera, todo claro está, con nombre y apellido reales. No creo que haga falta decir más al respecto.

Por mi parte, en Internet nadie me conoce por mi verdadero nombre y nadie ha visto una fotografía que pueda asociar con mi cara. Es más, si alguien escribiera mi nombre y apellido reales en cualquier buscador, tampoco llegaría a nada, mi información personal no está en Internet. ¿Alguien más ha hecho la prueba con su nombre? Muchos se sorprenden al ver los resultados.

Cuida lo que hacen otros con tus datos personales

Hace unos días leí por acá una historia muy interesante al respecto y que deja este concepto muy claro. He sabido de algunos compañeros en las redes sobre problemas que tuvieron al respecto. La cuestión es simple: vos cuidás celosamente tu información, pero si alguien de tu entorno no lo hace probablemente terminarás afectado.

Pedíle a tu familia y amigos que respeten tu decisión de cuidar tu información personal explicándoles por qué crees que te están haciendo un daño al publicar tus datos, fotos, actividades en las redes. Por supuesto, no los podés obligar, pero si te aprecian, van a respetarte.

Cifrá tu información

Este es un tema que me apasiona. En la web hay mucha información por lo que no me voy a detener en los aspectos técnicos ni voy a profundizar sobre los mismos en este momento. Basta con que remarque la importancia de utilizar métodos de cifrado o encriptado de datos en tus comunicaciones y en tus archivos. Tarde o temprano nos podemos topar con una filtración de nuestra información en la web y que los datos “viajen” encriptados será decisivo para resguardar nuestra privacidad.

Navegá anónimo con Tor y sus consejos

Hay quienes defienden y quienes atacan a la red de navegación anónima Tor. En mi caso, lo uso siempre que puedo. Tor es un proyecto muy interesante para quienes nos preocupa la privacidad. Es cierto que se ha ganado la fama de que es la red ideal para terroristas, narcos y gente cuya actividad quiere mantener totalmente oculta de los ojos de la ley. Sin embargo, la red no se creó con la intención de ayudar a esa gente. Hay muchos sitios en Internet que rastrean tu actividad y tu ubicación basados en tu dirección ip. La mejor manera de evitar que alguien conozca es información es cubrirla con las “capas” que ofrece Tor.

Por otra parte, la web de Tor nos da una lista de consejos que podemos seguir para reforzar nuestro anonimato en la red. Algunos de ellos son: navegá utilizando el protocolo “https”, esto te asegura que los datos en tu navegación son encriptados; no usés torrent mediante Tor, esto quitaría tu anonimato y afecta el de los demás usuarios de Tor; abrí los documentos descargados fuera de línea (off-line) debido a que algunos documentos contienen recursos que pueden ser descargados fuera de la red Tor, exponiendo tu ip.

Cuidado con las redes WiFi públicas

Las redes WiFi públicas representan un gran peligro para la seguridad y la privacidad. Hay muchas cuestiones técnicas detrás de esto. Lo que queda más a la vista es que siendo una red pública es más fácil para cualquiera husmear(sniff) lo que pasa a través de esa red. Por mi parte, sólo me conecto a la red WiFi de mi casa y de amigos en quienes confío.

Pensá dos veces antes de hacer click

Por mucho que aseguremos nuestra navegación, tarde o temprano llegaremos a algún sitio donde peligre nuestra seguridad y privacidad. Por esto, tengo un bloqueador de anuncios en todos mis navegadores y muchos otros complementos de seguridad. Además, me cuido de los complementos que usan los sitios que visito y de trato de no utilizar webapps en mi navegador, tales como reproductores de música de emisoras de radio, almacenamiento en nube, etcétera a menos que confíe plenamente en ellos.

Aún así, nunca hago click en la poca publicidad que mi bloqueador no logra quitar, ni tampoco hago click en cuanto link aparezca en la página donde me encuentre. Muchos de esos banners, imágenes con links, etcétera contienen enlaces a sitios evidentemente maliciosos o bien sitios maliciosos encubiertos como sitios de confianza. Si vas a ingresar al sitio de tu banca online o vas a realizar compras por Internet, llegá hasta ahí desde la barra de dirección del navegador, nunca lo hagás mediante clicks en otros sitios.

Usá Software libre

Entre todos los beneficios que aporta el Software Libre, está el de ser software que habitualmente es auditado y que puede ser auditado en cualquier momento. Esto nos asegura saber qué hace un programa y cómo lo hace, permitiendo detectar funcionalidades maliciosas o sospechosas, puertas traseras, funciones que registran nuestros datos y los envían a algún sitio o servidor. Si nos arriesgamos a usar un programa que no es Software Libre, quedamos expuestos a la voluntad de los dueños del programa sobre lo que hagan con nuestros datos.

Quien tiene el código, tiene el poder sobre el software y la información que procesa y contiene dicho software. Si el programa es privativo, el poder lo tiene el dueño, si el programa es libre, el poder lo tienen el usuario y la comunidad.

Cambio de paradigmas

En muchas conversaciones sobre privacidad se oyen frases como: “¿para qué voy a preocuparme por alguna persona o máquina está espiando mi actividad en la red, mis conversaciones por correo electrónico o mis mensajes, en definitiva no tengo nada que ocultar? ¿Quién va a querer robarme a mí que tengo tan poco? ¿Qué provecho puede obtener con los datos de un “don nadie” como yo, una empresa tan gigante como…?

Mi reacción ante estas excusas es simplemente responder respetuosamente: en tu hogar tampoco tenés nada que ocultar y, sin embargo, mantenés las puertas cerradas y tapás las ventanas con cortinas. Si descubrieras a tu vecino mirando a través de un agujero en la pared lo taparías y denunciarías a tu vecino con la policía. Tampoco dejás a extraños ingresar para que vean lo que hacés a diario y estudiar tus hábitos, qué comés, a qué hora dormís. Si un desconocido te pidiera ver tus correos o tus mensajes se lo negarías de inmediato, es más, se lo negás normalmente a personas que son de tu confianza y nadie se escandaliza al respecto. ¿Por qué tiene que ser diferente con tu actividad en las redes? (esto salió de una conversación real que tuve con un amigo hace unos días)

Por otra parte, la mayoría de nosotros pasamos de largo cuando nos piden completar una encuesta en la calle. Sabemos que es para juntar datos para alguna campaña publicitaria que termina beneficiando económica o políticamente (o ambas) a alguien ya lo bastante beneficiado actualmente. En Internet, parece que a nadie le importa. Es más, algunos están felices de que rastreen su actividad para obtener mejores sugerencias de búsqueda, etcétera mientras la rueda del dinero sigue girando para alguien más.

La verdad es que hasta que no cambiemos el paradigma, la cosa no va a cambiar mucho. Necesitamos empezar por modificar nuestras ideas y actitudes para poder cambiar nuestro modo de actuar. Esto implica también vencer la costumbre. Por mi parte, me costó mucho trabajo dejar de usar ciertos servicios y ciertos programas. Pero al final, fue una experiencia liberadora.

Para finalizar, mientras redactaba el post me encontrado luchando con mi propio estilo: tratar de ser breve en un tema que da mucho para hablar al mismo tiempo que no quería entrar en temas técnicos ni dar demasiados ejemplos es difícil y lo he comprobado. Queda mucho por hacer. Queda lejos de ser la última palabra en cuanto al tema, estoy seguro que se puede hacer más, o bien hacerlo de otra manera. De momento, es la forma que yo conozco y que puedo implementar dentro de mis posibilidades. Me quedo satisfecho al menos por el hecho de poder comunicarles mi opinión personal y transmitirles mi experiencia.

Espero sus comentarios ¡Saludos a todos!