Udostępnianie plików

Udostępnianie plików

  • Comments 11
  • Likes

Tytułowe udostępnianie plików jest usługą, którą realizuje ogromna większość serwerów Windows znajdujących się w sieci firmowej. Nawet, jeżeli podstawowa rola serwera jest zupełnie inna, to pewnie i tak udostępnia pliki, co łatwo wykaże wynik polecenia "net share". Wydawałoby się, że w przypadku udostępniania plików nie ma miejsca na większą filozofię, ale jak tak ostatnio sobie patrzę, co wyczyniają niektórzy administratorzy, to zaczynam się zastanawiać, czy nie mam głowy za wysoko w chmurach i nie zakładam, że wiedza jest tak oczywista, że odruchowo zakładam, że pewnych rzeczy nie da się popsuć. Da się, więc na wszelki wypadek dzisiaj będzie kilka nieskomplikowanych uwag na temat:

  • Udostępnianie plików realizowane jest przez systemową usługę Server. Zatrzymanie tej usługi sprawi, że dane nie będą dostępne, co może mieć zarówno pozytywne jak i negatywne konsekwencje. Wewnętrznie, usługa Server nazywa się LanmanServer i można ją "obejrzeć" poleceniem sc.exe query LanmanServer.
  • Listę udziałów sieciowych można wyświetlić poleceniem "net share". Można też zapytać przez WMI, używając klasy Win32_Share w PowerShellu, WMIC albo w aplikacji.
  • Listę otwartych przez udziały plików można wyświetlić poleceniem "net file". Polecenia tego można również użyć do wymuszenia zamknięcia otwartego pliku, ale należy liczyć się z tym, że użytkownik może nie być z tego powodu szczęśliwy zwłaszcza, gdy utraci niezapisane dane.
  • Udostępnianie plików wykorzystuje protokół CIFS, który jest dialektem protokołu SMB. Dla chcących pogrzebać w specyfikacji, Microsoft udostępnił odpowiednie zasoby. Protokół ten został na przestrzeni lat znacząco usprawniony. Od czasów Windows Vista / Windows Server 2008 działa naprawdę wydajnie i nazywany jest SMB2.
  • Domyślnie, udostępniane są wszystkie dyski (C$, D$...) i folder z systemem Windows (ADMIN$). Są to specjalne udziały z dostępem tylko dla administratorów. Technicznie możliwe jest ich wyłączenie, jednak w wielu przypadkach może to spowodować kłopoty z działaniem różnych narzędzi do zdalnego zarządzania czy zdalnej instalacji.
  • Znak dolara ($) na końcu nazwy udziału oznacza, że serwer nie "chwali się" takim udziałem w sieci. Udział działa normalnie, ale póki ktoś nie wie jak się nazywa, to go nie zobaczy. Przydaje się to do porządkowania widoków dla użytkowników, jednak nie powinno być traktowane jako skuteczne zabezpieczenie przed nieautoryzowanym dostępem.
  • Serwer plików publikuje swoje zasoby pod własną nazwą i pod swoim adresem IP. Zrobienie aliasu (na przykład przez utworzenie rekordu CNAME w DNS) wcale nie sprawi, że do serwera będzie można sięgnąć w ten sposób. Zachowanie takie jest możliwe do zmiany przy pomocy parametru DisableStrictNameChecking opisanego w KB281308.
  • Jeżeli pliki udostępnia klaster, powyższe ustawienie nie będzie działać i dostęp możliwy jest tylko przez zarejestrowane w klastrze nazwy.
  • Jeżeli ktoś chce przenieść całą strukturę plików i udziałów na nowy serwer, może użyć narzędzia FSMT udostępnianego bezpłatnie przez Microsoft.
  • Aby usługa Server "wiedziała" które foldery udostępnić i na jakich zasadach, sięga do swojej bazy danych zapisanej w rejestrze, w kluczu Services\LanmanServer\Shares. Można ten klucz zapisywać i odtwarzać, jednak poza ścieżkami zawiera on na przykład dane o uprawnieniach i ręczna edycja jego zawartości jest ryzykowna.
  • Inne obecne w gałęzi Services\LanmanServer parametry opisane są (choć dość pobieżnie i bardzo nieaktualnie) na stronach TechNet.
  • Na udziale można założyć ograniczenie liczby równoczesnych połączeń oraz ustawić prawa. Ustawianie praw na udziałach ma swoich zwolenników i przeciwników. Jeżeli ktoś nie ma bardzo silnych argumentów za taką konfiguracją, to mocno zachęcam do zrezygnowania z ustawiania uprawnień na udziale i korzystania z uprawnień na plikach i folderach. Są znacznie trudniejsze do przypadkowego ominięcia w codziennym sieciowym bałaganie.
  • Używanie adresów IP zamiast nazw serwerów plików to proszenie się o kłopoty. Jeżeli tylko DNS działa poprawnie, użycie nazw znacząco uprości przyszłe zmiany. Jeszcze większą elastyczność da zastosowanie DFS.
  • Serwer plików pozwala (przy pomocy wbudowanych mechanizmów audytu) na zapisywanie kto, kiedy, do czego i po co sięgnął. Należy tylko zdawać sobie sprawę, że nie pozostanie to bez wpływu na wydajność serwera. Domyślnie funkcjonalność ta jest wyłączona.
  • Nie da się utworzyć udziałów o nazwie "pipe" ani "mailslot" . Wynika to z faktu, że takimi nazwami usługa serwer posługuje się przy specjalnych trybach komunikacji.
  • Udziały na dyskach klastra traktowane są w specjalny sposób, choć w nowszych systemach do zarządzania nimi służą te same API. Nie da się jednak utworzyć udziałów na wolumenach CSV.

