怎样关闭和复原135 、139 、445端口?

2022-06-13 14:24:12 浏览数 (1)

微软不建议关闭135端口和445端口

关于这几个端口,我跟微软工程师电话沟通过,微软不推荐关闭,建议从防火墙或安全组(尽量用云平台功能,即安全组)采取措施而不是关闭端口,把需要访问这些端口的IP段(内网段)在安全组入站规则放行,个别需要在外网访问这些端口的客户端IP段也放行,其余的客户端IP段全部禁止访问这些端口即可

445端口是域服务需要的,关闭445端口,域业务也就挂了

135端口是RPC协议,要关闭135端口的话,得干预DCOM和RPC,很多底层服务依赖DCOM和RPC,这对系统影响太大了,比如2008R2、2012R2系统关闭135端口后打开计划任务(运行taskschd.msc)报错"找不到远程计算机 The RPC server is unavailable" (≥2016的系统不报错),回滚操作后,计划任务恢复,排查发现是添加Rpcinternet注册表(reg add HKLMSOFTWAREMicrosoftRpcinternet)导致的。

强烈建议不要关闭TCP 135端口,大量的服务需要用到该端口,参考以下文档 https://docs.microsoft.com/zh-CN/troubleshoot/windows-server/networking/service-overview-and-network-port-requirements

如果实在要关闭这些端口,如下

https://blog.csdn.net/u013761036/article/details/71915237

这篇文档关闭135、139、445端口的办法适用所有Windows系统,但是太过繁琐,我翻译成了命令

所有Windows系统通用代码方案如下

用netstat来过滤有没有监听

netstat -ano|findstr :445

netstat -ano|findstr :135

netstat -ano|findstr :139

【关闭135端口】重启生效

reg add "HKLMSOFTWAREMicrosoftOle" /v "EnableDCOM" /t REG_SZ /d "N" /f

reg add "HKLMSOFTWAREMicrosoftRpc" /v "DCOM Protocols" /t reg_multi_sz /d "" /f

reg add "HKLMSOFTWAREMicrosoftRpcInternet" /f

【复原135端口】重启生效

reg add "HKLMSOFTWAREMicrosoftOle" /v "EnableDCOM" /t REG_SZ /d "Y" /f

reg add "HKLMSOFTWAREMicrosoftRpc" /v "DCOM Protocols" /t reg_multi_sz /d "ncacn_ip_tcp" /f

powershell -Command "Remove-Item HKLM:SOFTWAREMicrosoftRpcInternet -force -Confirm:0"

powershell -Command "Get-Item HKLM:SOFTWAREMicrosoftRpcInternet | Remove-Item -force -Confirm:0"

以上复原135端口的命令适用所有Windows系统

下面单独说下reg delete命令

执行reg delete "HKLMSOFTWAREMicrosoftRpcInternet" /f 删RpcInternet报没权限,2008R2、2012R2打开注册表循着路径找到RpcInternet用鼠标删掉,2016/2019提权后用reg delete可以删,也可以用鼠标删

提权的话,需要提前把psexec.exe或psexec64.exe放到system32目录,

https://live.sysinternals.com/PsExec.exe

https://live.sysinternals.com/PsExec64.exe

然后执行

【psexec.exe】

psexec.exe -accepteula -nobanner -i -s reg delete "HKLMSOFTWAREWow6432NodeMicrosoftRpcInternet" /f

psexec.exe -accepteula -nobanner -i -s reg delete "HKLMSOFTWAREMicrosoftRpcInternet" /f

【psexec64.exe】

psexec64.exe -accepteula -nobanner -i -s reg delete "HKLMSOFTWAREWow6432NodeMicrosoftRpcInternet" /f

psexec64.exe -accepteula -nobanner -i -s reg delete "HKLMSOFTWAREMicrosoftRpcInternet" /f

【只有一块网卡的CVM,关闭139端口】powershell两行代码执行后重启机器生效

$netcardGUID=(getmac /fo list|findstr Tcpip).split("_")[1]

REG ADD HKLMSYSTEMCurrentControlSetServicesNetBTParametersInterfaces$netcardGUID /v NetBIOSOptions /T REG_DWORD /D 2 /F

【只有一块网卡的CVM,复原139端口】powershell两行代码执行后重启机器生效

$netcardGUID=(getmac /fo list|findstr Tcpip).split("_")[1]

REG ADD HKLMSYSTEMCurrentControlSetServicesNetBTParametersInterfaces$netcardGUID /v NetBIOSOptions /T REG_DWORD /D 0 /F

【黑石关闭139端口】powershell两行代码执行后重启机器生效

$netcardGUID=(getmac /fo list|findstr Tcpip)[1].split("_")[1]

REG ADD HKLMSYSTEMCurrentControlSetServicesNetBTParametersInterfaces$netcardGUID /v NetBIOSOptions /T REG_DWORD /D 2 /F

【黑石复原139端口】powershell两行代码执行后重启机器生效

$netcardGUID=(getmac /fo list|findstr Tcpip)[1].split("_")[1]

REG ADD HKLMSYSTEMCurrentControlSetServicesNetBTParametersInterfaces$netcardGUID /v NetBIOSOptions /T REG_DWORD /D 0 /F

【Windows 32 位系统 关闭 445 端口】重启机器生效

cmd:

REG ADD HKLMSYSTEMCurrentControlSetservicesNetBTParameters /v SMBDeviceEnabled /T REG_DWORD /D 0 /F && sc config LanmanServer start= disabled && net stop lanmanserver /y

【Windows 64 位系统 关闭 445 端口】重启机器生效

cmd:

REG ADD HKLMSYSTEMCurrentControlSetservicesNetBTParameters /v SMBDeviceEnabled /T REG_QWORD /D 0 /F && sc config LanmanServer start= disabled && net stop lanmanserver /y

【复原445端口,通用32位和64位】不用重启机器即生效

reg delete HKLMSYSTEMCurrentControlSetservicesNetBTParameters /v SMBDeviceEnabled /f

sc.exe config LanmanServer start= auto

sc.exe start LanmanServer

0 人点赞