O wszystkim, co mnie interesuje - blog wielotematyczny.

13.02.2020

Router z Tomato jako mini NAS

Router z Tomato jako mini NAS
Założeniem routera w sieci domowej lokalnej nie jest tworzenie rasowych dysków sieciowych. Jednak posiadając router oparty na dystrybucji Tomato, można wzbogacić go o drobną, ale czasem przydatną funkcjonalność, jaką jest podręczny dysk sieciowy.

Router Tenda N60, oparty na samodzielnie zainstalowanej minidystrybucji Linuxa Tomato 1.28 posiada możliwość udostępniania dysków sieciowych w oparciu o serwer Samba. W wypadku prostego udostępniania nawet kilku zasobów, posiadamy ograniczenie - panel zarządzania routera daje możliwość utworzenia pojednczego użytkownika z hasłem, przez co nie ma możliwości elastycznej konfiguracji uprawnień dla różnych zasobów. Oczywiście, jeżeli zależy nam jedynie na prostym udostępnieniu, to opcja taka wydaje się wystarczająca. Jednak, jeżeli zależy nam na wielu poziomach uprawnień i dostępów, to ograniczenie komplikuje bardziej złożone rozwiązania. Jednak słowo "komplikuje" nie oznacza "nie da się" ;)

 

Ograniczenie liczby użytkowników do jednego nie wynika z samego serwera Samba, a jedynie z założeń twórców panelu dystrybucji Tomato w wersji 1.28. Zatem wniosek nasuwa się sam - trzeba obejść ograniczenia panelu.

Oczywiście można pokusić się o wybór nowszego/alternatywnego oprogramowania i zainstalowania go na routerze, jednak Tenda N60 posiada dość ograniczone zasoby pamięciowe, ponadto obecna konfiguracja praktycznie w 98% spełniała moje oczekiwania, więc nie chciałem robić "rewolucji na routerze".

 

Poniżej przedstawiam opis, w jaki sposób ominąłem te ograniczenia.

 

1) Zastosowanie.

 

Przedstawione przeze mnie rozwiązanie dedykowane jest dla sieci (np. domowej), gdzie "bieganie z pendrivem" między komputerami byłoby dość uciążliwe, a zamieszczenie w pamięci smartfona np. plików muzycznych wymagałoby fizycznego podłączania telefonu do komputera, a przecież można tego dokonać za pomocą połączenia WiFi bez udziału komputera.

 

Powyższe rozwiązanie nie powinno stanowić alternatywy dla "rasowego" NAS-a. Przede wszystkim dlatego, że nośnikiem będzie pendrive, który w przeciwieństwie do dysków nie jest dedykowany do częstych operacji przesyłania danych, a zwłaszcza zapisu. Do przechowywania danych produkcyjnych/strategicznych zalecam używanie dedykowanego NAS-a, najlepiej z RAID-em 1.

 

2) Założenia.


Załóżmy, że posiadamy już zainstalowany dysk USB (np. pendrive), widoczny jako /dev/sda1 i "zamountowany" jako katalog /opt, gdzie znajdują się zasoby i zainstalowane pakiety dodatkowe. Na potrzeby naszego "nas-a" został utworzony katalog /opt/nas, gdzie znajdują się zasoby do udostępnienia:

 

/opt/nas/public - ogólnodostępny zasób z pełnym prawem zapisu dla użytkowników - dostęp do tego folderu będzie nieograniczony i nie będzie wymagał logowania

 

/opt/nas/praca - zasoby dostępne tylko dla użytkownika posługującego się loginem: praca i hasłem: praca32123

 

/opt/nas/admin - zasoby dostępne tylko dla użytkownika posługującego się loginem: admin i hasłem: adad123min

 

3) Konfiguracja.

 

a) Logujemy się do panelu zarządzania i przechodzimy do zakładki: "USB and NAS" > "File Sharing"

 

Naszym oczom powinien pojawić się panel konfiguracyjny: "Samba File Sharing". Teraz wybieramy następujące opcje:

 

- Enable File Sharing: "Yes, no Authentication" - gdybyśmy wybrali opcję "Yes, Authentication required", to dodatkowo musieli byśmy ustawić nazwę użytkownika i hasło dla domyślnego zasobu (czyli "public" w naszym wypadku), jednak naszym założeniem jest, aby dostęp do "public" nie wymagał logowania

 

- Samba Custom Configuration: tutaj dodajemy następujące reguły:

 

[praca]

comment = Praca

path = /opt/nas/praca

browseable = yes

read only = no

valid users = praca

 

[admin]

comment = Admin

path = /opt/nas/admin

browseable = yes

read only = no

valid users = admin

 

Powyższe reguły to nic innego jak regułki do pliku smb.conf.

 

- Additional Shares List: tutaj dodajemy wpis:

 

Share name: public

Directory: /opt/nas/public

Description: Public

Access Level: Read/Write

Hidden: No

 

Po wprowadzeniu reguł zapisujemy ustawienia.

 

b) Ponieważ zdefiniowaliśmy użytkowników: "praca" i "admin" musimy poinformować "sambę" o ich istnieniu (pamiętajmy, że nie są użytkownicy systemowi) - najlepiej jest ich dodać do skryptów startowych. W tym celu przechodzimy do zakładki: "Administration" > "Scripts" i wybieramy menu: "WAN Up". Dodajemy tam następujące reguły:

 

/opt/bin/adduser -h /dev/null -s /dev/null -H praca

/opt/bin/adduser -h /dev/null -s /dev/null -H admin

/usr/bin/smbpasswd praca praca32123

/usr/bin/smbpasswd admin adad123min

 

a następnie zapisujemy ustawienia.

 

4) Reboot.

 

Jeżeli wszystko wprowadziliśmy poprawnie, to po reboocie zasoby powinny być dostępne zgodnie z założeniami. Oczywiście nazwy zasobów, użytkowników oraz hasła zostały stworzone do celów poglądowych i zalecam ustawienie własnych.

 

5) SMB 1.0

 

Tomato w wersji 1.28 wykorzystuje serwer SMB z protokołem SMB 1.0/CIFS, który domyślnie jest wyłączony w Windowsie 10. Może się zdarzyć, że komputery z systemem Windows 10 przy próbie dostępu do zasobów naszego routera wyświetlą ostrzeżenie, iż wymagają użycia minimum SMB2. Podyktowane jest to względami bezpieczeństwa, ale w prosty sposób można je "przekonać do polubienia SMB 1". Oczywiście, nie zalecam takiego rozwiązania w dużej sieci korporacyjnej, natomiast w niewielkiej sieci lokalnej praktycznie nie stanowi to żadnego zagrożenia. Tym bardziej, jeżeli aktywujemy obsługę SMB1.0 w systemie Windows na poziomie klienta, a nie serwera.

 

Aby tego dokonać w wypadku systemu Windows 10 należy wywołać wiersz poleceń za pomocą kombinacji klawiszy: Windows + R, a następnie wpisując komendę: "optionalfeatures" - powinno to wywołać menu: "Windows features" (w wersji polskojęzycznej: "Funkcje systemu Windows"). Tam odszukujemy pozycję: "SMB 1.0/CIFS Fire Sharing Support" (w wersji polskojęzycznej: "Obsługa udostępniania plików SMB 1.0/CIFS").

 

Teraz zaznaczamy opcję: "SMB 1.0/CIFS Client" (w wersji polskojęzycznej: "Klient SMB 1.0/CIFS") i zatwierdzamy nasz wybór przyciskiem "OK". Po zakończeniu operacji Windows powinien bez problemu "widzieć" zasoby z routera.

 

Dodaj komentarz »