Podstawy? Oczywiście! Ale nie każdy się rodzi z ich znajomością, więc a nuż komuś pomogą. Zwłaszcza, że są wakacje, więc można sięgnąć po tematy trochę lżejsze niż zwykle.

Autor: Grzegorz Tworek [MVP]

PS Jeżeli ktoś ma jakieś sugestie pozwalające na rozszerzenie mojej listy – proszę śmiało w komentarzach. Poczytam, podyskutuję, pomyślę i pewnie dodam dla tych, którzy jeszcze nie wszystko o udostępnianiu plików wiedzą.

Comments
  • Grzegorzu poza tymi podstawowymi informacjami fajnie usłyszeć co nabrolili Ci "admini" ;)

  • W sumie, to stwierdziłem, że będę miły i nie zacznę się nad nikim znęcać. Więc staram się opisać dobre praktyki i pozytywne strony zamiast wprost pisać co można popsuć. Każdy z nas kiedyś tego się uczył :)

  • A tam, że dla kogoś oczywiste ;) Czasem dobrze sobie coś takiego przeczytać i przypomnieć. Moim zdaniem bardzo dobry wpis.

  • Jeżeli jest potrzeba aby serwer plików dostępny był pod kilkoma nazwami należy serwerowi dodać kolejną nazwę poprzez netdom computername

  • @Bob: O! Nie wiedziałem tego. Sprawdzę w wolnej chwili i dopiszę do listy. Dziekuję! :)

  • Jako kontynuacje/rozwinięcie możesz opisać zasady prawidłowego udostępniania folderów w środowisku AD.

  • A proszę o wytłumaczenie, co mi daje opublikowanie udostępnionego zasobu w AD, od po prostu udostępnionego zasobu, bez publikacji w AD?

  • O właśnie dobre pytanie zadał Paweł. Ja też chętnie bym dowiedział się co mi daje publikacja udostępnionego zasobu w AD. Grzegorz, czy mógłbyś wyjaśnić? Dziękuję.

  • @paweł: daje ci możliwość wyszukiwania przy pomocy narzędzi LDAP. nic poza tym.

    @GT: co do FSMT to lepszym narzędziem do migracji fileservera jest narzędzie do backupu. FSMT wymaga DFSa i tak na prawdę to się powinno nazywać DFS mig tool - czy coś przegapiłem? (:

  • FSMT nie wymaga DFSa. Choć oczywiście wie, że coś takiego istnieje i obsługuje poprawnie.

    Backup jest OK, jeżeli masz mało udziałów. Przy większej ilości samo ich odtworzenie na nowym serwerze staje się niemałą pracą, bo nie zawsze backup i restore klucza w rejestrze wystarcza.

  • @nexor: dziękuję za wytłumaczenie.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment