सभी Windows ऑपरेटिंग सिस्टम में, RDP (रिमोट डेस्कटॉप प्रोटोकॉल) को असाइन किया गया डिफ़ॉल्ट पोर्ट TCP 3389 है। Windows में RDP सक्षम करने के बाद, TermService (रिमोट डेस्कटॉप सेवाएं) पोर्ट 3389 पर सुनना शुरू कर देता है। इस लेख में, हम आपको दिखाएंगे कि रजिस्ट्री संपादक और PowerShell का उपयोग करके Windows के डेस्कटॉप संस्करणों (7/8/10/11) और Windows Server पर डिफ़ॉल्ट RDP पोर्ट नंबर कैसे बदलें।
ध्यान दें कि Windows के आधुनिक संस्करण रिमोट डेस्कटॉप कनेक्शन के लिए TCP के अलावा समान पोर्ट नंबर (3389) के साथ UDP का भी उपयोग करते हैं।
आप Windows में डिफ़ॉल्ट RDP पोर्ट नंबर को 3389 से किसी अन्य पर बदल सकते हैं। यह सबसे अधिक तब उपयोग किया जाता है जब आपको अपने RDP/RDS होस्ट को पोर्ट स्कैनर्स से छिपाने की आवश्यकता होती है जो खुले RDP पोर्ट TCP/3389 वाले Windows होस्ट को नेटवर्क पर खोजते हैं।
RDP पोर्ट बदलने से RDP कमजोरियों के शोषण की संभावना कम हो जाएगी (RDP BlueKeep में अंतिम महत्वपूर्ण भेद्यता CVE-2019-0708 में वर्णित है), RDP ब्रूट फोर्स हमलों की संख्या कम हो जाएगी (RDP कनेक्शन लॉग का नियमित विश्लेषण करना न भूलें), SYN, और अन्य प्रकार के हमले जब NLA अक्षम है। अक्सर, RDP पोर्ट को इंटरनेट से सीधे कनेक्शन वाले कंप्यूटर्स (VPS/VDS), या उन नेटवर्क में बदला जाता है जहां एज राउटर पोर्ट 3389/RDP को आपके LAN में Windows होस्ट पर फॉरवर्ड करता है।
पोर्ट नंबर बदलने के बावजूद, अपने होस्ट पर RDP पोर्ट को इंटरनेट पर खोलना असुरक्षित है। पोर्ट स्कैनर्स एक हमलावर को हस्ताक्षर द्वारा नए पोर्ट पर RDP लिस्टनर की खोज करने की अनुमति देते हैं। यदि आप अपने नेटवर्क पर किसी कंप्यूटर पर RDP एक्सेस खोलना चाहते हैं, तो VPN, RD Web Access, RDS Gateway, और अन्य सुरक्षित कनेक्शन टूल्स का उपयोग करना बेहतर है।
गैर-मानक RDP पोर्ट चुनते समय, कृपया ध्यान दें कि 1-1023 रेंज में पोर्ट्स (ज्ञात पोर्ट्स) का उपयोग करने की अनुशंसा नहीं की जाती है। RPC पोर्ट रेंज (49152 से 65535) में एक डायनामिक पोर्ट का उपयोग करें, या 1024 से 49151 रेंज में कोई भी पोर्ट जो किसी अन्य सेवा या एप्लिकेशन द्वारा उपयोग नहीं किया जा रहा है।
Windows पर रिमोट डेस्कटॉप पोर्ट कैसे बदलें?
हमारे उदाहरण में, हम उस पोर्ट नंबर को बदलेंगे जिस पर रिमोट डेस्कटॉप सेवा सुन रही है 1350 पर। ऐसा करने के लिए:
- रजिस्ट्री संपादक (
regedit.exe) खोलें और रजिस्ट्री कुंजी HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp पर जाएं; - PortNumber नाम के DWORD पैरामीटर को ढूंढें। यह पैरामीटर वह पोर्ट दिखाता है जिस पर रिमोट डेस्कटॉप सेवा सुन रही है। डिफ़ॉल्ट 3389 (दशमलव) है;
- इस पैरामीटर का मान बदलें। मैंने RDP पोर्ट को 1350 (दशमलव) पर बदल दिया है; आप PowerShell का उपयोग करके रजिस्ट्री पैरामीटर बदल सकते हैं:
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\" -Name PortNumber -Value 1350 - यदि आपके कंप्यूटर पर Windows फ़ायरवॉल सक्षम है, तो आपको एक नया नियम बनाना होगा जो आपके नए RDP पोर्ट पर इनबाउंड कनेक्शन की अनुमति देता है। यदि आप RDP के माध्यम से रिमोट Windows होस्ट को पुनः कॉन्फ़िगर कर रहे हैं, तो TermService को पुनरारंभ करने से पहले फ़ायरवॉल में अनुमति नियम बनाना सुनिश्चित करें, अन्यथा आप सर्वर तक पहुंच खो देंगे;
- आप Windows Defender फ़ायरवॉल कंसोल (
firewall.cpl) में मैन्युअल रूप से या NetSecurity मॉड्यूल से PowerShell कमांडलेट्स का उपयोग करके अपने नए TCP/UDP RDP पोर्ट के लिए अनुमति इनबाउंड नियम बना सकते हैं:New-NetFirewallRule -DisplayName "NewRDPPort-TCP-In" -Direction Inbound -LocalPort 1350 -Protocol TCP -Action allow New-NetFirewallRule -DisplayName "NewRDPPort-UDP-In" -Direction Inbound -LocalPort 1350 -Protocol UDP -Action allow - अपने कंप्यूटर को रीबूट करें या इस कमांड के साथ अपनी रिमोट डेस्कटॉप सेवा पुनरारंभ करें:
net stop termservice & net start termservice - इस Windows होस्ट से रिमोट डेस्कटॉप के माध्यम से कनेक्ट करने के लिए, आपको अपने mstsc.exe क्लाइंट में कोलन का उपयोग करके नया RDP कनेक्शन पोर्ट निर्दिष्ट करना होगा:
RDPComputerName:1350या IP पते द्वारा:192.168.1.10:1350या कमांड प्रॉम्प्ट से:mstsc.exe /v 192.168.1.10:1350। यदि आप एकाधिक RDP कनेक्शन प्रबंधित करने के लिए RDCMan का उपयोग कर रहे हैं, तो आप कनेक्शन सेटिंग्स टैब में आपके द्वारा कॉन्फ़िगर किए गए RDP पोर्ट को निर्दिष्ट कर सकते हैं। - फिर आप नए RDP पोर्ट का उपयोग करके कंप्यूटर के रिमोट डेस्कटॉप से सफलतापूर्वक कनेक्ट करेंगे। आप
netstat –na | Find "LIST"कमांड का उपयोग करके यह सुनिश्चित कर सकते हैं कि आपकी रिमोट डेस्कटॉप सेवा नए पोर्ट पर सुन रही है।
ध्यान दें कि UDP RDP पोर्ट नंबर भी स्वचालित रूप से 1350 पर बदल गया (आप इसे TCPView टूल से जांच सकते हैं)।
Test-NetConnection कमांड का उपयोग करके जांचें कि डिफ़ॉल्ट RDP पोर्ट 3389 अब बंद है (TcpTestSucceeded: False):
Test-NetConnection 192.168.3.102 -port 3389 |select TcpTestSucceeded
अब आपको RDP कनेक्शन के लिए नए पोर्ट 1350 का उपयोग करना होगा।
नोट: यदि आप डिफ़ॉल्ट RDP लिसनिंग पोर्ट नंबर बदलते हैं, तो आपको Windows 10 में रिमोट असिस्टेंस, शैडो RDP कनेक्शन, साथ ही Windows Server पर RDS शैडोइंग का उपयोग करने में कुछ परेशानी हो सकती है।
यदि आप डोमेन कंप्यूटर्स पर RDP पोर्ट नंबर बदलना चाहते हैं, तो आप ग्रुप पॉलिसी सुविधाओं का उपयोग कर सकते हैं। एक नया GPO बनाएं जो नए RDP पोर्ट नंबर के साथ PortNumber रजिस्ट्री पैरामीटर को डोमेन कंप्यूटर्स पर तैनात करेगा।
PowerShell के साथ RDP लिसनिंग पोर्ट नंबर बदलें
RDP पोर्ट नंबर बदलने, फ़ायरवॉल नियम बनाने, और रिमोट डेस्कटॉप सेवा को पुनरारंभ करने के लिए एक पूर्ण PowerShell स्क्रिप्ट इस तरह दिख सकती है:
Write-host "Specify the number of your new RDP port: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value $RDPPort
New-NetFirewallRule -DisplayName "NewRDPPort-TCP-In-$RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "NewRDPPort-UDP-In-$RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol UDP -Action Allow
Restart-Service termservice -force
Write-host "The number of the RDP port has been changed to $RDPPort " -ForegroundColor Magenta
आप रिमोट कंप्यूटर पर RDP पोर्ट नंबर बदल सकते हैं। ऐसा करने के लिए, आपको रिमोट कंप्यूटर पर WinRM सक्षम करने की आवश्यकता है, और फिर आप कंप्यूटर से कनेक्ट करने के लिए Invoke-Command कमांडलेट का उपयोग कर सकते हैं:
Invoke-Command -ComputerName wksname112 -ScriptBlock {Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value 1350}
यदि आपको अपने AD डोमेन में कई कंप्यूटर्स पर RDP नंबर रिमोटली बदलने की आवश्यकता है (विशिष्ट OU में), तो निम्न स्क्रिप्ट का उपयोग करें (आप Get-ADComputer कमांडलेट का उपयोग करके OU में कंप्यूटर्स की सूची प्राप्त कर सकते हैं):
Write-host "Specify the number of your new RDP port: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
$PCs = Get-ADComputer -Filter * -SearchBase "CN=IT,CN=Computers,CN=NY,DC=woshub,DC=com"
Foreach ($PC in $PCs) {
Invoke-Command -ComputerName $PC.Name -ScriptBlock {
param ($RDPPort)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value $RDPPort
New-NetFirewallRule -DisplayName "NewRDPPort-TCP-In-$RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "NewRDPPort-UDP-In-$RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
Restart-Service termservice -force
}
डिफ़ॉल्ट RDP पोर्ट बदलने के लिए यह गाइड Windows XP (Windows Server 2003) से शुरू होकर आधुनिक Windows 10, Windows 11, और Windows Server 2022 बिल्ड्स तक किसी भी Windows संस्करण के लिए उपयुक्त है।