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

|