Przekazywanie nazwy użytkownika i hasła UNC w ścieżce UNC

23

Czy można podać nazwę użytkownika i hasło UNC w ścieżce UNC?

Podobnie jak w przypadku FTP i SMB:

smb://user:[email protected]/share
ftp://user:[email protected]/share

Usiłuję uzyskać dostęp do usługi DFS (innej niż domena komputera).

Czy jest na to jakiś sposób? Mogę powiązać komputer z domeną i uruchomić usługę jako użytkownik domeny, ale co, jeśli korzystam z systemu Linux?

Kvad
źródło

Odpowiedzi:

20

W systemie Windows nie można umieszczać poświadczeń w ścieżkach UNC. Musisz podać je za pomocą net use, runas /netonlyalbo gdy poproszony przez system Windows. (Jeśli masz pewne umiejętności programowania, możesz przechowywać hasło SMB jako „poświadczenie domeny” przy użyciu CredWrite(), co jest równoważne zaznaczeniu pola „Zapamiętaj hasło” w systemie Windows.)

W systemie Linux zależy to od programu.

  • Gvfs GNOME akceptuje user@hostskładnię, ale wydaje się, że całkowicie ignoruje hasło. (Możesz jednak wcześniej zapisać go w breloku GNOME).

  • smbclientużywa tej samej składni UNC co Windows; ma jednak --authentication-fileopcję, z której można odczytać dane uwierzytelniające.

  • Oba powyższe programy używają libsmbclient i mogą używać uwierzytelniania Kerberos zamiast haseł: uruchom kinit [email protected]i użyj smbclient -k //host/share. Jest to bezpieczniejsze niż uwierzytelnianie hasłem.

Pamiętaj, że umieszczanie haseł w identyfikatorach URI jest przestarzałe i nie powinieneś polegać na tym, że jest ono nigdzie obsługiwane .

grawitacja
źródło
Czy masz odniesienie do „wprowadzanie haseł do identyfikatorów URI jest przestarzałe”?
Alexis Wilke,
2
@AlexisWilke RFC 1738 § 3.3 zaczął się od niedopuszczania ich w HTTP, RFC 2396 § 3.2.2 miał bardziej ogólne „niezalecane”, a RFC 3986 § 3.2.1 mówi „Użycie formatu„ użytkownik: hasło ”w informacji o użytkowniku pole jest przestarzałe ”.
grawity
14

Możesz zamapować „dysk” na ścieżkę UNC za pomocą net use. Przyszłe dostępy powinny współdzielić istniejące połączenie

Net Use \\yourUNC\path /user:uname password

Uwaga: nie musisz określać litery dysku

uSlackr
źródło
1

Myślę, że nazwa użytkownika i hasło muszą zostać przekazane do serwera w celu uwierzytelnienia, zanim będzie można uzyskać dostęp do pliku, więc kod obsługujący połączenie SMB musi być w stanie przeanalizować i uzupełnić nazwę użytkownika i hasło z adresu URL. Musisz sprawdzić, czy ten kod obsługuje ten format, czy nie.

Jeśli tak się nie stanie, możesz zamontować ten udział SMB za pomocą SAMBA i skierować swój program do korzystania z tej „lokalnej” ścieżki. Możesz umieścić podłączenie fstabi użyć pliku hasła SAMBA, aby podać dane uwierzytelniające użytkownika. Pamiętaj, aby ustawić odpowiednie uprawnienia do pliku haseł, aby zwykli użytkownicy nie mogli go odczytać.

Zauważ, że złą praktyką jest przechowywanie haseł w postaci zwykłego tekstu w plikach konfiguracyjnych, więc nawet jeśli twój program może obsługiwać hasło w adresie URL, powinieneś rozważyć zainstalowaną metodę udostępniania.

