Как отключить функцию, которая открыла порт 445 на сервере Windows?

13

Я пытаюсь отключить ненужные мне сервисы, чтобы увеличить время ожидания и повысить безопасность.

Я обнаружил, что порт 445 по-прежнему открыт, выполнив telnet на localhost и порт 445. Поскольку мне не нужен порт 445, я бы предпочел закрыть его.

Как я могу узнать, кто слушает порт 445 и как его отключить?

Обратите внимание, что я не хочу блокировать порт 445 с помощью брандмауэра или чего-то подобного, но хочу отключить программу, у которой открыт порт 445.

javapowered
источник
2
И через 4 года этот вопрос настал.
BlackPanda
1
Для неопытных людей: BlackPanda имеет в виду WannaCry Ransomware .
Двойной Гра

Ответы:

7

Ниже приведена цитата из двух разных источников, которые я использовал для успешного отключения порта 445 на компьютерах с Windows XP. Я закрывал порты 445 и 135, 137 - 139, поэтому я следовал всем инструкциям в статье, и это сработало для меня.

Общая информация о порте 445 (ссылка на архив)

Среди новых портов, используемых Windows 2000, - TCP-порт 445, который используется для SMB через TCP. Протокол SMB (Server Message Block) используется, помимо прочего, для обмена файлами в Windows NT / 2000 / XP. В Windows NT он работал поверх NetBT (NetBIOS через TCP / IP), который использовал известные порты 137, 138 (UDP) и 139 (TCP). В Windows 2000 / XP Microsoft добавила возможность запуска SMB напрямую через TCP / IP, без дополнительного уровня NetBT. Для этого они используют TCP-порт 445.

На самом простом NetBIOS в вашей локальной сети может быть просто необходимым злом для устаревшего программного обеспечения. Однако NetBIOS в вашей глобальной сети или через Интернет представляет собой огромный (читай глупо ...) риск для безопасности. Вся информация, такая как ваш домен, имена рабочих групп и систем, а также информация об учетной записи доступна через NetBIOS. В ваших интересах, чтобы NetBIOS никогда не покидал вашу сеть.

Если вы используете многодомный компьютер, то есть более 1 сетевой карты, то вы должны отключить NetBIOS на каждой сетевой карте или Dial-Up Connection в свойствах TCP / IP, которые не являются частью вашей локальной сети.

Как отключить порт 445

Чтобы отключить порт 445:

Добавьте следующий раздел реестра:

Ключ: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ NetBT \ Имя параметров: SMBDeviceEnabled Тип: DWORD (REG_DWORD) Данные: 0

Не забудьте перезагрузить компьютер после отключения указанных портов для эффекта. Кроме того, чтобы убедиться, что эти порты отключены, вы можете открыть командную строку и набрать netstat -an, чтобы убедиться, что ваш компьютер больше не прослушивает эти порты.

(ключи реестра различаются для Windows 7 и более поздних версий, см. эту статью Microsoft )

