AIDE altrimenti chiamato come Advanced Intrusion Detection Environment. AIDE è uno degli strumenti più popolari per monitorare le modifiche al server in un sistema basato su LINUX. Viene utilizzato come controllo dell'integrità di file/cartelle. L'installazione di questo software è molto semplice. Questo è stato originariamente scritto da Rami Lehti e Pablo Virolainen nel 1999. Il controllo del sistema è inizializzato dal database. Questo database viene creato da regole di espressione regolare nei file di configurazione. Una volta che il database è stato inizializzato, può essere ulteriormente utilizzato per verificare l'integrità del server. Diversi algoritmi di digest sono incorporati per servire a questo scopo. Può essere utilizzato anche per verificare la presenza di incongruenze negli attributi del file.
Caratteristiche PRINCIPALI:
- Supporta diversi algoritmi digest come md5, sha1, rmd160, tiger, crc32, sha256, sha512, whirlpool e molti altri
- Supporta attributi di file come tipo di file, autorizzazioni, Inode, Uid, Gid, Nome collegamento, Dimensione, Conteggio blocchi, Numero di collegamenti, Mtime, Ctime e Atime
- Supporta Posix ACL, SELinux, XAttrs e gli attributi di file system estesi
- Supporta l'espressione regolare per includere o escludere file/directory in modo selettivo.
- Supporta la compressione del database GZIP.
- Binario statico autonomo per semplici configurazioni di monitoraggio client/server.
In questo articolo, sto discutendo dell'installazione e della configurazione dell'attuale versione stabile 0.15.1 di AIDE su un server CentOS 7. Esaminiamo le procedure.
Fase 1:installazione
Possiamo usare il comando yum per installare il software AIDE.
[root@server1 ~]# yum install aide
Loaded plugins: fastestmirror
Dependencies Resolved
===============================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================
Installing:
aide x86_64 0.15.1-9.el7 base 129 k
Transaction Summary
===============================================================================================================================================
Install 1 Package
Total download size: 129 k
Installed size: 304 k
Fase 2:controlla e verifica la versione AIDE
Possiamo eseguire questo comando per confermare la versione AIDE e individuare il file di configurazione.
[root@server1 ~]# aide -v
Aide 0.15.1
Compiled with the following options:
WITH_MMAP
WITH_POSIX_ACL
WITH_SELINUX
WITH_PRELINK
WITH_XATTR
WITH_E2FSATTRS
WITH_LSTAT64
WITH_READDIR64
WITH_ZLIB
WITH_GCRYPT
WITH_AUDIT
CONFIG_FILE = "/etc/aide.conf"
Fase 3:crea il database
Una volta completata l'installazione di AIDE, dobbiamo creare il database primario che viene inizializzato dall'insieme di regole/espressioni nei file di configurazione.
[root@[root@server1 ~]# aide --init
AIDE, version 0.15.1
### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
server1 ~]# aide --init
AIDE, version 0.15.1
### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
Una volta creato il database, puoi spostarlo in quello originale rinominandolo per far funzionare l'AIDE.
root@server1 ~]# mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
[root@server1 ~]# cd /var/lib/aide
[root@server1 aide]# ls
aide.db.gz
[root@server1 aide]#
[root@server1 aide]#
[root@server1 aide]# ls -lt
total 2136
-rw------- 1 root root 2186673 Apr 1 04:09 aide.db.gz
Fase 4:esegui il controllo AIDE
[root@server1 aide]# aide --check
AIDE, version 0.15.1
### All files match AIDE database. Looks okay!
Fase 5:conferma la sua funzionalità e crea un database AIDE aggiornato
Crea un file binario manualmente e controlla se AIDE lo rileva.
root@server1 aide]# touch /usr/sbin/testbinary
[root@server1 aide]#
[root@server1 aide]#
[root@server1 aide]# aide --check
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2016-04-01 04:14:10
Summary:
Total number of files: 23028
Added files: 1
Removed files: 0
Changed files: 1
---------------------------------------------------
Added files:
---------------------------------------------------
added: /usr/sbin/testbinary
---------------------------------------------------
Changed files:
---------------------------------------------------
changed: /usr/sbin
---------------------------------------------------
Detailed information about changes:
---------------------------------------------------
Directory: /usr/sbin
Mtime : 2016-04-01 03:42:47 , 2016-04-01 04:14:03
Ctime : 2016-04-01 03:42:47 , 2016-04-01 04:14:03
Possiamo verificare la presenza del nuovo file dai verbali di controllo dell'AIDE. Possiamo anche identificare eventuali modifiche agli attributi di file anche da questi controlli.
Dopo aver esaminato queste modifiche, è sempre meglio aggiornare il database dell'aide in modo che non venga riportato nuovamente al prossimo controllo dell'Aide.
[root@server1 aide]# aide --update
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2016-04-01 04:15:21
Summary:
Total number of files: 23028
Added files: 1
Removed files: 0
Changed files: 1
---------------------------------------------------
Added files:
---------------------------------------------------
added: /usr/sbin/testbinary
---------------------------------------------------
Changed files:
---------------------------------------------------
changed: /usr/sbin
---------------------------------------------------
Detailed information about changes:
---------------------------------------------------
Si consiglia sempre di mantenere intatto il vecchio database AIDE e di rinominare il database aggiornato sulle basi quotidiane per tenerne traccia.
[root@server1 tmp]# cd /var/lib/aide/
root@server1 aide]# ls
aide.db.gz aide.db.new.gz
[root@server1 aide]# mv aide.db.gz aide.db.gz-Apr012016
[root@server1 aide]# mv aide.db.new.gz aide.db.gz
Questi processi sono piuttosto noiosi da controllare ogni volta e rinominare il database, possiamo utilizzare alcuni script per aggiornare queste impostazioni.
Passaggio 6:imposta cronjob per eseguire il controllo AIDE e il rapporto automaticamente
Creo un cron per avviare automaticamente il controllo AIDE per confermare l'integrità del mio server e segnalarmi su base giornaliera. Si prega di vedere i dettagli del mio script di seguito:
[root@server1 cron]# crontab -l
00 01 * * 0-6 /var/log/aide/aidechk.sh
[root@server1 cron]# systemctl restart crond.service
[root@server1 cron]#
[root@server1 cron]# systemctl status crond.service
crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled)
Active: active (running) since Fri 2016-04-01 04:28:22 UTC; 8s ago
Main PID: 12378 (crond)
CGroup: /system.slice/crond.service
└─12378 /usr/sbin/crond -n
Apr 01 04:28:22 server1.centos7-test.com systemd[1]: Started Command Scheduler.
Apr 01 04:28:22 server1.centos7-test.com crond[12378]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 98% if used.)
Apr 01 04:28:22 server1.centos7-test.com crond[12378]: (CRON) INFO (running with inotify support)
Apr 01 04:28:22 server1.centos7-test.com crond[12378]: (CRON) INFO (@reboot jobs will be run at computer's startup.)
[root@server1 cron]#
root@server1 tmp]# cat /var/log/aide/aidechk.sh
#!/bin/sh
#aide check - SShameer
DATE=`date +%Y-%m-%d`
echo $DATE
REPORT="Aide-"$DATE.txt
echo $REPORT
echo "System check !! `date`" > /tmp/$REPORT
aide --check > /tmp/aidecheck.txt
cat /tmp/aidecheck.txt|/bin/grep -v failed >> /tmp/$REPORT
echo "**************************************" >> /tmp/$REPORT
tail -20 /tmp/aidecheck.txt >> /tmp/$REPORT
echo "****************DONE******************" >> /tmp/$REPORT
mail -s "$REPORT `date`" [email protected] < /tmp/$REPORT
Installa il comando mailx o le utilità di posta per migliorare l'invio di e-mail, se non è presente. Come da nostro script, il report verrà rigenerato su /tmp con il timestamp e ci verrà inviato via email quotidianamente. Si prega di vedere uno dei miei formati di report di esempio di seguito:
root@server1 tmp]# cat Aide-2016-04-01.txt
System check !! Fri Apr 1 05:04:40 UTC 2016
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2016-04-01 05:04:40
Summary:
Total number of files: 23043
Added files: 15
Removed files: 0
Changed files: 4
---------------------------------------------------
Added files:
---------------------------------------------------
added: /etc/mail.rc
added: /usr/bin/Mail
added: /usr/bin/mail
added: /usr/bin/mailx
added: /usr/bin/nail
added: /usr/share/doc/mailx-12.5
added: /usr/share/doc/mailx-12.5/AUTHORS
added: /usr/share/doc/mailx-12.5/COPYING
added: /usr/share/doc/mailx-12.5/README
added: /usr/share/man/man1/Mail.1.gz
added: /usr/share/man/man1/mail.1.gz
added: /usr/share/man/man1/mailx.1.gz
added: /usr/share/man/man1/nail.1.gz
added: /var/log/aide/aidechk.sh
added: /var/spool/cron/root
---------------------------------------------------
Changed files:
---------------------------------------------------
changed: /root
changed: /usr/bin
changed: /usr/share/doc
changed: /usr/share/man/man1
---------------------------------------------------
Detailed information about changes:
---------------------------------------------------
Directory: /root
Mtime : 2014-07-07 21:41:51 , 2016-04-01 05:02:57
Ctime : 2014-07-07 21:41:51 , 2016-04-01 05:02:57
Directory: /usr/bin
Mtime : 2014-10-21 14:33:45 , 2016-04-01 05:04:29
Ctime : 2014-10-21 14:33:45 , 2016-04-01 05:04:29
Directory: /usr/share/doc
Mtime : 2016-04-01 03:42:47 , 2016-04-01 05:04:29
Ctime : 2016-04-01 03:42:47 , 2016-04-01 05:04:29
Linkcount: 240 , 241
Directory: /usr/share/man/man1
Mtime : 2016-04-01 03:42:47 , 2016-04-01 05:04:29
Ctime : 2016-04-01 03:42:47 , 2016-04-01 05:04:29
**************************************
Detailed information about changes:
---------------------------------------------------
Directory: /root
Mtime : 2014-07-07 21:41:51 , 2016-04-01 05:02:57
Ctime : 2014-07-07 21:41:51 , 2016-04-01 05:02:57
Directory: /usr/bin
Mtime : 2014-10-21 14:33:45 , 2016-04-01 05:04:29
Ctime : 2014-10-21 14:33:45 , 2016-04-01 05:04:29
Directory: /usr/share/doc
Mtime : 2016-04-01 03:42:47 , 2016-04-01 05:04:29
Ctime : 2016-04-01 03:42:47 , 2016-04-01 05:04:29
Linkcount: 240 , 241
Directory: /usr/share/man/man1
Mtime : 2016-04-01 03:42:47 , 2016-04-01 05:04:29
Ctime : 2016-04-01 03:42:47 , 2016-04-01 05:04:29
****************DONE******************
Possiamo anche modificare il file di configurazione AIDE /etc/aide.conf per impostazioni avanzate. Ma la configurazione predefinita vale quasi la pena e va bene.
Questo è il modo in cui possiamo utilizzare AIDE per comprendere le modifiche al server e identificare l'accesso non autorizzato al nostro server che può essere dovuto a contenuti dannosi o all'intervento umano. Spero che questo articolo ti sia utile! Consiglierei i tuoi preziosi suggerimenti e raccomandazioni su questo.
Grazie! Buona giornata :)