jak wyłączyć funkcję, która otworzyła port 445 na serwerze Windows?


13

Próbuję wyłączyć usługi, których nie potrzebuję, aby poprawić opóźnienia i poprawić bezpieczeństwo.

Odkryłem, że port 445 jest nadal otwarty, wykonując telnet na localhost i port 445. Ponieważ nie potrzebuję portu 445, wolałbym go zamknąć.

Jak mogę dowiedzieć się, kto nasłuchuje na porcie 445 i jak go wyłączyć?

Zauważ, że nie chcę blokować portu 445 za pomocą zapory ogniowej lub czegoś podobnego, ale chcę wyłączyć program, który ma otwarty port 445.


2
A po 4 latach nadszedł dzień tego pytania.
BlackPanda

1
Dla osób nie-maniaków: BlackPanda odnosi się do oprogramowania ransomware WannaCry .
Gras Double

Odpowiedzi:


7

Oto cytat z dwóch różnych źródeł, których użyłem do pomyślnego wyłączenia portu 445 na komputerach z systemem Windows XP. Zamykałem porty 445 i 135, 137–139, więc zastosowałem się do wszystkich instrukcji zawartych w artykule i zadziałało to dla mnie.

Ogólne informacje o porcie 445 (link do archiwum)

Wśród nowych portów używanych przez Windows 2000 jest port TCP 445, który jest używany dla SMB przez TCP. Protokół SMB (Server Message Block) służy między innymi do udostępniania plików w systemie Windows NT / 2000 / XP. W Windows NT działał na NetBT (NetBIOS przez TCP / IP), który korzystał ze słynnych portów 137, 138 (UDP) i 139 (TCP). W Windows 2000 / XP Microsoft dodał możliwość uruchamiania SMB bezpośrednio przez TCP / IP, bez dodatkowej warstwy NetBT. W tym celu używają portu TCP 445.

W najprostszym przypadku NetBIOS w twojej sieci LAN może być po prostu złem niezbędnym dla starszego oprogramowania. NetBIOS w sieci WAN lub przez Internet stanowi jednak ogromne zagrożenie bezpieczeństwa (czytaj głupie ...). Wszelkiego rodzaju informacje, takie jak nazwa domeny, grupy roboczej i systemu, a także informacje o koncie można uzyskać za pośrednictwem NetBIOS. W twoim najlepszym interesie jest, aby NetBIOS nigdy nie opuszczał twojej sieci.

Jeśli używasz komputera z wieloma domami, tj. Więcej niż 1 karta sieciowa, powinieneś wyłączyć NetBIOS na każdej karcie sieciowej lub Połączenie telefoniczne w ramach właściwości TCP / IP, które nie jest częścią twojej sieci lokalnej.

Jak wyłączyć port 445

Aby wyłączyć port 445:

Dodaj następujący klucz rejestru:

Klucz: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ NetBT \ Parametry Nazwa: SMBDeviceEnabled Typ: DWORD (REG_DWORD) Dane: 0

Nie zapomnij zrestartować komputera po wyłączeniu powyższych portów dla uzyskania efektu. Ponadto, aby sprawdzić, czy te porty są wyłączone, możesz otworzyć wiersz polecenia i wpisać polecenie netstat -an, aby potwierdzić, że komputer nie słucha już tych portów.

(klucze rejestru są różne dla systemu Windows 7 i nowszych, zobacz ten artykuł Microsoft )


Czy wyłączenie portu 445 nie byłoby tym samym, co używanie zapory ogniowej? Naprawianie symptomu, a nie przyczyny. Czy zamiast tego wyłączenie samego NetBIOS zapobiegnie otwarciu portu 445? Tylko pytam. (Jeśli nie, być może OP naprawdę musi wyłączyć port)
nixda

Uniemożliwiłem komputerom w sieci rozmawianie ze sobą przy użyciu przyszłości sieci Windows. Znasz sieć Windows - jest strasznie niepewna. Jeden komputer ma wirusa i rozprzestrzenia się (tak, używając wyżej wymienionych portów). W moim przypadku nie potrzebuję nawet, aby te komputery wiedziały o sobie nawzajem, ale nadal potrzebuję, aby znajdowały się w tym samym segmencie sieci. Zapora ogniowa nie była dla mnie rozwiązaniem.
VL-80,

próbowałem tego i działa również na Windows Server 2008 R2 SP1.
javapowered

też znalazłem ten przydatny artykuł ssj100.fullsubject.com/…
javapowered

