|
|
Jak skonfigurowac Sambe
Jest to linuxowy serwer (daemon), umożliwiający udostępnienie użytkownikom sieci ich kont za pośrednictwem otoczenia sieciowego - dobrze znanego z systemu windows.
Możliwe jest zarówno udostępnienie ludziom ich prywatnych katalogów na serwerze, jak też utworzenie publicznych katalogów, które będą dostępne dla wszystkich.
Samba umożliwia również skonfigurowanie sieciowego serwera wydruku, czym jednak nie będziemy się tu zajmować, gdyż nie ma to raczej zastosowania w sieciach amatorskich.
Samba pełni dodatkowo jeszcze jedną, dość istotną rolę. Otóż w sieci peer to peer, gdzie teoretycznie nie jest potrzebny serwer, w praktyce zawsze musi być jeden komputer pełniący rolę swego rodzaju nadzorcy. Tu zwie się go Master Browserem. Jego zadaniem jest zebranie listy komputerów dostępnych w sieci oraz zasobów na nich udostępnianych, by pozostałe komputery nie musiały tego robić samodzielnie. Zwykle komputer do tej roli wybierany jest w trybie tzw. elekcji (nie śmiejcie się - tak się to nazywa :-).
Serwer samba można łatwo skonfigurować, by zawsze był wybierany na master browsera. Jest to korzystne z tego względu, że w przypadku wyłączenia komputera pełniącego funkcję master browsera potrzeba trochę czasu na to, by wybrać nowego "zarządcę". W tym czasie w otoczeniu sieciowym nie ma nikogo. Serwer z reguły jest włączony na okrągło, więc ten problem wówczas nie występuje.
Konfiguracja
Podstawowy plik konfiguracyjny samby, to /etc/smb.conf. Poniżej opisałem najważniejsze opcje, które mogą w nim wystąpić.
Sekcja [global]
Umieszczone tu parametry odnoszą się do ogólnej konfiguracji serwera.
character set określa stronę kodową używaną przez sambę do kodowania znaków w nazwach plików zapisywanych na serwerze. Dla polskich znaków najlepiej ustawić standard ISO8859-2
Przykład: character set = ISO8859-2
client code page określa stronę kodową używaną do kodowania znaków w nazwach plików w systemach łączących się z sambą. Dla polskich wersji windows należy ustawić stronę 852.
Jeśli chcemy, by możliwe było bezproblemowe zapisywanie na serwerze plików z polskimi znakami w nazwach należy dodatkowo podać parametr character set
Przykład: client code page = 852
deadtime pozwala określić czas nieaktywności (w minutach) po którym połączenie z klientem zostanie zerwane. Jeśli parametr ten zostanie ustawiony na 0, połączenia nie będą zrywane.
Przykład: deadtime = 15
domain logons - opcja ta pozwala włączyć możliwość logowania do domeny. W sieciach amatorskich teoretycznie nie ma to większego zastosowania, jednak umożliwia pozbycie się występującego niekiedy problemu, polegającego na odmowie klientowi dostępu do zasobów pomimo podania poprawnego hasła. Źródło tych kłopotów ewidentnie leży po stronie systemu windows 9x, gdyż w W2k problem wogóle nie występuje. Po włączeniu w windows logowania do domeny problem znika, choć niestety nie jestem w stanie powiedzieć, dlaczego tak jest.
Ale uwaga! Używanie logowania do domeny otwiera przed administratorem serwera możliwość uruchamiania na komputerach użytkowników praktycznie dowolnych programów bez ich zgody. (podczas logowania z serwera jest ściągany i uruchamiany tzw. skrypt logowania - jeśli takowy istnieje - i użytkownik nie ma na to żadnego wpływu).
Przykład: domain logons = yes
domain master z pomocą tego parametru można zadecydować, czy samba ma być kontrolerem domeny. Uwaga: aktualne finalne wersje daemona mogą być tylko kontrolerami domen dla Windows 9x/ME, zalogowanie się do domeny spod Windows 2000 nie jest możliwe.
Przykład: domain master = yes
encrypt passwords - parametr ten może przyjąć wartości yes lub no, powodując włączenie lub wyłączenie kodowania haseł. Odpowiednio do tego ustawienia należy właściwie skonfigurować system windows, który ma się łączyć z serwerem samba (patrz: sieciowe FAQ). Windows od wersji 98 wzywż domyślnie ma włączone kodowanie haseł.
W przypadku przesyłania haseł niekodowanych użytkownik jest autoryzowany na podstawie swojego hasła w systemie Linux. Po załączeniu kodowania konieczne jest utworzenie odrębnego pliku z hasłami specjalnie na użytek samby.
Przykład: encrypt passwords = yes
guest account - określa nazwę użytkownika, który będzie użyty przy dostępie do zasobów, dla których został włączony parametr guest ok. (oczywiście użytkownik o podanej nazwie musi istnieć w systemie). Łącząc te dwa parametry, można udostępniać określone zasoby bez konieczności autoryzacji.
Przykład: guest account = gosc
hosts allow - dzięki temu parametrowi można ograniczyć dostęp do serwera dla wybranych podsieci, bądź wręcz konkretnych komputerów (a raczej numerów IP im przypisanych).
Przykład: hosts allow = 192.168.0. 212.106.15.12
local master - ten parametr należy ustawić na yes, jeśli samba ma brać udział w rywalizacji o "tron" master browsera :-)
Przykład: local master = yes
null passwords pozwala zadecydować, czy samba ma zezwalać na użycie pustych haseł. Parametr ten może być przydatny przy przechodzeniu na kodowane hasła, jeśli nie chce Ci się wpisywać wyszystkim użytkownikom nowych haseł - specjalnie dla samby. Nie trzeba jednak chyba nikomu tłumaczyć, że ze względów bezpieczeństwa nie jest to dobre rozwiązanie.
Przykład: null passwords = no
os level liczba podana jako argument tego parametru określa szanse serwera samby na wygranie elekcji na master browsera. Im większa jest ta liczba, tym szanse są większe. Z doświadczeń wynika, że wartość 60 do 80 powinna być wystarczająca, by zapewnić zwycięstwo w wyborach :-).
Przykład: os level = 80
preferred master - ustawienie tego parametru na yes powoduje wymuszenie elekcji przy starcie samby. Dodatkowo daje jej większe szanse na wygranie tej elekcji.
Przykład: preferred master = yes
wins support - ustawienie yes powoduje, że samba staje się serwerem Wins (jest to taki odpowiednik DNS dla nazw NetBIOS). Może to być przydatne, jeśli nasza sieć jest podzielona na kilka podsieci. Dzięki serwerowi Wins komputery z różnych podsieci będą mogły się widzieć w otoczeniu sieciowym. Oczywiście w takim przypadku konieczne jest odpowiednie skonfigurowanie systemów klienckich, by wiedziały, że mają się łączyć z serwerem wins. Można to zrobić za pośrednictwem serwisu DHCP.
Przykład: wins support = yes
security - najczęściej parametr ten ma wartość user, co pozwala na udostępnianie zasobów zabezpieczonych indywidualnym hasłem dla każdego użytkownika. Nazwy użytkowników muszą być w tym przypadku zgodne z nazwami w systemie Linux.
Podanie w tym miejscu wartości share - umożliwia tworzenie zasobów dostępnych bez hasła. server z kolei pozwala na wskazanie (poprzez parametr password server) serwera, który ma dokonać autoryzacji użytkownika.
Przykład: security = user
smb passwd file określa pełną ścieżkę do pliku zawierającego hasła dla serwera samba. Użycie tego parametru jest konieczne jedynie w przypadku używania kodowanych haseł.
Przykład smb passwd file = /usr/local/samba/smbpasswd
server string pozwala przypisać komputerowi krótki opis, analogicznie jak to można zrobić w windowsach we właściwościach sieci. Opcja ta nie ma większego znaczenia.
Przykład: server string = to jest nasz serwer samba
workgroup ta opcja umożliwia określenie nazwy grupy roboczej, do której ma należeć nasz serwer. Jest to jednocześnie nazwą domeny, jeśli się sambę skonfiguruje jako kontroler domeny.
Przykład: workgroup = grupa
Sekcja [homes]
Sekcja ta zwykle ma postać:
[homes]
comment = Katalog Domowy
browseable = no
writable = yes
create mask = 644
Pozwala to udostępnić przez otoczenie sieciowe foldery użytkowników. Każdy użytkownik będzie mógł zobaczyć oczywiście jedynie swój katalog domowy. W sekcji tej można użyć większość parametrów dostępnych dla sekcji katalogów. (patrz dalej)
Sekcja []
Zapis ten pozwala udostępnić pod nazwą dowolny katalog na serwerze.
Poniżej opisałem najważniejsze opcje mogące wystąpić w tej sekcji. Przykłady zastosowania można znaleźć w domyślnym pliku konfiguracyjnym dostarczanym razem z dystrybucją samby.
admin users umożliwia podanie listy użytkowników, którzy będą mieli nieograniczony dostęp do zasobu (prawa root'a), czyli będą mogli operować na plikach bez uwzględnienia praw dostępu przypisanych plikom.
Przykład: admin users = administrator
available ustawiając ten parametr na no mamy możliwość tymczasowego wyłączenia udostępniania zasobu, bez konieczności kasowania lub "wykomentowywania" całej sekcji konfiguracyjnej
Przykład: available = no>
browseable pozwala zadecydować, czy zasób ma być wyświetlany przy "listowaniu" dostępnych katalogów na serwerze. Jeśli ustawimy ten parametr na no, katalog nie będzie widoczny, jednak dostęp do niego będzie nadal możliwy przez podanie pełnej ścieżki w postaci: \\nazwa serwera\nazwa zasobu.
Przykład: browseable = yes
comment umożliwia dodanie komentarza do zasobu. Praktyczne zastosowanie: żadne ;-)
Przykład: comment = katalog publiczny
create mask pozwala na określenie praw dostępu do pliku z jakimi będą tworzone pliki na serwerze. Prawa podaje się w przyjętej w systemach Linux konwencji w zapisie ósemkowym. Przykładowo ustawienie tego parametru na 666 (czyli rw-rw-rw - bez skojarzeń proszę ;-) umożliwi użytkownikom kasowanie plików stworzonych przez inne osoby mające dostęp do katalogu.
Przykład: create mask = 644
follow symlinks umożliwia włączenie lub wyłączenie możliwości podążania za symbolicznymi odnośnikami (symlinkami).
Przykład: follow symlinks = no
path - bodaj najważniejszy parametr - pozwalający podać lokalizację udostępnianego katalogu.
Przykład: path = /home/public
public - jeśli parametr ten ustawimy na yes, nie będzie wymagane podanie hasła przy dostępie do zasobu.
Przykład: public = no
read only określa, czy katalog ma być tylko do odczytu. Jest to odwrotność parametru writeable.
Przykład: read only = no
valid users pozwala podać użytkowników, którzy będą mieli prawo używać udostępnionego zasobu.
Przykład: valid users = franek dudek zosia
writeable - jest to dokładna odwrotność parametru read only
Przykład: writeable = yes
write list - określa listę użytkowników mających prawa zapisu w danym katalogu, niezależnie od ustawień parametru writeable
Przykład: write list = franek dudek zosia
Kodowanie haseł
Zdecydowanie się na używanie kodowanych haseł wiąże się z rezygnacją z wygodnego dość mechanizmu autoryzacji na podstawie hasła systemowego (tego samego co do poczty lub telneta). Przy hasłach kodowanych konieczne jest utworzenie specjalnego pliku zawierającego hasła - wyłącznie na użytek samby. Można to zrobić używając skryptu znajdującego się w dystrybucji samby, np.:
cat /etc/passwd | mksmbpasswd.sh >/usr/local/samba/smbpasswd
Należy pamiętać, by tak utworzony plik był własnością root-a i posiadał atrybuty 600.
Niestety, w ten sposób nie otrzymamy jeszcze gotowego pliku z hasłami. Ponieważ w Linuxie hasła są kodowane algorytmem nieodwracalnym, nie ma możliwości ich odzyskania z postaci zakodowanej. Dlatego zaglądając do naszego pliku stwierdzimy, że zamiast haseł zawiera on ciąg znaków X. Administrator z konta superusera musi dopiero - korzystając z polecenia smbpasswd - nadać im jakieś sensowne wartości, gdyż bez tego użytkownicy nie będą w stanie sami sobie zmienić tych haseł. Innym rozwiązaniem jest umożliwienie zalogowania się przy użyciu pustych haseł.
Na koniec wypada wspomnieć jeszcze, że aby jakiekolwiek zmiany wprowadzone w pliku konfiguracyjnym samby odniosły skutek, konieczne jest ponowne uruchomienie naszego daemona.
Najprościej zrobić to wydając polecenie /etc/rc.d/init.d/smb restart
|
|