Samba VFS Audit je modul, ktorý umožňuje sledovať aktivity užívateľov na súboroch zdieľaných prostredníctvom Linux Samba servera. Štandardný samba log neobsahuje žiadne podstatné informácie v tomto smere a aby sme získali prístup k údajom o tom kto a ako so súbormi manipuloval je potrebné použiť tzv. VFS modul. A možno sú aj iné možnosti, neviem.
O túto voľbu som sa začal zaujímať v dobe keď na mojom pracovisku došlo k výmazu „Smetiska„. Voľne zdieľaného, sieťového priečinku, ktorý je dostupný v našej organizácií z každého firemného počítača a slúži na rýchle zdieľanie súborov medzi ostatnými užívateľmi a počítačmi. Ako doba pokročila zo „Smetiska“ sa stalo miesto kde si veľa ľudí, uložilo na dlhodobé účeli veľa súborov. Bolo toho rádovo niekoľko stoviek GB.
Jedného pekného dňa však všetky dáta z priečinka zmizli. Keďže disk na serveri nevykazoval žiadne chyby, javil sa ako najpravdepodobnejší dôvod epileptický záchvat niektorého nášho kolegu v dobe keď práve pracoval s týmito súbormi v tomto priečinku. Bohužiaľ, nik sa nepriznal. A tak mi neostávalo nič iné ako zabezpečiť monitoring tohto priečinku aby som do budúcna vedel určiť vinníka.
vfs audit — uloží zvolené operácie na súbore do systémoveho logu.
Na obrázku je možné vidieť krátku ukážku VFS auditu.
Poradie údajov tak ako idú za sebou:
- Čas |
- Meno užívateľa |
- IP adresa pristupujúceho počítača |
- NetBios meno prist. počítača |
- Zdieľaný priečinok |
- Akcia prevádzaná na súbore |
- Výsledok a
- Cesta a názov k súboru.
Potrebné zmeny v /etc/samba/smb.conf
full_audit:prefix = %u|%I|%m|%S full_audit:success = mkdir rename unlink rmdir pwrite full_audit:failure = none full_audit:facility = local5 full_audit:priority = notice
full_audit:prefix = %u|%I|%m|%S – určuje tvar a typ informácií v logu. Kde:
- %u – Meno užívateľa
- %I – IP adresa pristupujúcej mašiny
- %m – Meno mašiny
- %S – Meno zdieľaného priečinka
full_audit:success – ktoré operácie na súbore chceme zalogovať.
full_audit:failure – v prípade nezdaru
full_audit:facility a full_audit:priority – Kategória a priorita pre *syslog-y. Viď,. nižšie.
Poslednou nutnou voľbou je vfs object = full_audit, ktorý sa pridáva ku každému zdieľanému priečinku a ktorým určujeme že práve tam chceme vykonávať audit. Teda napr.:
[smetisko] comment = Firemny bordel browseable = yes read only = no create mask = 0766 directory mask = 0766 path = /home/samba/smetisko guest ok = yes force group = www-data force user = www-data veto files = /copy.exe/host.exe/autorun.inf/RECYCLER/ vfs object = full_audit
V tomto momente máme plne funkčný audit, ktorý však posiela hlášky do syslogu a je teda ešte nutné tieto odchytiť a uložiť do samostatného súboru.
Konfigurácia na rsyslogd (Debian 8, Ubuntu)
Keďže všetky hlášky idú do syslogu, je potrebné ich oddeliť do samostatného súboru kvôli lepšej prehľadnosti. Postačí pridanie jednoduchého pravidla:
echo "local5.notice* /var/log/samba-audit.log" >>/etc/rsyslog.d/99-samba-audit.conf
Netreba zabudnúť reštartovať rsyslogd.
Okrem toho, logovací súbor naberá časom na objeme, takže by ho bolo dobré asi aj rotovať.
Vytvorte/otvorte súbor /etc/logrotate.d/samba a pridajte doň nasledujúce riadky:
/var/log/samba-audit.log { weekly missingok rotate 7 postrotate reload rsyslog > /dev/null 2>&1 || true endscript compress notifempty }