Zgodzić się! Ten artykuł jest w mojej odpowiedzi (: Drugi link.
VL-80,

10

Chciałbym rozszerzyć tę odpowiedź

Port 445 w systemie Windows jest domyślnie używany przez usługę „Serwer” (prawdziwa nazwa to „lanmanserver”) do udostępniania plików za pomocą protokołu SMB. Aby system Windows nie mógł nasłuchiwać na tym porcie, musisz zatrzymać i wyłączyć tę usługę.

  1. Musisz mieć uprawnienia administratora lub mieć uprawnienia administratora.
  2. Otwórz wiersz polecenia jako administrator.
  3. Wpisz sc stop lanmanserveri naciśnij Enter.
  4. Z jakiegoś powodu w tym momencie port nadal będzie aktywny (z mojego doświadczenia, zrobiłem to dzisiaj). Musisz zrestartować system, aby uniemożliwić mu nasłuchiwanie na porcie, ale usługa uruchomi się ponownie po ponownym uruchomieniu, więc musisz wyłączyć jego uruchamianie:
  5. Wpisz sc config lanmanserver start=disabledi naciśnij Enter.
  6. Restart.
  7. Sprawdź w wierszu polecenia za pomocą netstat -n -a | findstr "LISTENING" | findstr ":445", powinien wypisać pusty wiersz, co oznacza, że ​​nic nie nasłuchuje na porcie. (polecenie może się różnić w przypadku nieanglojęzycznych wersji systemu Windows, nie jestem pewien, może być konieczna zmiana „LISTENING” na przetłumaczony wariant)

Istnieje wiele powodów, aby zwolnić port 445 w systemie Windows, jeden z nich jest dość interesujący i ma umożliwić tunelowanie SMB przez SSH - gdy Windows nie używa portu, możesz teraz powiedzieć Putty / Cygwin'ed SSH, aby używał go i przekazywał dalej do zdalnego hosta za pośrednictwem bezpiecznego połączenia - wtedy możesz bezpiecznie uzyskać dostęp do zdalnego udostępniania plików za pośrednictwem \\localhost.


1
Wyłączenie usługi serwera może mieć dość nieoczekiwane konsekwencje. W moim systemie zepsuł się Notepad ++ z zainstalowaną wtyczką Light Explorer . Próba uruchomienia programu nie dawała już żadnego widocznego okna (chociaż działało, co można zaobserwować w menedżerze zadań).
Gras Double

1

Start-run-services.msc, wyłącz usługę serwera.


2
Zrobiłem to, ale nadal mogę połączyć się z portem 445 na localhost
javapowered

1

Użyj TCPView, aby dowiedzieć się, który program nasłuchuje na porcie 445.

Jeśli nasłuchiwaniem jest svchost.exe, jest to usługa systemowa. Aby odgadnąć, zanotuj jego PID, przejdź do Menedżera zadań, zakładki Usługi i kliknij PID, aby posortować według niego. Z tym PID będzie dostępnych kilka usług, a wszystkie z nich są kandydatami. Jeśli nie możesz zdecydować, który z nich, opublikuj nazwy służb kandydujących, abyśmy mogli je skomentować.

Pamiętaj, że otwarty port nie musi mieć detektora. Port nazywany jest „otwartym”, gdy nie jest blokowany przez zaporę.


Otwarty port w zaporze ogniowej różni się od otwartego portu na komputerze. Port jest otwarty, jeśli słuchacz jest obecny i obserwuje ten port w poszukiwaniu ruchu. Jest zamknięty, jeśli nie ma nasłuchiwacza. Zapora dodaje kolejną warstwę, która może zezwalać, blokować (zwracać pakiet wskazujący, że jest zamknięty) lub upuszczać (dyskretnie ignorować) pakiet, ale nie jest to zależne od tego, czy port jest otwarty, czy zamknięty w systemie operacyjnym.
NetworkLlama,

0

Port 445 = SMB = drukarka i udostępnianie plików. Dlatego wyłącz udostępnianie plików w opcjach połączenia sieciowego, aby zamknąć port.


2
Wyłączyłem udostępnianie drukarki i plików, ale port nadal jest otwarty.
javapowered

Według tej listy: en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers 445 jest również używany w Active Directory. Czy to hostujesz?
magicandre1981,

1
nie, nie potrzebuję niczego i chcę wszystko wyłączyć, używam serwera do handlu.
javapowered

0

PowerShell:

$netBTParametersPath = "HKLM:\SYSTEM\CurrentControlSet\Services\NetBT\Parameters" 
IF(Test-Path -Path $netBTParametersPath) { 
    Set-ItemProperty -Path $netBTParametersPath -Name "SMBDeviceEnabled" -Value 0 
} 
Set-Service lanmanserver -StartupType Disabled 
Stop-Service lanmanserver -Force

Więcej informacji Jak wyłączyć funkcję, która otworzyła port 445 w systemie Windows za pomocą programu PowerShell


Nie zamieszczaj tej samej odpowiedzi na wiele pytań. Jeśli ta sama informacja naprawdę odpowiada na oba pytania, to jedno pytanie (zwykle nowsze) powinno zostać zamknięte jako duplikat drugiego. Możesz to wskazać, głosując, aby zamknąć go jako duplikat lub, jeśli nie masz wystarczającej reputacji, podnieść flagę wskazującą, że jest to duplikat. W przeciwnym razie dostosuj swoją odpowiedź do tego pytania i nie wklejaj tej samej odpowiedzi w wielu miejscach.
DavidPostill
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.