Y con este artículo, daré por terminada, por el momento, esta serie dedicada a la seguridad en nuestra Raspberry. Vamos a evaluar las defensas de seguridad del sistema y para ello utilizaré la herramienta de auditoría Lynis. Esta herramienta ofrece sugerencias para instalar, configurar o corregir cualquier medida de seguridad.
Instalación de Lynis
En primer lugar, instalamos la aplicación:
sudo pacman -S lynisUna vez finalizada, podremos realizar un escáner completo, sin necesidad de que el usuario intervenga en ningún momento (quiet mode), ejecutando el siguiente comando:
sudo lynis audit systemAnálisis de resultados
Una vez terminado el escaneo, podemos acceder al informe de la auditoría de Lynis en el fichero /var/log/lynis.log. En él podemos encontrar tanto las advertencias más graves, como las sugerencias de menor importancia:
sudo nano /var/log/lynis.logUna opción mejor sería utilizar el comando grep, para filtrar únicamente los problemas a resolver cuanto antes:
sudo grep Warning /var/log/lynis.logPor ejemplo:
2018-03-29 19:50:11 Warning: No password set for single mode [test:AUTH-9308] [details:-] [solution:-]Y a continuación, filtrar sólo las sugerencias:
sudo grep Suggestion /var/log/lynis.log...
2018-03-29 19:50:38 Suggestion: Disable drivers like firewire storage when not used, to prevent unauthorized storage or data theft [test:STRG-1846] [details:-] [solution:-]
2018-03-29 19:50:39 Suggestion: Check DNS configuration for the dns domain name [test:NAME-4028] [details:-] [solution:-]
2018-03-29 19:50:40 Suggestion: Add the IP name and FQDN to /etc/hosts for proper name resolving [test:NAME-4404] [details:-] [solution:-]
2018-03-29 19:50:47 Suggestion: Consider installing arch-audit to determine vulnerable packages [test:PKGS-7320] [details:arch-audit] [solution:text:Install arch-audit]
...Podemos listar todos los comandos posibles con:
sudo lynis show commandsObteniendo el siguiente resultado:
Commands:
lynis audit
lynis configure
lynis show
lynis update
lynis upload-onlyAutomatizando la auditoría
Para automatizar la auditoría, añadiremos un temporizador que se ejecutará semanalmente, por ejemplo los lunes a mediodía. Empezamos editando el fichero lynis.service:
sudo nano /etc/systemd/system/lynis.service[Unit]
Description=Lynis security audit and vulnerability scan
[Service]
Nice=19
IOSchedulingClass=best-effort
IOSchedulingPriority=7
Type=simple
ExecStart=/usr/bin/lynis audit system --cronjoby continuamos con el lynis.timer:
sudo nano /etc/systemd/system/lynis.timer[Unit]
Description=Daily run for Lynis security audit and vulnerability scan
[Timer]
OnCalendar=Mon *-*-* 12:00:00
Persistent=true
[Install]
WantedBy=timers.targetAñadimos el servicio recién creado al inicio:
sudo systemctl enable lynis.timery arrancamos:
sudo systemctl start lynis.timerComprobamos con:
systemctl list-timers --allEnviar correo electrónico al terminar
Lynis no tiene una opción para poder enviar el informe por correo electrónico, y tampoco tenemos el equivalente de MAILTO de cron al utilizar los temporizadores de systemd. Para solventar estas carencias, escribiremos un script y lo ejecutaremos al finalizar la auditoría.
El script, al que llamaré lynis-email, puede ser algo parecido a esto:
sudo nano /usr/local/bin/lynis-email#!/bin/bash
body="$(sudo grep Warning /var/log/lynis.log)" && echo "$body" | mailx -s "[Lynis] Audit webserver" usuario@jaumeferre.netLo convertimos en ejecutable:
sudo chmod +x /usr/local/bin/lynis-emailEn el servicio lynis.service añadimos otro parámetro ExecStart y modificamos type para que se ejecuten ambos en serie:
sudo nano /etc/systemd/system/lynis.serviceY debería quedar así:
Type=oneshot
ExecStart=/usr/bin/lynis -c --cronjob
ExecStart=/usr/local/bin/lynis-emailRecargamos las unidades con:
sudo systemctl daemon-reloadArch-audit
Una de las sugerencias aportadas en la primera auditoría realizada, es la de instalar arch-audit, una utilidad que se encarga de identificar si alguno de los paquetes instalados ofrecen alguna vulnerabilidad detectada por el equipo de seguridad de Arch, y se refieren únicamente al software incluido en el repositorio oficial. La instalamos:
sudo pacman -S arch-auditVamos a crear un servicio y un temporizador nuevo que ejecute arch-audit inmediatamente después de la actualización diaria:
sudo nano /etc/systemd/system/arch-audit.service[Unit]
Description=Execute arch-audit
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/arch-audit -uq
User=nobody
Group=nobody
PrivateTmp=yes
ProtectSystem=full
ProtectHome=true
PrivateDevices=truey continuamos con la creación del temporizador:
sudo nano /etc/systemd/system/arch-audit.timer[Unit]
Description=Run arch-audit once a day
[Timer]
OnCalendar=*-*-* 02:15:00
Persistent=true
[Install]
WantedBy=timers.targetAñadimos el servicio:
sudo systemctl enable arch-audit.timery arrancamos:
sudo systemctl start arch-audit.timerComprobamos con:
systemctl list-timers --allCon esto concluye la serie de seguridad en Raspberry Pi. Hemos cubierto desde la actualización del firmware hasta la auditoría completa del sistema, pasando por SSH, cortafuegos, detección de rootkits, Fail2ban y copias de seguridad. Tu Raspberry ahora está mucho más protegida.
¿Te ha sido útil?
Ayúdame a mejorar con tu puntuación y comentarios.
💬 Comentarios
Los comentarios están gestionados por GitHub Discussions. Necesitas una cuenta de GitHub para participar. ¡Es gratis y rápido!