billc.cn
źródło
Czy fstabnie jest „plikiem tekstowym konfiguracji”?
grawitacja 10.10.11
1
Tak, ale w fstab odwołujesz się do pliku z hasłem zamiast do bezpośredniego podawania hasła. Następnie możesz zabezpieczyć plik hasła, zmieniając właściciela na root i tryb na 400.
billc.cn 10.10.11
To wciąż plik konfiguracyjny w postaci czystego tekstu. Każdy, kto ma fizyczny dostęp do komputera, może mieć uprawnienia rootowania poprzez ponowne uruchomienie. Środowiska pulpitu, takie jak XFCE, KDE i Gnome, mogą przechowywać poświadczenia w przechowalni haseł, co jest prawdopodobnie lepszą opcją.
bobpaul,
0

Możesz dodać poświadczenia w Panelu sterowania / Users / Windows Credential Manager, aby dane były buforowane. Dodasz nazwę urządzenia (server.domain.local) do nazwy użytkownika / hasła domeny, a następnie powinieneś być w stanie uzyskać dostęp do udziału bez ponownego podawania poświadczeń.

Matt
źródło
0

Komputer spoza domeny tak naprawdę nie powinien przejmować się systemem plików DFS, do którego nie subskrybuje ani nie uczestniczy bezpośrednio. Musi tylko zobaczyć ścieżkę udziału (tj. Serwer / nazwa udziału). Nazwy udziału usuwają wszystkie uwagi dotyczące ścieżki do serwera plików hosta.

Szczerze mówiąc, istnieją bezpieczniejsze sposoby logowania do udziałów niż UNC URI. UNC i URI same w sobie są protokołem komunikacji tekstowej.
Jeśli jest to akceptowalne bezpieczeństwo ... dlaczego nie po prostu mieć otwartego udziału bez żadnego użytkownika ani hasła?

Najprostszym natychmiastowym rozwiązaniem byłoby nadanie poświadczeniom usługi bezpośredniego dostępu do logowania do udziału (np. Dopasowanie użytkownika / hasła). Długoterminowe, że nie tak oczywiste dopasowanie może utrudnić zapamiętywanie aktualizacji uprawnień, gdy tylko sytuacja się zmieni. Jest to także obszar, w którym stwardnienie rozsiane może zmienić sposób, w jaki zabezpieczenia przechodzą ponownie poświadczenia i psują rzeczy.

W dłuższej perspektywie najlepszą prostą rzeczą jest prawdopodobnie trwałe odwzorowanie litery dysku lokalnego na udział sieciowy. Chroń zmapowany dysk za pomocą uprawnień tylko do obsługi (i odpowiednich administratorów itp.), A nazwa udziału może być ukryta za pomocą wiodących &.

Ale DFS daje wskazówkę do bardziej eleganckiego rozwiązania. Linux wymaga najpierw zamontowania udziałów sieciowych ... zwykle jako katalogu w głównym systemie plików w sposób bardzo podobny do DFS. Polecenie montowania w systemie Linux umożliwia określenie pliku poświadczeń dla nazwy użytkownika i hasła, dzięki czemu są łatwiejsze do aktualizacji i bezpieczniejsze niż skrypt wiersza poleceń lub fstab (tj. Tabela systemu plików). Jestem pewien, że powłoki poleceń systemu Windows i DFS mogą zrobić to samo (dawno temu). Byłby to po prostu inny system DFS, prywatny niż komputer docelowy, obejmujący zamontowane udziały sieciowe przy użyciu zapisanych danych uwierzytelniających przekazywanych przez SMB i usługi logowania, a nie kodowanych na stałe w skrypcie i wysyłanych jako czysty tekst UNC.

Zastanów się również, czy ten komputer bezdomenowy pozostanie komputerem na dłuższy czas niż domena. Serwery logowania Kerberos w domenach * NIX można łączyć z domenami Windows AD. Prawdopodobnie to, co chcesz zrobić dla każdego poważnego długoterminowego projektu z udziałem więcej niż kilku osób. Z drugiej strony jest to prawdopodobnie przesada w większości sytuacji w sieci domowej. Chociaż jeśli używasz DFS z jakiegokolwiek dobrego powodu innego niż hobbysta, samozważysz, prawdopodobnie najlepiej.

