OpenWrt - Samba
Udostępnianie zasobów dyskowych w sieci lokalnejOstatnia zmiana: 2013-02-20 17:35
1. Samba
1.1. Instalacja
1.2. Konfiguracja
1.3. Nowy użytkownik
1.4. Polskie znaki
1.5. Uruchomienie
2. Wolne miejsce na dysku (opcjonalnie)
3. Uwagi dla użytkowników Windows Vista i 7 (opcjonalnie)
4. Zakończenie
Samba jest programem umożliwiającym dzielenie się zasobami dyskowymi (m.in.) w sieci lokalnej - czyli popularne "Otoczenie sieciowe" w systemach Windows. Współdzielić można dowolny katalog widoczny w systemie, nie jest więc konieczne posiadanie nośnika USB.
Poniższe rozwiązanie jest sprawdzone dla OpenWrt Attitude Adjustment.
Założenie - w systemie jest katalog który chcemy udostępnić - czy to katalog systemowy, czy podmontowany dysk. W tym przykładzie będzie udostępniony katalog /mnt/sda1. System plików na nośniku (ext2/ext3/vfat/ntfs) nie ma znaczenia, byle by ten katalog był dostępny normalnie dla rutera. Komputery podłączone do samby nie widzą systemu plików dysku tylko sieciowy system plików!
Samba
W OpenWrt Attitude Adjustment występuje samba w wersji 3.6.5 (w chwili pisana tego opisu). Jest to jedna z najnowszych wersji tego pakietu, ale na potrzeby OpenWrt została ona pozbawiona niektórych elementów (kerberos, Active Directory, printserwer) i została ograniczona tylko do mechanizmów udostępniania plików.Instalacja
# opkg update
# opkg install samba36-server
Konfiguracja
Odbywa się poprzez edycję pliku /etc/config/samba. Poniżej zaprezentowano konfigurację udostępniającą dwa katalogi: jeden ogólnodostępny o nazwie publiczny udostępniający dane z katalogu /mnt/sda1/publiczny, drugi wymagający podania loginu i hasła (użytkownik malgosia w tym przykładzie) udostępniający katalog /mnt/sda1/prywatny pod nazwą prywatny.
config samba
option name openwrt
option workgroup WORKGROUP
option description 'OpenWrt serwer'
option charset 'UTF-8'
option 'homes' '0'
config sambashare
option name publiczny
option path /mnt/sda1/publiczny
option read_only no
option create_mask 0700
option dir_mask 0700
option guest_ok yes
config sambashare
option name prywatny
option path /mnt/sda1/prywatny
option read_only no
option create_mask 0700
option dir_mask 0700
option guest_ok no
option users malgosia
Katalogi /mnt/sda1/publiczny i /mnt/sda1/prywatny muszą istnieć w systemie. Użytkownik (w tym przypadku malgosia) musi mieć prawa zapisu/odczytu do danego katalogu, więc należy je ustawić np. przez:
# chmod 777 /mnt/sda1
# chmod 777 /mnt/sda1/publiczny
# chmod 777 /mnt/sda1/prywatny
Nowy użytkownik
Proces zakładania nowego użytkownika opisane jest w osobnym dokumencie. Dodatkowo należy utworzyć hasło tego użytkownika dla zasobów samby korzystając z innego programu: smbpasswd. Podsumowując: aby utworzyć użytkownika o nazwie malgosia należy wykonać to następującym poleceniami:
# echo "malgosia:*:1000:65534:malgosia:/tmp:/bin/false" >> /etc/passwd
# echo "malgosia:*:0:0:99999:7:::" >> /etc/shadow
# touch /etc/samba/smbpasswd
# smbpasswd -a malgosia
Nazwę użytkownika (malgosia) i hasło należy oczywiście zmienić stosownie do wymagań; jeżeli mamy kilku użytkowników należy liczbę 1000 zwiększać kolejno tak, aby przy każdym była unikalna wartość. Jeżeli podajemy inny numer grupy, należy także pamiętać o jej utworzeniu.
UWAGA2: użytkownik malgosia musi mieć prawo odczytu (i ew zapisu) do zasobu na dysku (/hdd/prywatny w tym przypadku). Należy się więc posłużyć poleceniem wspomnianym już poleceniem chmod
# chmod 777 /mnt/sda1/prywatny
Polskie znaki
Wspomniana konfiguracja obsługuje już polskie znaki. Może być koniecznie odpowiednie zamontowanie nośnika, np. w przypadku stosowania nośnika z fat musi on być zamontowany z opcją utf8, czyli np.:
# mount -t vfat -o utf8 /dev/sda1 /mnt/sda1
Uruchomienie
Zostaje tylko włączenie samby
# /etc/init.d/samba enable
# /etc/init.d/samba start
Wolne miejsce na dysku (opcjonalnie)
W przypadku systemów Windows samba może niewłaściwie podawać ilość wolnego miejsca (podaje ilość wolnego flash a nie extroota). Rozwiązanie problemu: http://eko.one.pl/forum/viewtopic.php?pid=19831 .Uwagi dla użytkowników Windows Vista i 7 (opcjonalnie)
W starszych wersjach samby, Windows Vista może mieć problem z dostaniem się do tak przygotowanych zasobów. Wynikało to ze starej wersji samby która nie obsługuje uwierzytelniania NTLMv2, które z kolei jest domyślnym i jednym w Vista. Nowsza nie powinna mieć tego problemu. Jeżeli jednak coś takiego wystąpi, należy to zmienić:Windows Vista Business, Ultimate
- uruchom secpol.msc
- wybierz "Local Policies > Security Options"
- otwórz "Network security: LAN Manager authentication level"
- zaznacz "Send LM & NTLM - use NTLMv2 security if negotiated" zamiast "Send NTLMv2 response only"
Windows Vista Home, Premium
- uruchom regedit
- znajdź klucz "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\"
- ustaw "LMCompatibilityLevel" na "1" co oznacza "używaj NTLMv2 jeżeli jest dostępne lub starszej wersji jeżeli nie"
Patrz także: forum eko.one.pl
Zakończenie
Jeżeli nastąpi zmiana w loginie/haśle na sambie, trzeba zresetować pamięć haseł w Windows (XP, Vista) - w przeciwnym wypadku można otrzymać komunikat "Nie dostępny" lub podobne. Aby zresetować pamięć haseł należy wykonać polecenie "net use * /del /yes"Samba jest wygodnym (w przypadku Windowsa) sposobem wymiany plików pomiędzy urządzeniami. Jednakże jest bardzo słabo wydajna (dla przypomnienia - procesory stosowane w tanich ruterach mają częstotliwość procesora ok 200MHz!) i może to być wąskim gardłem. Szybszym rozwiązaniem jest użycie ftp.