微软不建议关闭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的系统不报错),回滚操作后,计划任务恢复,排查发现是添加Rpc\internet注册表(reg add HKLM\SOFTWARE\Microsoft\Rpc\internet)导致的。
强烈建议不要关闭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 "HKLM\SOFTWARE\Microsoft\Ole" /v "EnableDCOM" /t REG_SZ /d "N" /f
reg add "HKLM\SOFTWARE\Microsoft\Rpc" /v "DCOM Protocols" /t reg_multi_sz /d "\0" /f
reg add "HKLM\SOFTWARE\Microsoft\Rpc\Internet" /f
【复原135端口】重启生效
reg add "HKLM\SOFTWARE\Microsoft\Ole" /v "EnableDCOM" /t REG_SZ /d "Y" /f
reg add "HKLM\SOFTWARE\Microsoft\Rpc" /v "DCOM Protocols" /t reg_multi_sz /d "ncacn_ip_tcp\0" /f
powershell -Command "Remove-Item HKLM:\SOFTWARE\Microsoft\Rpc\Internet -force -Confirm:0"
或
powershell -Command "Get-Item HKLM:\SOFTWARE\Microsoft\Rpc\Internet | Remove-Item -force -Confirm:0"
以上复原135端口的命令适用所有Windows系统
下面单独说下reg delete命令
执行reg delete "HKLM\SOFTWARE\Microsoft\Rpc\Internet" /f 删Rpc\Internet报没权限,2008R2、2012R2打开注册表循着路径找到Rpc\Internet用鼠标删掉,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 "HKLM\SOFTWARE\Wow6432Node\Microsoft\Rpc\Internet" /f
或
psexec.exe -accepteula -nobanner -i -s reg delete "HKLM\SOFTWARE\Microsoft\Rpc\Internet" /f
【psexec64.exe】
psexec64.exe -accepteula -nobanner -i -s reg delete "HKLM\SOFTWARE\Wow6432Node\Microsoft\Rpc\Internet" /f
或
psexec64.exe -accepteula -nobanner -i -s reg delete "HKLM\SOFTWARE\Microsoft\Rpc\Internet" /f
【只有一块网卡的CVM,关闭139端口】powershell两行代码执行后重启机器生效
$netcardGUID=(getmac /fo list|findstr Tcpip).split("_")[1]
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\$netcardGUID /v NetBIOSOptions /T REG_DWORD /D 2 /F
【只有一块网卡的CVM,复原139端口】powershell两行代码执行后重启机器生效
$netcardGUID=(getmac /fo list|findstr Tcpip).split("_")[1]
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\$netcardGUID /v NetBIOSOptions /T REG_DWORD /D 0 /F
【黑石关闭139端口】powershell两行代码执行后重启机器生效
$netcardGUID=(getmac /fo list|findstr Tcpip)[1].split("_")[1]
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\$netcardGUID /v NetBIOSOptions /T REG_DWORD /D 2 /F
【黑石复原139端口】powershell两行代码执行后重启机器生效
$netcardGUID=(getmac /fo list|findstr Tcpip)[1].split("_")[1]
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\$netcardGUID /v NetBIOSOptions /T REG_DWORD /D 0 /F
【Windows 32 位系统 关闭 445 端口】重启机器生效
cmd:
REG ADD HKLM\SYSTEM\CurrentControlSet\services\NetBT\Parameters /v SMBDeviceEnabled /T REG_DWORD /D 0 /F && sc config LanmanServer start= disabled && net stop lanmanserver /y
【Windows 64 位系统 关闭 445 端口】重启机器生效
cmd:
REG ADD HKLM\SYSTEM\CurrentControlSet\services\NetBT\Parameters /v SMBDeviceEnabled /T REG_QWORD /D 0 /F && sc config LanmanServer start= disabled && net stop lanmanserver /y
【复原445端口,通用32位和64位】不用重启机器即生效
reg delete HKLM\SYSTEM\CurrentControlSet\services\NetBT\Parameters /v SMBDeviceEnabled /f
sc.exe config LanmanServer start= auto
sc.exe start LanmanServer
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。