Ciekawy
źródło
0

Odpowiedź Matta na przechowywanie poświadczeń jest najbardziej elegancka dla współczesnego komputera z systemem Windows. Chociaż nie podano inaczej, używane miejsce przechowywania poświadczeń powinno być dla konta usługi. Ma to na celu zarówno zapewnienie dostępności usługi, jak i uniemożliwienie innym użytkownikom, którym nie chcesz uzyskać dostępu do tego udziału (np. Pamiętaj o usunięciu danych logowania błędnie dodanych na niewłaściwym koncie).

Ale jeśli jest to starszy system Windows lub Linux, może być konieczne nieco szersze.

Komputer spoza domeny tak naprawdę nie powinien przejmować się systemem plików DFS, do którego nie subskrybuje ani nie uczestniczy bezpośrednio. Musi tylko zobaczyć ścieżkę udziału (tj. Serwer / nazwa udziału). Nazwy udziału usuwają wszystkie uwagi dotyczące ścieżki do serwera plików hosta.

Szczerze mówiąc, istnieją bezpieczniejsze sposoby logowania do udziałów niż UNC URI. UNC i URI same w sobie są protokołem komunikacji tekstowej.
Jeśli jest to akceptowalne bezpieczeństwo ... dlaczego nie po prostu mieć otwartego udziału bez żadnego użytkownika ani hasła?

Najprostszym natychmiastowym rozwiązaniem byłoby nadanie poświadczeniom usługi bezpośredniego dostępu do logowania do udziału (np. Dopasowanie użytkownika / hasła). Długoterminowe, że nie tak oczywiste dopasowanie może utrudnić zapamiętywanie aktualizacji uprawnień, gdy tylko sytuacja się zmieni. Jest to także obszar, w którym stwardnienie rozsiane może zmienić sposób, w jaki zabezpieczenia przechodzą ponownie poświadczenia i psują rzeczy.

W dłuższej perspektywie najlepszą prostą rzeczą jest prawdopodobnie trwałe odwzorowanie litery dysku lokalnego na udział sieciowy. Chroń zmapowany dysk za pomocą uprawnień tylko do obsługi (i odpowiednich administratorów itp.), A nazwa udziału może być ukryta za pomocą wiodących &.

Ale DFS daje wskazówkę do bardziej eleganckiego rozwiązania. Linux wymaga najpierw zamontowania udziałów sieciowych ... zwykle jako katalogu w głównym systemie plików w sposób bardzo podobny do DFS. Polecenie montowania w systemie Linux umożliwia określenie pliku poświadczeń dla nazwy użytkownika i hasła, dzięki czemu są łatwiejsze do aktualizacji i bezpieczniejsze niż skrypt wiersza poleceń lub fstab (tj. Tabela systemu plików). Jestem pewien, że powłoki poleceń systemu Windows i DFS mogą zrobić to samo (dawno temu). Byłby to po prostu inny system DFS, prywatny niż komputer docelowy, obejmujący zamontowane udziały sieciowe przy użyciu zapisanych danych uwierzytelniających przekazywanych przez SMB i usługi logowania, a nie kodowanych na stałe w skrypcie i wysyłanych jako czysty tekst UNC.

Zastanów się również, czy ten komputer bezdomenowy pozostanie komputerem na dłuższy czas niż domena. Serwery logowania Kerberos w domenach * NIX można łączyć z domenami Windows AD. Prawdopodobnie to, co chcesz zrobić dla każdego poważnego długoterminowego projektu z udziałem więcej niż kilku osób. Z drugiej strony jest to prawdopodobnie przesada w większości sytuacji w sieci domowej. Chociaż jeśli używasz DFS z jakiegokolwiek dobrego powodu innego niż hobbysta, samozważysz, prawdopodobnie najlepiej.

Ciekawy
źródło