Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Windows Server

पावरशेल रिमोटिंग (WinRM) को HTTPS पर कॉन्फ़िगर करना

डिफ़ॉल्ट रूप से, पावरशेल रिमोटिंग सत्र में ट्रैफ़िक एन्क्रिप्टेड होता है चाहे HTTP (TCP/5985) या HTTPS (TCP/5986) ट्रांसपोर्ट प्रोटोकॉल का उपयोग किया जाए। वैसे भी, सभी ट्रैफ़िक AES-256 कुंजी का उपयोग करके एन्क्रिप्टेड होता है। हालांकि, यदि आप अपने AD फ़ॉरेस्ट के बाहर या वर्कग्रुप में किसी रिमोट कंप्यूटर से कनेक्ट करते हैं (जहां Kerberos विश्वास संबंध स्थापित नहीं कर सकता), तो आप मैन-इन-द-मिडल हमलों के जोखिम में हैं। माइक्रोसॉफ्ट तीसरे पक्ष के कंप्यूटर्स से कनेक्ट करते समय PSRemoting के लिए हमेशा HTTPS ट्रांसपोर्ट का उपयोग करने की सिफारिश करता है।

इस लेख में, हम दिखाएंगे कि पावरशेल रिमोटिंग को HTTPS पर SSL सर्टिफिकेट का उपयोग करके कैसे कॉन्फ़िगर करें। HTTPS पर PSRemoting सत्र आपके AD डोमेन/फ़ॉरेस्ट के बाहर के कंप्यूटर्स से कनेक्ट करते समय उच्च सत्र सुरक्षा स्तर प्रदान करते हैं।

नीचे दिए गए चरण बताते हैं कि उस रिमोट डिवाइस को कैसे कॉन्फ़िगर करें जिस पर Windows चल रहा है और जिससे आप पावरशेल रिमोटिंग का उपयोग करके HTTPS पर कनेक्ट करना चाहते हैं।

सुनिश्चित करें कि विंडोज में आपका नेटवर्क स्थान Private या Domain पर सेट है:

Get-NetConnectionProfile

WinRM और PSRemoting को कमांड का उपयोग करके सक्षम करें:

Enable-PSRemoting -Force

डोमेन में, आप GPO का उपयोग करके WinRM कॉन्फ़िगर कर सकते हैं।

WinRM के लिए HTTPS कॉन्फ़िगर करने के लिए, आपको पहले उस कंप्यूटर पर SSL सर्टिफिकेट बनाने की आवश्यकता है जिससे आप कनेक्ट करना चाहते हैं। सर्टिफिकेट का उपयोग WinRM ट्रैफ़िक को एन्क्रिप्ट करने के लिए किया जाएगा। पावरशेल का उपयोग करके सेल्फ-साइन सर्टिफिकेट बनाना आसान है। डोमेन वातावरण में, आप ऑटो-एनरोलमेंट का उपयोग करके WinRM सर्टिफिकेट्स को स्वचालित रूप से जारी कर सकते हैं।

कंप्यूटर नाम और उसके IP पते को सर्टिफिकेट के DNS नाम के रूप में निर्दिष्ट करें (यह सुविधाजनक है यदि आपके नेटवर्क में DNS सर्वर नहीं है)। आप सर्टिफिकेट के सब्जेक्ट अल्टरनेटिव नेम के लिए दोनों मान प्राप्त कर सकते हैं और पावरशेल के साथ सेल्फ-साइन सर्टिफिकेट जनरेट कर सकते हैं:

$hostName = $env:COMPUTERNAME
$hostIP=(Get-NetAdapter| Get-NetIPAddress).IPv4Address|Out-String
$srvCert = New-SelfSignedCertificate -DnsName $hostName,$hostIP -CertStoreLocation Cert:\LocalMachine\My
$srvCert

नया SSL सर्टिफिकेट कंप्यूटर पर पर्सनल सर्टिफिकेट स्टोर में दिखाई देगा।

डिफ़ॉल्ट रूप से, विंडोज में पावरशेल रिमोटिंग के लिए दो लिसनर्स अलग-अलग पोर्ट्स पर बनाए जाते हैं:

  • पोर्ट 5985 पर HTTP
  • पोर्ट 5986 पर HTTPS

आप सक्रिय WSMan लिसनर्स की सूची इस प्रकार प्राप्त कर सकते हैं:

Get-ChildItem wsman:\localhost\Listener

डिफ़ॉल्ट HTTP और HTTPS लिसनर्स को हटाएं:

Get-ChildItem wsman:\localhost\Listener\ | Where-Object -Property Keys -like 'Transport=HTTP*' | Remove-Item -Recurse

एक नया HTTPS लिसनर बनाएं और अपना सर्टिफिकेट इससे बाइंड करें:

New-Item -Path WSMan:\localhost\Listener\ -Transport HTTPS -Address * -CertificateThumbPrint $srvCert.Thumbprint -Force

विंडोज फ़ायरवॉल नियम बनाएं जो WinRM HTTPS ट्रैफ़िक की अनुमति देता है या सुनिश्चित करें कि यह सक्रिय है:

New-NetFirewallRule -Displayname 'WinRM - Powershell remoting HTTPS-In' -Name 'WinRM - Powershell remoting HTTPS-In' -Profile Any -LocalPort 5986 -Protocol TCP

WinRM सेवा को पुनरारंभ करें:

Restart-Service WinRM

आप इस कमांड का उपयोग करके जांच सकते हैं कि WinRM HTTPS लिसनर किस सर्टिफिकेट थंबप्रिंट से बंधा है:

WinRM e winrm/config/listener

रिमोट होस्ट कॉन्फ़िगर हो गया है। अब आपको SSL सर्टिफिकेट को CER फ़ाइल में एक्सपोर्ट करना होगा:

Export-Certificate -Cert $srvCert -FilePath c:\PS\SSL_PS_Remoting.cer

ध्यान रखें कि WinRM सर्वर और क्लाइंट कॉन्फ़िगरेशन डिफ़ॉल्ट रूप से अनएन्क्रिप्टेड कनेक्शन की अनुमति नहीं देते:

dir WSMan:\localhost\Service | ? Name -eq AllowUnencrypted
dir WSMan:\localhost\Client | ? Name -eq AllowUnencrypted

यदि आवश्यक हो, तो आप अनएन्क्रिप्टेड कनेक्शन को इस प्रकार अक्षम कर सकते हैं:

winrm set winrm/config/service '@{AllowUnencrypted="false"}'
winrm set winrm/config/client '@{AllowUnencrypted="false"}'

CER फ़ाइल को एडमिन कंप्यूटर पर कॉपी करें और नीचे दिए गए कमांड का उपयोग करके इसे इम्पोर्ट करें (या GPO का उपयोग करके सर्टिफिकेट को अन्य कंप्यूटर्स पर तैनात करें):

Import-Certificate -FilePath c:\PS\SSL_PS_Remoting.cer -CertStoreLocation Cert:\LocalMachine\root\

फिर, WinRM HTTPS का उपयोग करके रिमोट विंडोज होस्ट से कनेक्ट करने के लिए, आपको Enter-PSSession और Invoke-Command cmdlets में -UseSSL तर्क का उपयोग करना होगा। निम्न उदाहरण में, हम पावरशेल कंसोल से इसके IP पते द्वारा रिमोट होस्ट से कनेक्ट करेंगे (ध्यान दें कि हमने इस IP पते को TrustedHosts में नहीं जोड़ा है):

$SessionOption = New-PSSessionOption -SkipCNCheck
Enter-PSSession -Computername 192.168.13.4 -UseSSL -Credential maxbak -SessionOption $SessionOption

IP पते से SkipCNCheck विकल्प के बिना कनेक्ट करते समय, निम्न त्रुटि होती है: SSL सर्टिफिकेट में एक कॉमन नेम (CN) होता है जो होस्टनाम से मेल नहीं खाता।

  1. IIS वेबसाइट पर केरबेरोस ऑथेंटिकेशन कॉन्फिगर करना IIS वेबसाइट पर केरबेरोस ऑथेंटिकेशन कॉन्फिगर करना

    यहां Windows Server 2012 R2 पर चल रही IIS वेबसाइट पर ट्रांसपेरेंट SSO (सिंगल साइन-ऑन) केरबेरोस डोमेन यूजर ऑथेंटिकेशन कॉन्फिगर करने के लिए चरण-दर-चरण गाइड है। अपने वेब सर्वर पर IIS मैनेजर शुरू करें, आवश्यक वेबसाइट चुनें और Authentication सेक्शन पर जाएं। जैसा कि आप देख सकते हैं, डिफ़ॉल्ट रूप से केवल

  1. BITS और PowerShell का उपयोग करके अविश्वसनीय नेटवर्क पर बड़ी फाइलें कॉपी करना BITS और PowerShell का उपयोग करके अविश्वसनीय नेटवर्क पर बड़ी फाइलें कॉपी करना

    एक नियम के रूप में, लोकल और ग्लोबल नेटवर्क में, फाइलें SMB, FTP या HTTP प्रोटोकॉल का उपयोग करके डिवाइसेज के बीच ट्रांसफर की जाती हैं। इन सभी प्रोटोकॉल की समस्या बड़ी फाइलों के डाउनलोड को रिज्यूम करने में कुछ परेशानियां हैं, जो और भी बदतर हो सकती हैं यदि नेटवर्क धीमा या अविश्वसनीय है। इसके अलावा, इन

  1. Windows 10 पर DNS over HTTPS (DoH) सक्षम करना Windows 10 पर DNS over HTTPS (DoH) सक्षम करना

    DNS over HTTPS (DoH) सपोर्ट Windows 10 2004 बिल्ड (मई 2020 अपडेट) में आया। अब Windows 10 बिल्ट-इन DoH क्लाइंट का उपयोग करके HTTPS प्रोटोकॉल पर नामों को हल कर सकता है। इस लेख में हम बताएंगे कि DNS over HTTPS प्रोटोकॉल किस लिए उपयोग किया जाता है, और नवीनतम Windows 10 बिल्ड पर इसे कैसे सक्षम और उपयोग क