Una de las cosas que deberías de instalar en tu servidor Rocky Linux nada más ponerlo en marcha la primera vez es un sistema IDS (sistema de detección de intrusión), y AIDE (Advanced Intrusion Detection Environment), puede ser la opción perfecta por muchas razones, con el permiso de Tripwire. ¿Por qué? Lo primero, porque es gratuito. Lo segundo porque es muy sencillo de usar y configurar. Te cuento cómo lo he instalado yo.
¿Dónde he instalado AIDE? En un sistema Rocky Linux 9 en un servidor VPS en Linode/Akamai. Recuerda que debes usar un usuario con permisos de root para gestionar tu servidor. Y evitar el uso de root.
Instalación de AIDE
muy sencilla, porque el programa está incluido en el repositorio oficial de Rocky Linux, por lo que puedes dar DNF para instalarlo en pocos segundos.
sudo dnf install aide
Después de instalar el programa puedes comprobar su versión y archivos de configuración (o ver todos sus opciones con help) con el comando:
sudo aide --version
sudo aide --help
Aquí puedes ver algo importante. Donde está su archivo de configuración, al que voy a echar un vistazo desde el primer momento.
Iniciando y configurando AIDE
Primero miramos el archivo de configuración en /etc/aide.conf y lo editamos con vi.
sudo vi /etc/aide.conf
En este archivo vas a poder comprobar qué directorios va a revisar AIDE en sus escaneaos y con que profundidad lo va a hacer. También donde va a guardar su base de datos contra la que hace las comparaciones (aide.db.gz) y donde están lo logs (/var/log/aide).
Y te dice algo interesante. Como puedes crear nuevas reglas y que es lo que va a comprobar cada una:
# These are the default rules.
#
#p: permissions
#i: inode:
#n: number of links
#u: user
#g: group
#s: size
#b: block count
#m: mtime
#a: atime
#c: ctime
#S: check for growing size
#acl: Access Control Lists
#selinux SELinux security context
#xattrs: Extended file attributes
#md5: md5 checksum
#sha1: sha1 checksum
#sha256: sha256 checksum
#sha512: sha512 checksum
#rmd160: rmd160 checksum
#tiger: tiger checksum
#haval: haval checksum (MHASH only)
#gost: gost checksum (MHASH only)
#crc32: crc32 checksum (MHASH only)
#whirlpool: whirlpool checksum (MHASH only)
#R: p+i+n+u+g+s+m+c+acl+selinux+xattrs+md5
#L: p+i+n+u+g+acl+selinux+xattrs
#E: Empty group
#>: Growing logfile p+u+g+i+n+S+acl+selinux+xattrs
Tienes creas por defecto las siguientes:
ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger
# Everything but access time (Ie. all changes)
EVERYTHING = R+ALLXTRAHASHES
# Sane
# NORMAL = R+sha512
NORMAL = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha512
# For directories, don't bother doing hashes
DIR = p+i+n+u+g+acl+selinux+xattrs
# Access control only
PERMS = p+u+g+acl+selinux+xattrs
# Logfile are special, in that they often change
LOG = p+u+g+n+S+acl+selinux+xattrs
# Content + file type.
CONTENT = sha512+ftype
# Extended content + file type + access.
CONTENT_EX = sha512+ftype+p+u+g+n+acl+selinux+xattrs
# Some files get updated automatically, so the inode/ctime/mtime change
# but we want to know when the data inside them changes
DATAONLY = p+n+u+g+s+acl+selinux+xattrs+sha512
Y luego puedes ver cuál de ellas se aplica a cada directorio (por ejemplo en el directorio /root):
/root CONTENT_EX
Se aplica Extended content + file type + access.
En mi caso, he añadido unas cuantas reglas que revisan los directorios de auditoría que uso con auditd (en el editor vi, pulsamos i para instar cambios):
# Monitorear herramientas de auditoría
/usr/sbin/auditctl CONTENT_EX
/usr/sbin/aureport CONTENT_EX
/usr/sbin/ausearch CONTENT_EX
/usr/sbin/autrace CONTENT_EX
/usr/sbin/auditd CONTENT_EX
Tú puedes hacer lo mismo con los directorios que te interesen. Después de editar el archivo, salgo y guardo con ESC y :wq!
Ahora toca iniciar AIDE:
sudo aide --init
Este comando generará una nueva base de datos aide.db.new.gz en el directorio /var/lib/aide. Pero AIDE no va a usar esta base de datos hasta que la movamos a su localización correcta:
sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
Cada vez que actualices tu sistema o cambies archivos de configuración vas a atener que realizar este paso, más un par de cosas más:
Primera comprobación con AIDE:
sudo aide --check
Y la salida nos dará los cambios detectados en el sistema.
Después de hacer cambios en el sistema aplicamos el siguiente comando:
sudo aide --update
Y movemos la base de datos:
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
¿Cuántas veces deberías comprobar tu sistema con AIDE? Mínimo una vez a la semana. Recomendable hacerlo todos los días. Puedes programas un trabajo cron para ello (cambia [email protected] para recibir un correo con el resultado):
sudo crontab -e
15 10 * * * root /usr/sbin/aide --check 2>&1 | mail -s 'Informe AIDE' [email protected]
Recuerda que puedes comprobar el log de AIDE en /var/log/aide/aide.log.
Desde este momento recibirás un informe diario en tu email. ¡Ojo! Tienes que tener configurado algo como Postfix en tu sistema para que el correo electrónico funcione correctamente.
Conclusión
Parece sencillo instalar y configurar AIDE en tu sistema Rocky Linux 9, ¿no? Es un buen método para conseguir detectar cambios en tu sistema Linux: cuando alguien se mete en tu sistema, suele intentar cambiar los permisos de archivos, usar root o modificar archivos del sistema. AIDE te va a ayudar a detectar estos cambios.
Fuentes: