| Siec TCP/IP || Otoczenie Sieciowe || Poczta || Usnet || FTP || Konto Shellowe || Czat || IRC || Serwer PROXY |

Otoczenie sieciowe - Sieć SMB

utworzono: 10/11/2002 :: modyfikacja: 01/05/2008
autor: Marcin Moczkowski :: glappo (at) banita (dot) pl

Zarządzanie zasobami udostępnionymi - Samba/Unix

W systemach Samba/Unix podstawowym programem do zarządzania udostępnieniami jest smbstatus. Wszystkie inne są praktycznie tylko graficznymi nakładkami na ten standardowy program z pakietu Samba. Dodatkowo pakiet Samba umożliwia logowanie zdarzeń do dzienników lub przekazanie tego zadania do systemowego sysloga.

smbstatus

Wraz z pakietem Samba jest dostarczany program do kontroli udostępnień z poziomu konsoli, wywołujemy go poleceniem: smbstatus. W standardowym wywołaniu przykładowy wydruk z programu wygląda w tym stylu:

INFO: Debug class all level = 1 (pid 32710 from pid 32710)

Samba version 2.2.6
Service uid gid pid machine
----------------------------------------------
Filmy glappo users 32212 glappo (192.168.1.20) Sun Jun 23 02:26:08 2002
Mp3 archiwum warez 15827 gs500e (192.168.1.22) Sun Jun 23 00:04:36 2002
Programy archiwum warez 15827 gs500e (192.168.1.22) Sun Jun 23 01:28:37 2002
Programy glappo users 32212 glappo (192.168.1.20) Sun Jun 23 02:26:04 2002

Locked files:
Pid DenyMode Access R/W Oplock Name
--------------------------------------------------------------
32212 DENY_NONE 0x1 RDONLY EXCLUSIVE+BATCH /home/archiwum/1/Programy/Biuro/Open Office 1.0 un PL/f0_059 Sun Jun 23 02:27:12 2002
32212 DENY_NONE 0x1 RDONLY EXCLUSIVE+BATCH /home/archiwum/1/Programy/Biuro/Open Office 1.0 un PL/setup.inf Sun Jun 23 02:27:13 2002

Jeśli chcielibyśmy wyłączyć rejestrowanie połączeń w pliku statusu, a przez to smbstatus nie mógłby pokazywać aktualnych danych wystarczy w pliku konfiguracyjnym samby w sekcji [global] wpisać:

status = no

Domyślnie ta opcja jest włączona, czyli są rejestrowane aktualne połączenia.

net status

Wraz z Samba 3.0 doszła nam rodzina komend net znanych z systemów Windows. Za pomocą net status można sprawdzić m.in. stan naszego serwera Samby. Dostępne są dwie możliwości użycia net status:

  • net status sessions - Pokazuje listę otwartych sesji, przykładowy wydruk z programu wygląda w tym stylu:

    PID Username Group Machine
    -------------------------------------------------------------------

    26018 glappo users glappo (192.168.1.20)

  • net status shares  - Pokazuje listę otwartych udostępnień, przykładowy wydruk z programu wygląda w tym stylu:

    Service pid machine Connected at
    -------------------------------------------------------
    Gry 9412 jardo Sat Sep 18 14:56:26 2004
    Programy 24202 seal Sat Sep 18 21:31:31 2004

lsof

Komenda lsof wyświetla listę otwartych plików w całym systemie lokalnym Unix. Ową komendę można traktować przy serwerze plików jako rozbudowane uzupełnienie smbstatus. lsof jak każda porządna komenda systemu Unix posiada manual gdzie są opisane dokładnie wszystkie opcje komendy, a jest ich naprawdę wiele. Poniżej przedstawiono przykładowy wynik komendy lsof -u glappo wyświetlającej listę wszystkich otwartych plików przez użytkownika glappo.

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bash 14836 glappo cwd DIR 3,3 12288 32705 /home/glappo
bash 14836 glappo rtd DIR 3,1 1024 2 /
bash 14836 glappo txt REG 3,1 541096 36724 /bin/bash
bash 14836 glappo mem REG 3,1 89547 61209 /lib/ld-2.2.5.so
bash 14836 glappo mem REG 3,1 11832 61274 /lib/libtermcap.so.2.0.8
bash 14836 glappo mem REG 3,1 12102 61236 /lib/libdl-2.2.5.so
bash 14836 glappo mem REG 3,1 45415 61281 /lib/libnss_files-2.2.5.so
bash 14836 glappo mem REG 3,1 46117 61297 /lib/libnss_nisplus-2.2.5.so
bash 14836 glappo mem REG 3,1 89424 61241 /lib/libnsl-2.2.5.so
bash 14836 glappo mem REG 3,2 173416 224672 /usr/lib/locale/pl_PL/LC_CTYPE
bash 14836 glappo mem REG 3,1 1402035 73481 /lib/i686/libc-2.2.5.so
bash 14836 glappo 0u CHR 136,6 8 /dev/pts/6
bash 14836 glappo 1u CHR 136,6 8 /dev/pts/6
bash 14836 glappo 2u CHR 136,6 8 /dev/pts/6
bash 14836 glappo 255u CHR 136,6 8 /dev/pts/6

 

QtSmbstatus

QtSmbstatus jest również graficzna nakładką na standardowy smbstatus. Jednak tym co odróżnia ten program od wielu podobnych jest to że potrafi on zarządzać czyli wyświetlać dane z smbstatus ze zdalnych komputerów. Program składa się z dwu części, pierwsza to tzw. serwer qtsmbstatusd instalowany na komputerze którego połączenia SB chcemy zdalnie (bądź lokalnie) monitorować. Drugi składnik to klient qtsmbstatus instalowany na komputerze z którego będziemy monitorować zdalne komputery w sieci. Oczywiście nic nie stoi na przeszkodzie, żeby zainstalować na jednym komputerze zarówno klienta jak i serwer np. w celu monitorowania lokalnej maszyny. Cała komunikacja poprzez siec miedzy klientem a serwerem odbywa się poprzez bezpieczny szyfrowany poprzez SSL kanał. Standardowo serwer qtsmbstatusd działa na porcie 4443.

Za pomocą programu QtSmbstatus możesz:

  • Monitorować połączenia czyli jaki użytkownik jaki plik otworzył z jakimi prawami i blokadami.

  • Rozłączać użytkownik z serwera Samby.

  • Wysłać wiadomości WinPopup do jednego wybranego lub wszystkich użytkowników.

Program QtSmbstatus jest ciągle rozwijany. Strona domowa projektu QtSmbstatus - http://qtsmbstatus.free.fr/

SambaLink-Q

SambaLink-Q jest wszechstronnym programem wspomagającym dla pakietu Samba. Posiada on m.in. zakładkę "Samba Status" w której w postaci graficznej jest wyświetlony monit programu smbstatus. Jako że SambaLink-Q posiada opcje odpowiedzialne za konfigurowanie Samby jest on tez opisany w dziale Programy wspomagające udostępnianie.

Program SambaLink-Q nie jest rozwijany od 2002 roku. SambaLink-Q można go pobrać z tego adresu - http://www.spanware.com/older.html.

SambaSentinel

Program SambaSentinel jest wielowątkową, stworzonym dzięki bibliotece GTK+, nakładka na standardowy smbstatus z pakietu Samba. Stąd dane pokazywane w tym programie są praktycznie takie same jak w smbstatus z tym że przedstawiane poprzez graficzny interfejs. Możesz wygodnie m.in. "zabijać" dane procesy udostępnień oraz użyć funkcji przeglądania poprzez Jags, który wtedy musi być zainstalowany w systemie.

Program SambaSentinel nie jest już rozwijany, a jego strona domowa znikneła w otchłani Internetu, kiedyś znajdowała się pod tym adresem - http://kling.mine.nu/kling/sambasentinel.htm

gsmbstatus

Gsmbstatus jest również graficzna nakładką na standardowy smbstatus. Program był integrowany często ze środowiskiem Gnome i KDE (jako ksmbstatus).

Program Gsmbstatus nie jest rozwijany od 1998 roku, a jego strona domowa znikneła w otchłani Internetu, kiedyś znajdowała się pod tym adresem - http://www.connection-net.de/linux/mg/ 

Dzienniki Zdarzeń - Logi Samby

Pakiet Samba jak każdy dobry uniksowy program pozwala na logowanie do dzienników zdarzeń, praktycznie wszystkiego. Generalnie Samba sama może tworzyć logi lub przekazać to zadanie do systemowego sysloga. Odpowiadają za to różne opcje konfiguracyjne które wpisujemy w sekcji [global] pliku smb.conf. Opcje te wraz z opisami z dokumentacji Samby do pliku smb.conf są przedstawione poniżej:

log file 

Ta opcja pozwala ci nadrzędnie (w stosunku do nazwy domyślnej, przyp. tłum.) ustawić nazwę pliku logu Samba (znanego również jako plik debug). Opcja ta przyjmuje standardowe podstawienia, pozwalając ci na posiadanie odrębnych plików logu dla każdego użytkownika lub maszyny.

Przykład: log file = /usr/local/samba/var/log.%m

log level (debug level) 

Wartość tego parametru (liczba całkowita) pozwala określić poziom debugowania w pliku smb.conf . Daje to większą elastyczność w konfigurowaniu systemu. Wartość domyślna będzie poziomem podanym w linii poleceń lub poziomem zerowym, jeśli nic nie zostało określone.

Przykład: log level = 3

max log size 

Ta opcja (liczba całkowita w kilobajtach) określa maksymalny rozmiar do jakiego może rozrosnąć się plik logu. Samba periodycznie sprawdza ten rozmiar i jeśli jest przekroczony, zmieni nazwę pliku dodając rozszerzenie .old. Rozmiar równy 0 oznacza brak limitu.

Domyślnie: max log size = 5000
Przykład: max log size = 1000

syslog

Ten parametr odwzorowuje sposób w jaki komunikaty debugowe Samby są rejestrowane w systemowych poziomach rejestrowania syslog'u. Zerowy poziom debugowania w Sambie jest mapowany na LOG_ERR, poziom pierwszy na LOG_WARNING, poziom drugi na LOG_NOTICE, poziom trzeci na LOG_INFO. Wszystkie wyższe poziomy są mapowane na LOG_DEBUG. Ten parametr ustawia próg dla wysyłania komunikatów do syslog'u. Tylko te z poziomem debugowania mniejszym niż jego wartość będą wysłane do syslog'u.

Domyślnie: syslog = 1

syslog only 

Jeśli ten parametr jest ustawiony, wtedy komunikaty debugowe Samby są rejestrowane tylko w systemowym syslog'u, a nie w plikach logu.

Domyślnie: syslog only = no

debug timestamp (timestamp logs)
Komunikaty logu Samba 2.2 są domyślnie oznaczane czasem. Jeśli działasz na wysokim debug level (poziomie debugowania, przyp. tłum.), te znaczniki mogą być rozpraszające. Ten parametr boolowski pozwala wyłączyć oznaczanie czasowe.

Domyślnie: debug timestamp = yes

debug uid

Samba jest czasem uruchamiana jako root, a czasem jako podłączony użytkownik. Ten parametr boolowski wstawia bieżący euid, egid, uid, i gid do oznaczeń czasowych nagłówków komunikatów w pliku logu, jeśli jest włączony. Zauważ, że parametr debug timestamp musi być włączony, aby ten parametr odniósł efekt.

Domyślnie: debug uid = no

utmp
 

Ten parametr istnieje w Samba 3.0 gdy jest ona skompilowana z opcją --with-utmp. Gdy jest ta opcja ustawiona na yes są załączane rekordy utmp i utmpx znane w systemach Unix gdy generowane jest połączenie użytkownika Samby do serwera. Pozwala to następnie oglądać przy pomocy standardowej komendy Unix last listę ostatnio zalogowanych użytkowników na której będą tez obecni użytkownicy Samby. W dużych instalacjach włączenie tej opcji może spowodować spadek wydajności.

Domyślnie: utmp = no

Moduły VFS

W pakiecie Samba od wersji 2.2 pojawiły się moduły VFS (Virtual File System), a na dobre się zadomowiły w Sambie 3.0. Moduły VFS rozszerzają funkcjonalność Samby o różne cechy i co jest ważne wiele z nich jest standardowo obecnych w pakiecie. do testowania modułów VFS służy komenda vfstest. Konfiguracja danego modułu VFS odbywa się poprzez wpis do smb.conf w definicja danego udziału:

[audit]
comment = Audited /data directory
path = /data
vfs objects = audit recycle
writeable = yes
browseable = yes

Czyli jak widać jest to właściwie normalny udział udostępniony w Sambie z dodaną opcją "vfs objects", w której wymieniamy jakich modułów VFS użyjemy w tym udziale. Oczywiście owe moduły musza znajdować się w twoim systemie, np. w System V (np. Linux Redhat/Fedora) znajdują się one w katalogu /usr/lib/samba/vfs. Bardziej skomplikowany przykład gdy d modułów VFS podajemy jakieś paramery:

[test]
comment = VFS TEST
path = /data
writeable = yes
browseable = yes
vfs objects = example:example1 example example:test
example1: parameter = 1
example: parameter = 5
test: parameter = 7

Poniżej masz listę standardowych modułów VFS z Samby 3.0 służących do zarządzania i audytowania Samby, a właściwie jest udostępnionych zasobów. Inne moduły VFS są omówione w dziale Udostępnianie plików i drukarek - opis dla Samba/Unix.

Lista modułów VFS do audytu

audit

Prosty moduł VFS (standardowo w Sambie 3.0) służący do audytowania dostępu i logowania tych danych do syslog. Moduł loguje m.in. następujące operacje: udostępnienie, połączenie/rozłączenie, otwieranie/tworzenie i usuwanie zarówno katalogów jak i plików czyli operacje: connect, disconnect, opendir, mkdir, rmdir, open, close, rename, unlink, chmod, fchmod, chmod_acl, fchmod_acl.
 

Konfiguracja Samby aby zdarzenia modułu vfs audit, na wszystkich udostępnieniach były logowane używając LOCAL1 i priorytetu NOTICE:

[global]
vfs objects = audit
audit:facility = LOCAL1
audit:priority = NOTICE  

Dokumentacja Samby modułu VFS audit - http://us1.samba.org/samba/docs/man/manpages-3/vfs_audit.8.html

extd_audit

Moduł identyczny z audit (standardowo w Sambie 3.0) w opcjach i działaniu ale potrafiący wysłać informacje zarówno do syslog jak i logów Samby, gdzie zależne od poziomu będą podawane odpowiednie szczegóły. Tak wiec poniższe operacje na plikach i katalogach będą logowane w poszczególnych poziomach:

  • poziom 0  - Tworzenie, Kasowane
  • poziom 1  - Tworzenie, Kasowane, Zmiana nazwy, Zmiana uprawnień
  • poziom 2  - Tworzenie, Kasowane, Zmiana nazwy, Zmiana uprawnień, Otwieranie, zamykanie

Dokumentacja Samby modułu VFS extd_audit - http://us1.samba.org/samba/docs/man/manpages-3/vfs_extd_audit.8.html

full_audit

Moduł obecny od  Sambie 3.0.5 potrafiący wysłać informacje do syslog, gdzie zależne będą podawane odpowiednie, skonfigurowane przez nas operacje, a nie je wszystkie. W porównaniu z extd_audit pozwala uzyskać bardziej przejrzyste logowanie i potrafi również logować większą ilość zdarzeń.

Owe zdarzenia to:
aio_cancel ,aio_error ,aio_fsync ,aio_read ,aio_return ,aio_suspend
,aio_write ,chdir ,chflags ,chmod ,chmod_acl ,chown ,close ,closedir ,connect ,disconnect
,disk_free ,fchmod ,fchmod_acl ,fchown ,fget_nt_acl ,fgetxattr ,flistxattr ,fremovexattr
,fset_nt_acl ,fsetxattr ,fstat ,fsync ,ftruncate ,get_nt_acl ,get_quota ,get_shadow_copy_data
,getlock ,getwd ,getxattr ,kernel_flock ,lgetxattr ,link ,linux_setlease ,listxattr
,llistxattr ,lock ,lremovexattr ,lseek ,lsetxattr ,lstat ,mkdir ,mknod ,open ,opendir
,pread ,pwrite ,read ,readdir ,readlink ,realpath ,removexattr ,rename ,rewinddir
,rmdir ,seekdir ,sendfile ,set_nt_acl ,set_quota ,setxattr ,stat ,statvfs ,symlink
,sys_acl_add_perm ,sys_acl_clear_perms ,sys_acl_create_entry ,sys_acl_delete_def_file
,sys_acl_free_acl ,sys_acl_free_qualifier ,sys_acl_free_text ,sys_acl_get_entry
,sys_acl_get_fd ,sys_acl_get_file ,sys_acl_get_perm ,sys_acl_get_permset ,sys_acl_get_qualifier
,sys_acl_get_tag_type ,sys_acl_init ,sys_acl_set_fd ,sys_acl_set_file ,sys_acl_set_permset
,sys_acl_set_qualifier ,sys_acl_set_tag_type ,sys_acl_to_text ,sys_acl_valid ,telldir
,unlink ,utime ,write

Przykład użycia a właściwie konfiguracji:

[tmp]
path = /tmp
vfs objects = full_audit
full_audit:prefix = %u|%I
full_audit:success = open opendir
full_audit:failure = all

Spowoduje to zalogowanie do syslog przykładowych wpisów:

smbd_audit: nobody|192.168.234.1|opendir|ok|.
smbd_audit: nobody|192.168.234.1|open|fail (File not found)|r|x.txt

Gdzie "nobody" to użytkownik Unix na którego prawach odbyło się połączenie, a 192.168.234.1 to adres IP klienta. Jak widać zostały użyte opcje:

  • prefix -  Możesz ustawić tutaj prefiks z jakim będą się pojawiać wpisy w syslogu, warto korzystać z makr Samby szczególnie typu %u (użytkownik), %I (adres IP klienta).
  • success - Lista operacji VFS, których sukcesy będą logowane, standardowo jest pusta, możesz ustawić np. "all" lub tylko poszczególna operacji typu open lub read.
  • failure- Lista operacji VFS, które zakończyły się niepowodzeniem i przez to będą logowane, standardowo jest logowane wszystko czyli. "all" ale możesz ustawić tylko poszczególna operacje typu open lub read.

Dokumentacja Samby modułu VFS full_audit - http://us1.samba.org/samba/docs/man/manpages-3/vfs_full_audit.8.html

fake_perms

Moduł VFS (standardowo w Sambie 3.0) służący do monitorowania udostępniania [Profiles] czyli przechowującego profile mobilne. Zadaniem tego modułu jest sprawdzanie czy pliki i katalogi profili mobilnych są ustawione tylko do odczytu. Gdy tak nie jest dany klient jest o tym fakcie informowany. Pozwala to zapobiec sytuacjom gdy dany profil zostanie nadpisany gdy klient się wyloguje lub wyłączy.

Dokumentacja Samby modułu VFS fake_perms - http://us1.samba.org/samba/docs/man/manpages-3/vfs_fake_perms.8.html  


Drukuj Dokument