Monday, January 9, 2012

Samba - monitorowanie dostępu do plików

Gdy udostępniasz ważne dane przez dysk/udział sieciowy przydatnym może okazać się monitorowanie operacji wykonywanych na nich. Mówiąc krótko, chodzi o wyjaśnienie rzekomych okoliczności, w których pliki "zniknęły". Oczywiście odzyskasz je z kopii ale niesmak niewyjaśnionych okoliczność pozostanie. Dlatego zdecydowałem się na logowanie dostępu do zasobów sieciowych Samby.
Do tego celu należy użyć modułu vfs_full_audit. Przedstawię przykładową konfigurację, które loguje udane otwarcie, usunięcie oraz tworzenie katalogów. Operacji jest bardzo dużo, pełna lista dostępna w opisie modułu.
Wpis dla konkretnego udziału:
[...]
   ...

   vfs objects = full_audit recycle
   full_audit:prefix = %I|%m|%u
   full_audit:success = open unlink rmdir write rename
   full_audit:failure = none
   full_audit:facility = LOCAL7
   full_audit:priority = NOTICE

Moduł nie loguje operacji nie udanych, oczywiście można to zmienić. Dwie ostatnie opcji mówią z jakim priorytetem ma traktować serwer logów te wpisy. Działania na plikach zapisywane są w /var/log/syslog, przynajmniej w systemie Debian. Przykładowy wpis wygląda mniej więcej tak:
Jan  9 08:38:20 prv smbd[25400]: 192.168.1.2|admin-laptop|admin|open|ok|r|gdata/doc/plan0911/SP0911x13+.xlsx
Jan  9 08:38:20 prv smbd[25400]: 192.168.1.2|admin-laptop|admin|open|ok|w|gdata/doc/plan0911/SP0911x13+.xlsx
Jan  9 08:44:10 prv smbd[25400]: 192.168.1.2|admin-laptop|admin|unlink|ok|gdata/doc/plan0911/~$SP0911x13+.xlsx

Tu widzimy jakie operacje zostały wykonane na pliku, został otwarty i usunięto (unlink) plik tymczasowy, oczywiście został on wcześniej utworzony i to również zostało odnotowane. Z bardziej przydatnych operacji należałoby wymienić write (zapis), i rename (zmiana nazwy) na wypadek jakby zagubiony katalog po prostu uzyskał inną nazwę przez innego użytkownika.
W opcji full_audit:prefix wymieniłem jakie dane identyfikujące wykonawcę tych operacji chcę znać, pełną listę możliwych informacji można znaleźć w smb.conf (5) - sekcja "VARIABLE SUBSTITUTIONS"

Ponadto dla wpisu vfs objects oprócz wartości  full_audit wpisałem również recycle. Moduł recycle dodaje dodatkową funkcjonalność, dla każdego udziału, który go zawiera tworzy katalog .recycle i przenosi tam pliki usuwane. Dzięki temu możemy odzyskać pliki usunięte w ciągu tego samego dnia, których nie ma jeszcze w kopii przyrostowej.
Oczywiście należy pamiętać, że nie wszystkie udziały mogą być warte przechowywania usuniętych plików (kopie zapasowe również będą je zawierać i zajmować więcej miejsca) oraz logowania wszystkich zdarzeń. Mi na razie wystarczą te trze, czyli dostęp do pliku (otworzył, usuną) oraz tworzenie katalogów.

No comments:

Post a Comment