AIDE jinak nazývané jako Advanced Intrusion Detection Environment. AIDE je jedním z nejpopulárnějších nástrojů pro sledování změn serveru v systému založeném na LINUXu. Používá se jako kontrola integrity souborů/složek. Instalace tohoto softwaru je velmi jednoduchá. Toto původně napsali Rami Lehti a Pablo Virolainen v roce 1999. Kontrola systému je inicializována databází. Tato databáze je vytvořena z pravidel regulárních výrazů v konfiguračních souborech. Jakmile je databáze inicializována, může být dále použita k ověření integrity serveru. K tomuto účelu je začleněno několik algoritmů digest. Lze jej také použít ke kontrole nekonzistencí atributů souboru.
HLAVNÍ vlastnosti:
- Podporujte několik algoritmů digest, jako je md5, sha1, rmd160, tiger, crc32, sha256, sha512, whirlpool a několik dalších
- Podpora atributů souboru, jako je typ souboru, oprávnění, Inode, Uid, Gid, název odkazu, velikost, počet bloků, počet odkazů, Mtime, Ctime a Atime
- Podporuje atributy Posix ACL, SELinux, XAttrs a Extended file system
- Podporujte regulární výraz pro selektivní zahrnutí nebo vyloučení souborů/adresářů.
- Podporujte kompresi databáze GZIP.
- Samostatný statický binární soubor pro snadné konfigurace monitorování klient/server.
V tomto článku diskutuji o instalaci a konfiguraci aktuální stabilní verze 0.15.1 AIDE na serveru CentOS 7. Pojďme si projít postupy.
Krok 1:Instalace
K instalaci softwaru AIDE můžeme použít příkaz yum.
[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
Krok 2:Zkontrolujte a ověřte verzi AIDE
Můžeme spustit tento příkaz, abychom potvrdili verzi AIDE a našli konfigurační soubor.
[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"
Krok 3:Vytvořte databázi
Jakmile je instalace AIDE hotová, musíme vytvořit primární databázi, která se inicializuje ze sady pravidel/výrazů v konfiguračních souborech.
[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.
Jakmile je databáze vytvořena, můžete ji přesunout do původní tak, že ji přejmenujete, aby AIDE fungovala.
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
Krok 4:Spusťte kontrolu AIDE
[root@server1 aide]# aide --check
AIDE, version 0.15.1
### All files match AIDE database. Looks okay!
Krok 5:Potvrďte jeho funkčnost a vytvořte aktualizovanou databázi AIDE
Vytvořte binární soubor ručně a zkontrolujte, zda to AIDE detekuje.
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
Přítomnost nového souboru můžeme ověřit z kontrolních zpráv AIDE. Z těchto kontrol můžeme dokonce identifikovat jakékoli změny atributů souboru.
Jakmile tyto změny zkontrolujeme, je vždy lepší aktualizovat databázi pomocníků, aby nebyla znovu hlášena při příští kontrole 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:
---------------------------------------------------
Vždy se doporučuje ponechat starou databázi AIDE nedotčenou a přejmenovat aktualizovanou databázi na denní bázi, abyste měli přehled.
[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
Tyto procesy je poměrně zdlouhavé pokaždé kontrolovat a přejmenovávat databázi, k aktualizaci těchto nastavení můžeme použít některé skripty.
Krok 6:Nastavte cronjob tak, aby automaticky spouštěl kontrolu a hlášení AIDE
Vytvořil jsem cron, který automaticky spustí kontrolu AIDE, aby potvrdil integritu mého serveru a nahlásil mě na denní bázi. Podrobnosti o mém skriptu naleznete níže:
[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
Nainstalujte příkaz mailx nebo poštovní nástroje pro vylepšení zasílání e-mailů, pokud nejsou k dispozici. Podle našeho skriptu se sestava vygeneruje na /tmp s časovým razítkem a bude nám denně zasílána e-mailem. Podívejte se prosím na jeden z mých vzorových formátů zprávy níže:
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******************
Pro pokročilá nastavení můžeme také upravit konfigurační soubor AIDE /etc/aide.conf. Ale výchozí konfigurace se téměř vyplatí a je dobré ji používat.
Takto můžeme využít AIDE k pochopení změn na serveru a identifikaci neoprávněného přístupu k našemu serveru, který může být způsoben buď nějakým škodlivým obsahem, nebo lidským zásahem. Doufám, že tento článek je pro vás užitečný! Doporučil bych vám k tomu vaše cenné návrhy a doporučení.
Děkuji! Hezký den :)