陈德馨

修改Windows远程桌面连接端口

811人参与 |分类: 运维时间|时间:2014年11月03日 15:31

Windows 2000/2003系统中的远程终端服务是一项功能非常强大的服务,同时也成了入侵者长驻主机的通道,入侵者可以利用一些手段得到管理员账号和密码并入侵主机。下面,我们来看看如何通过修改默认端口,防范黑客入侵。

众所周知,远程终端服务基于端口3389。入侵者一般先扫描主机开放端口,一旦发现其开放了3389端口,就会进行下一步的入侵,所以我们只需要修改该服务默认端口就可以避开大多数入侵者的耳目。

方法一、手动修改注册表

步骤:打开“开始→运行”,输入“regedit”,打开注册表,进入以下路径:

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWdsrdpwdTdstcp]
“portNumber”=hex

看见 PortNamber 值了吗?其默认值是3389,修改成所希望的端口即可,例如8160。

再打开

[HKEY_LOCAL_MACHINESYSTEMCurrentContro1SetControlTenninal ServerWinStationsRDPTcp]
“portNumber”=hex

PortNumber 的值(默认是3389)修改成端口 8160。

方法二、复制以下代码,保存为bat文件,双击运行,输入新端口。

@echo off
echo ------ 开启远程桌面 ------
echo 说明:
echo 1.本脚本能够开启远程桌面功能、设定远程桌面端口、
echo 添加防火墙规则并禁用3389端口等的一系列功能,
echo 并且不需要重新启动系统即可生效。
echo 2.本脚本在 Windows Server 2012 DataCenter 简体中文版上测试成功。
echo 理论上也支持 WS2012、WS2008R2、WS2008、Win8、Win7、Vista 全系列64位、32位版本。
echo 对于 WS2003、WinXP 等不支持高级防火墙的需要修改本脚本中防火墙相关命令。
echo 对于非简体中文版本需要修改本脚本中防火墙相关命令。
echo 3.请右键以管理员身份运行,如果没有请关闭本窗口,重新运行。
echo 4.执行完毕之后会有提示,请耐心等待。
echo.
echo ------ 执行 ------
echo.
echo 备份相关注册表项到 3389.reg.bak :
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" 3389.reg.%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%.bak
echo.
echo 删除3389端口防火墙规则...
rem set /a n=0xff 转换16进制到10进制并赋予变量n
for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v PortNumber^|find /i "PortNumber"
') do set /a pn=%%a
if not %pn%==3389 (
netsh advfirewall firewall delete rule name=all protocol=tcp localport=%pn%
netsh advfirewall firewall delete rule name=all protocol=udp localport=%pn%
)
for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber^|find /i "PortNumber"
') do set /a pn=%%a
if not %pn%==3389 (
netsh advfirewall firewall delete rule name=all protocol=tcp localport=%pn%
netsh advfirewall firewall delete rule name=all protocol=udp localport=%pn%
)
set /p port=请输入新3389端口:
echo.
echo 正在修改端口...
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v PortNumber /t REG_DWORD /d %port% /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d %port% /f
echo.
echo 正在启用远程桌面功能...
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
echo.
echo 正在重启远程桌面服务...
net stop "Remote Desktop Services" /y
net start "Remote Desktop Services"
echo.
echo 添加防火墙规则...
netsh advfirewall firewall add rule name="%port% - rdp (TCP-In)" dir=in action=allow protocol=TCP localport=%port%
netsh advfirewall firewall add rule name="%port% - rdp (UDP-In)" dir=in action=allow protocol=UDP localport=%port%
echo.
echo 禁用3389端口...
netsh advfirewall firewall set rule group="远程桌面" new enable=no
echo.
echo 执行完毕,按任意键关闭本窗口...
pause >nul

其实,只修改第二个也可以了!修改完毕,重新启动服务器,以后远程登录的时候使用端口8160就可以了。

另外,谈两点题外话。

1、怎样启用远程桌面,Win2000下只要把Terminal Service启动起来,应该就可以实现远程连接了,但在Win2003下却有问题,你还须要把“我的电脑 |属性 |远程 |允许远程桌面连接”勾选上才行。

2、很多朋友拿X-Scan来扫描自己的服务器,发现该工具提示3389端口是一项非常危险的信号,有被暴破的可能性。解决方法是“暂无”,于是大家就觉得3389很不安全…… 其实安全是一个相对概念,如果微软明知3389会很容易被人暴破,你觉得他们不会想办法解决,而任由自己的客户处于这么样危险的状态之中?虽然我不知道别人是怎么样暴破的,但我想至少很难暴破,相信只要密码设置较长,几乎是没有人去搞你这个3389,黑客早把时间花到你机器的别的应用上去了。

来源:陈德馨博客(微信/QQ号:35435164),转载请保留出处和链接!

地址:

必填

选填

选填

◎已有 0 人评论,请发表您的观点。