VL-80
источник
Разве отключение порта 445 не будет таким же, как использование брандмауэра? Исправление симптома, а не причины. Вместо этого отключение только NetBIOS препятствует открытию порта 445? Просто спрашиваю. (Если нет, возможно, OP действительно должен отключить порт)
nixda
Я запрещал компьютерам в сети разговаривать друг с другом, используя сетевое будущее Windows. Вы знаете сеть Windows - это ужасно небезопасно. На одном компьютере есть вирус, и он распространяется (да, используя вышеупомянутые порты). В моем случае мне не нужны эти компьютеры, чтобы даже знать о существовании друг друга, но мне все еще нужно, чтобы они были в одном сегменте сети. Таким образом, брандмауэр не был решением для меня.
VL-80
Я попробовал это, и он работает на Windows Server 2008 R2 SP1 тоже.
javapowered
Кроме того, я нашел эту полезную статью ssj100.fullsubject.com/...
javapowered
Согласен! Эта статья в моем ответе (: Вторая ссылка.
VL-80
10

Я хотел бы расширить этот ответ

Порт 445 в Windows по умолчанию используется службой «Сервер» (настоящее имя «lanmanserver») для предоставления общего доступа к файлам по протоколу SMB. Чтобы запретить Windows прослушивать этот порт, необходимо остановить и отключить эту службу.

  1. У вас должны быть права администратора или возможность повышения до администратора.
  2. Откройте командную строку от имени администратора.
  3. Введите sc stop lanmanserver, нажмите Enter.
  4. По какой-то причине в этот момент порт все еще будет активен (по моему опыту, сделал это сегодня). Вам нужно перезагрузить систему, чтобы предотвратить прослушивание порта, но после перезагрузки служба перезапустится, поэтому вам нужно отключить ее запуск:
  5. Введите sc config lanmanserver start=disabled, нажмите Enter.
  6. Перезагрузка.
  7. Подтвердите в командной строке netstat -n -a | findstr "LISTENING" | findstr ":445", что он должен напечатать пустую строку, означая, что ничего не прослушивает порт. (команда может отличаться для неанглийских версий Windows, но не уверен, что вам может потребоваться изменить «СЛУШАТЬ» на переведенный вариант)

Существуют различные причины для освобождения порта 445 в Windows, одна из них очень интересна, и это позволяет туннелировать SMB через SSH - когда Windows не использует порт, теперь вы можете указать SSH Putty / Cygwin использовать его и пересылать к удаленному хосту через безопасное соединение - тогда вы можете получить безопасный доступ к удаленному файлу через \\localhost.

Дмитрий Сутягин
источник
1
Отключение службы сервера может иметь довольно неожиданные последствия. В моей системе он сломал Notepad ++ с установленным плагином Light Explorer . Попытка запустить программу больше не давала видимого окна (хотя оно работало, что можно наблюдать в диспетчере задач).
Двойной Гра
1

Запустите run-services.msc, отключите службу сервера.

Дамир
источник
1
я сделал это, но я все еще могу подключиться к порту 445 на локальном
хосте
1

Используйте TCPView, чтобы узнать, какая программа прослушивает порт 445.

Если слушателем является svchost.exe, то это системная служба. Чтобы угадать, какой из них, запишите его PID, перейдите в диспетчер задач, перейдите на вкладку Services и нажмите PID для сортировки по нему. С этим PID будет несколько служб, и все они являются кандидатами. Если вы не можете решить, какой из них, опубликуйте названия служб кандидатов, чтобы мы могли прокомментировать их.

Обратите внимание, что открытый порт не должен иметь слушателя. Порт называется «открытым», если он не заблокирован брандмауэром.

harrymc
источник
Открытый порт на брандмауэре отличается от открытого порта на компьютере. Порт открыт, если слушатель присутствует и наблюдает за этим портом. Он закрыт, если не существует слушателя. Брандмауэр добавляет еще один уровень, который может разрешать, блокировать (возвращая пакет, указывающий, что он закрыт), или отбрасывать (игнорировать) пакет, но это не зависит от того, открыт порт или закрыт в ОС.
NetworkLlama
0

Порт 445 = SMB = принтер и общий доступ к файлам. Поэтому отключите общий доступ к файлам в настройках сетевого подключения, чтобы закрыть порт.

magicandre1981
источник
2
Я отключил принтер и общий доступ к файлам, но порт все еще открыт.
javapowered
Согласно этому списку: en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers 445 также используется для Active Directory. Вы принимаете это?
magicandre1981
1
нет, мне ничего не нужно, и я хочу все отключить, я использую сервер для торговли.
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

Подробнее Как отключить функцию, которая открыла порт 445 в Windows с помощью PowerShell

откровенный
источник
Пожалуйста, не размещайте один и тот же ответ на несколько вопросов. Если одна и та же информация действительно отвечает на оба вопроса, то один вопрос (обычно более новый) следует закрыть как дубликат другого. Вы можете указать это путем голосования, чтобы закрыть его как дубликат или, если у вас недостаточно репутации для этого, поднять флаг, чтобы указать, что это дубликат. В противном случае настройте свой ответ на этот вопрос, а не просто вставляйте один и тот же ответ в нескольких местах.
Дэвид Постилл