Una de las medidas de seguridad más básicas y habituales que podemos adoptar en nuestro entorno de trabajo es proteger nuestro ordenador mediante el bloqueo automático de la pantalla transcurrido un cierto período de inactividad, de modo que para desbloquearla sea necesario introducir nuestra contraseña. Pero hay una medida más eficaz, y que consiste en configurar nuestra máquina Linux para que la proximidad de un dispositivo Bluetooth de nuestra propiedad, por ejemplo nuestro móvil o un smartwatch, provoque automáticamente el bloqueo o desbloqueo de la pantalla sin que sea necesario introducir ninguna secuencia en el teclado.
En un mundo ideal nos acordaríamos siempre de bloquear la pantalla cuando nos ausentamos de nuestro puesto de trabajo para impedir así que otra persona pueda manipular nuestro ordenador durante nuestra ausencia. Sin embargo, a veces sucederá que nos descuidaremos y olvidaremos hacerlo, poniendo así en riesgo la seguridad de nuestra información. Pero aunque nos acordáramos siempre de bloquear la pantalla, el hecho de desbloquearla una y otra vez cada cierto tiempo en presencia de otras personas o en entornos no controlados también supone un riesgo importante para la seguridad, ya que estaremos exponiendo nuestra contraseña cada vez que la tecleamos, ya sea porque alguien nos vea escribirla directamente o porque una cámara de vigilancia registre la secuencia que introducimos en nuestro teclado.
Por tanto, con la solución que aquí propongo minimizamos los dos riesgos: olvidarnos de realizar el bloqueo y exponer nuestra contraseña cada vez que la escribimos.
Error: Your Requested widget " ai_widget-6" is not in the widget list.
- [do_widget_area above-nav-left]
- [do_widget_area above-nav-right]
- [do_widget_area footer-1]
- [do_widget id="wpp-4"]
- [do_widget_area footer-2]
- [do_widget id="recent-posts-4"]
- [do_widget_area footer-3]
- [do_widget id="recent-comments-3"]
- [do_widget_area footer-4]
- [do_widget id="archives-4"]
- [do_widget_area logo-bar]
- [do_widget id="oxywidgetwpml-3"]
- [do_widget_area menu-bar]
- [do_widget id="search-3"]
- [do_widget_area sidebar]
- [do_widget id="search-4"]
- [do_widget id="ai_widget-2"]
- [do_widget id="categories-5"]
- [do_widget id="ai_widget-3"]
- [do_widget id="ai_widget-4"]
- [do_widget id="ai_widget-5"]
- [do_widget_area sub-footer-1]
- [do_widget id="text-4"]
- [do_widget_area sub-footer-2]
- [do_widget_area sub-footer-3]
- [do_widget_area sub-footer-4]
- [do_widget_area upper-footer-1]
- [do_widget id="search-2"]
- [do_widget id="recent-posts-2"]
- [do_widget id="recent-comments-2"]
- [do_widget id="archives-2"]
- [do_widget id="categories-2"]
- [do_widget id="meta-2"]
- [do_widget_area upper-footer-2]
- [do_widget_area upper-footer-3]
- [do_widget_area upper-footer-4]
- [do_widget_area widgets_for_shortcodes]
- [do_widget id="search-5"]
- [do_widget id="ai_widget-6"]
- [do_widget_area wp_inactive_widgets]
- [do_widget id="wpp-2"]
- [do_widget id="text-1"]
- [do_widget id="recent-posts-3"]
- [do_widget id="categories-3"]
- [do_widget id="archives-3"]
- [do_widget id="icl_lang_sel_widget-3"]
Instalación y configuración de la utilidad Blueproximity
Se trata de una aplicación que se encarga de vigilar constantemente el nivel de intensidad de la señal de un dispositivo Bluetooth que vincularemos a nuestro ordenador, de forma que si nos alejamos de éste con nuestro móvil y la fuerza de la señal cae por debajo de un umbral dado durante un período de tiempo determinado (ambos parámetros los podemos definir a nuestro gusto), se ejecutará el comando que nosotros queramos, que en principio será un comando cuyo cometido será bloquear la pantalla. También al contrario, cuando el nivel de señal se recupere porque nos acerquemos de nuevo al ordenador, se ejecutará el comando de desbloqueo de la pantalla sin que nosotros tengamos que hacer nada.
La instalación de la aplicación Blueproximity es muy sencilla, pues al estar disponible en los repositorios de las principales distribuciones Linux lo haremos de la forma habitual:
Debian/Ubuntu:
~$ sudo apt-get install blueproximity
Fedora/Red Hat/Centos:
~$ sudo yum install blueproximity
Arch Linux:
~$ sudo yaourt -S blueproximity –noconfirm
Comandos habituales de bloqueo/desbloqueo
Una vez instalado el paquete blueproximity tendremos que proceder a vincular nuestro dispositivo Bluetooth, a establecer los umbrales para el nivel de intensidad y ajustar los comandos de bloqueo y desbloqueo que mejor se adapten a nuestro entorno de escritorio y a los objetivos que queremos conseguir.
A continuación indico los comandos de bloqueo/desbloqueo más habituales según el entorno gráfico que tengamos instalado. El tercer comando que aparece en el cuadro de diálogo de configuración (Proximity command) se ejecuta periódicamente según el intervalo de tiempo seleccionado siempre que nuestro dispositivo Bluetooth se encuentre dentro de rango. Esto puede utilizarse para ejecutar un comando que simule actividad del usuario para que nunca se bloqueé la sesión aunque no haya actividad si el usuario está cerca o simplemente el mismo comando que usemos para el desbloqueo.
Gnome
Blueproximity es una aplicación Gnome, por lo que por defecto vendrá configurada con los siguientes comandos:
Bloqueo:
gnome-screensaver-command -l
Desbloqueo:
gnome-screensaver-command -d
Cinnamon
Bloqueo:
cinnamon-screensaver-command -l
Desbloqueo:
cinnamon-screensaver-command -d
Mate
Bloqueo:
mate-screensaver-command -l
Desbloqueo:
mate-screensaver-command -d
KDE
En este caso indico dos comandos porque el segundo se corresponde con versiones antiguas de KDE anteriores a la versión 4.13.
Bloqueo:
dbus-send –type=method_call –dest=org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock
qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
Desbloqueo:
qdbus | perl -ne ‘qx/kquitapp $1/ if /(kscreenlocker_greet-\d+)/’ killall -9 kscreenlocker
Plasma Desktop 5
Bloqueo:
loginctl lock-session
Desbloqueo:
loginctl unlock-session
Otros
Bloqueo:
xscreensaver-command -lock
Desbloqueo:
pkill xscreensaver
Precauciones
Es importante tener en cuenta que el paquete blueproximity tiene varias dependencias que deberemos satisfacer si nuestra distribución de Linux no las trae por defecto:
bluez-utils python-gtk2 python-glade2 python-configobj python-bluez
Puede ocurrir que a pesar de estar la aplicación bien instalada y configurada y todas sus dependencias resueltas, el controlador de Bluetooth de nuestro sistema aparezca como bloqueado (Soft blocked):
~# rfkill list 1: phy0: Wireless LAN Soft blocked: no Hard blocked: no 2: asus-wlan: Wireless LAN Soft blocked: no Hard blocked: no 3: asus-bluetooth: Bluetooth Soft blocked: yes Hard blocked: no 5: hci0: Bluetooth Soft blocked: yes Hard blocked: no
Si nuestro ordenador tiene un botón físico para activar o desactivar la función de Bluetooth entonces será el parámetro Hard blocked el que estará a yes.
Para desbloquear el controlador de Bluetooth emplearemos el siguiente comando:
~# rfkill unblock bluetooth
Otras veces, aunque desbloqueemos el controlador, éste se encuentra apagado (power off). Esto ocurre por ejemplo si estamos trabajando con un ordenador portátil que no está enchufado a su adaptador de corriente, sino que está utilizando la batería. Puede ocurrir que los ajustes de ahorro de energía que trae por defecto nuestra distribución Linux hagan que el controlador Bluetooth se apague automáticamente cuando arranca el sistema y tengamos que arrancarlo a mano:
~# bluetoothctl [bluetooth]# power on Changing power on succeeded
Dado que el comando anterior es interactivo, podemos utilizar mejor el siguiente que no requerirá de nuestra intervención y lo podremos usar por ejemplo en un script:
~# hciconfig hci0 up
Otras cosas interesantes que podemos hacer automáticamente además de bloquear/desbloquear la pantalla
Hay otras cosas interesantes que podemos hacer cuando nuestro dispositivo Bluetooth vinculado se acerca o se aleja de nuestra máquina aparte de bloquearla o desbloquearla. Podemos configurar Bluproximity para que ejecute comandos de bloqueo y desbloqueo más sofisticados, e incluso crear nuestros propios scripts para hacer multitud de cosas a la vez. Aquí dejo algunas ideas que os pueden resultar útiles:
Error: Your Requested widget " ai_widget-6" is not in the widget list.
- [do_widget_area above-nav-left]
- [do_widget_area above-nav-right]
- [do_widget_area footer-1]
- [do_widget id="wpp-4"]
- [do_widget_area footer-2]
- [do_widget id="recent-posts-4"]
- [do_widget_area footer-3]
- [do_widget id="recent-comments-3"]
- [do_widget_area footer-4]
- [do_widget id="archives-4"]
- [do_widget_area logo-bar]
- [do_widget id="oxywidgetwpml-3"]
- [do_widget_area menu-bar]
- [do_widget id="search-3"]
- [do_widget_area sidebar]
- [do_widget id="search-4"]
- [do_widget id="ai_widget-2"]
- [do_widget id="categories-5"]
- [do_widget id="ai_widget-3"]
- [do_widget id="ai_widget-4"]
- [do_widget id="ai_widget-5"]
- [do_widget_area sub-footer-1]
- [do_widget id="text-4"]
- [do_widget_area sub-footer-2]
- [do_widget_area sub-footer-3]
- [do_widget_area sub-footer-4]
- [do_widget_area upper-footer-1]
- [do_widget id="search-2"]
- [do_widget id="recent-posts-2"]
- [do_widget id="recent-comments-2"]
- [do_widget id="archives-2"]
- [do_widget id="categories-2"]
- [do_widget id="meta-2"]
- [do_widget_area upper-footer-2]
- [do_widget_area upper-footer-3]
- [do_widget_area upper-footer-4]
- [do_widget_area widgets_for_shortcodes]
- [do_widget id="search-5"]
- [do_widget id="ai_widget-6"]
- [do_widget_area wp_inactive_widgets]
- [do_widget id="wpp-2"]
- [do_widget id="text-1"]
- [do_widget id="recent-posts-3"]
- [do_widget id="categories-3"]
- [do_widget id="archives-3"]
- [do_widget id="icl_lang_sel_widget-3"]
Apagar y encender la pantalla
Aparte de realizar el oportuno bloqueo o desbloqueo podemos hacer que la pantalla también se apague cuando nos alejamos y se vuelva a encender cuando nos aproximamos para ahorrar energía. Para ello añadiremos el comando de apagado/encendido a los comandos de bloqueo/desbloqueo que vimos arriba. Por ejemplo:
Bloqueo:
loginctl lock-session && xset dpms force off
Desbloqueo:
xset dpms force on && loginctl unlock-session
Enviar una notificación push a nuestro smartphone
Para este ejemplo utilizo la siguiente librería para enviar notificaciones push a nuestro móvil desde la línea de comandos a través del servicio Pushbullet: https://github.com/GustavoKatel/pushbullet-cli.
Bloqueo:
loginctl lock-session && pb push "Pantalla bloqueada a las $(date +%H:%M:%S) del $(date +%d/%m/%Y)"
Desbloqueo:
pb push "Pantalla desbloqueada a las $(date +%H:%M:%S) del $(date +%d/%m/%Y)" && loginctl unlock-session
Parar e iniciar la reproducción de canciones en Spotify
Bloqueo:
loginctl lock-session && dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pause
Desbloqueo:
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Play && loginctl unlock-session
Cambiar el estado de nuestro cliente de chat a No disponible/Disponible
Bloqueo:
loginctl lock-session && purple-remote "setstatus?status=away&message=No disponible"
Desbloqueo:
purple-remote "setstatus?status=available&message=" && loginctl unlock-session
Iniciar/parar a grabar vídeo con nuestra webcam
Bloqueo:
loginctl lock-session && streamer -q -c /dev/video0 -f rgb24 -r 3 -o ~/outfile.avi
loginctl lock-session && ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg
Desbloqueo:
pkill streamer && loginctl unlock-session
pkill ffmpeg && loginctl unlock-session
¡Si se te ocurren más ejemplos no dudes en hacer tu aportación escribiendo un comentario!
1 comentario
Unirte a la conversaciónAndrés - 21/11/2017
Buenas tardes, es muy interesante la aplicación, lo único que me llama la atención es que me solicita permisos en el celu para acceder al chip (SIM) y a los mensajes, le niego el acceso y Blueproximity no funciona.