Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้

ในบทความนี้ เราจะแสดงวิธีใช้ใบรับรอง SSL/TLS ที่เชื่อถือได้เพื่อรักษาความปลอดภัยการเชื่อมต่อ RDP กับคอมพิวเตอร์หรือเซิร์ฟเวอร์ Windows ในโดเมน Active Directory เราจะใช้ใบรับรอง SSL ที่เชื่อถือได้แทนค่าเริ่มต้นของใบรับรอง RDP ที่ลงชื่อด้วยตนเอง (จากนั้นใช้ใบรับรอง RDP ที่ลงชื่อด้วยตนเอง ผู้ใช้จะได้รับคำเตือนว่าใบรับรองไม่น่าเชื่อถือเมื่อเชื่อมต่อกับโฮสต์) ในตัวอย่างนี้ เราจะกำหนดค่าเทมเพลตใบรับรอง RDP ที่กำหนดเองในผู้ออกใบรับรองและนโยบายกลุ่มเพื่อออกและผูกใบรับรอง SSL/TLS กับบริการเดสก์ท็อประยะไกลโดยอัตโนมัติ

คำเตือนเกี่ยวกับใบรับรองที่ลงชื่อด้วยตนเองเกี่ยวกับการเชื่อมต่อเดสก์ท็อประยะไกล (RDP)

ตามค่าเริ่มต้น เพื่อรักษาความปลอดภัยเซสชัน RDP Windows จะสร้างใบรับรองที่ลงนามเอง ระหว่างการเชื่อมต่อครั้งแรกกับโฮสต์ RDP/RDS โดยใช้ไคลเอ็นต์ mstsc.exe ผู้ใช้จะเห็นคำเตือนต่อไปนี้:

The remote computer could not be authenticated due to problems with its security certificate. It may be unsafe to proceed.
Certificate error: The certificate is not from a trusted certifying authority.

ในการดำเนินการและสร้างการเชื่อมต่อ RDP ผู้ใช้ต้องคลิก ใช่ . เพื่อป้องกันไม่ให้คำเตือนใบรับรอง RDP ปรากฏขึ้นทุกครั้ง ให้ทำเครื่องหมายที่ตัวเลือก “ไม่ต้องถามฉันอีกสำหรับการเชื่อมต่อกับคอมพิวเตอร์เครื่องนี้”
การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้

ในกรณีนี้ รหัสประจำตัวของใบรับรอง RDP จะถูกบันทึกไว้ใน CertHash พารามิเตอร์ของรีจิสตรีคีย์ที่มีประวัติการเชื่อมต่อ RDP บนไคลเอนต์ (HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\ ). หากคุณซ่อนคำเตือนว่าไม่สามารถตรวจสอบเซิร์ฟเวอร์ RDP ได้ ให้นำรหัสประจำตัวของใบรับรองออกจากรีจิสทรีเพื่อรีเซ็ตการตั้งค่า

การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้

แม้ว่าใบรับรองที่ลงนามเองจะใช้เพื่อสร้างการเชื่อมต่อ แต่เซสชัน RDP ของคุณนั้นปลอดภัยและการรับส่งข้อมูลของคุณได้รับการเข้ารหัส

สร้างเทมเพลตใบรับรอง RDP ในผู้ออกใบรับรอง (CA)

มาลองใช้ใบรับรอง SSL/TLS ที่เชื่อถือได้ซึ่งออกโดยผู้ออกใบรับรองขององค์กรเพื่อรักษาความปลอดภัยในการเชื่อมต่อ RDP เมื่อใช้ใบรับรองนี้ ผู้ใช้สามารถตรวจสอบเซิร์ฟเวอร์ RDP เมื่อเชื่อมต่อ สมมติว่ามีการนำ Microsoft Certificate Authority ขององค์กรไปใช้ในโดเมนของคุณแล้ว ในกรณีนี้ คุณสามารถกำหนดค่าการออกใบรับรองอัตโนมัติและการเชื่อมต่อของใบรับรองกับคอมพิวเตอร์และเซิร์ฟเวอร์ Windows ทั้งหมดในโดเมนได้

คุณต้องสร้างเทมเพลตใบรับรองประเภทใหม่สำหรับโฮสต์ RDP/RDS ใน CA ของคุณ:

  1. เรียกใช้คอนโซลผู้ออกใบรับรองและไปที่ส่วนเทมเพลตใบรับรอง
  2. ทำซ้ำแม่แบบใบรับรองคอมพิวเตอร์ (แม่แบบใบรับรอง -> จัดการ -> คอมพิวเตอร์ -> ทำซ้ำ);
    การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้
  3. ใน ทั่วไป แท็บ ระบุชื่อเทมเพลตใบรับรองใหม่ – RDPTemplate . ตรวจสอบให้แน่ใจว่าค่าใน ชื่อเทมเพลต ฟิลด์ตรงกับ ชื่อที่แสดงของเทมเพลต
    การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้
  4. ใน ความเข้ากันได้ ระบุเวอร์ชันไคลเอ็นต์ขั้นต่ำที่ใช้ในโดเมนของคุณ (เช่น Windows Server 2008 R2 สำหรับ CA และ Windows 7 สำหรับไคลเอ็นต์ของคุณ) ดังนั้นจะใช้อัลกอริธึมการเข้ารหัสที่แข็งแกร่งขึ้น
  5. จากนั้น ในส่วนนโยบายแอปพลิเคชันของ ส่วนขยาย แท็บ จำกัดขอบเขตการใช้ใบรับรองเป็น การตรวจสอบสิทธิ์เดสก์ท็อประยะไกล เท่านั้น (ป้อนตัวระบุวัตถุต่อไปนี้ — 1.3.6.1.4.1.311.54.1.2 ). คลิก เพิ่ม -> ใหม่ สร้างนโยบายใหม่ แล้วเลือก;
    การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้
  6. ในการตั้งค่าเทมเพลตใบรับรอง (ส่วนขยายนโยบายแอปพลิเคชัน) ให้ลบนโยบายทั้งหมดยกเว้น การตรวจสอบสิทธิ์เดสก์ท็อประยะไกล; การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้
  7. หากต้องการใช้เทมเพลตใบรับรอง RDP นี้บนตัวควบคุมโดเมนของคุณ ให้เปิดความปลอดภัย ให้เพิ่ม Domain Controllers กลุ่มและเปิดใช้งาน ลงทะเบียน และ ลงทะเบียนอัตโนมัติ ตัวเลือกสำหรับมัน;
    การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้
  8. บันทึกเทมเพลตใบรับรอง
  9. จากนั้นในสแน็ปอิน mmc ของผู้ออกใบรับรอง ให้คลิกโฟลเดอร์เทมเพลตใบรับรอง แล้วเลือก สร้าง -> เทมเพลตใบรับรองที่จะออก -> เลือกเทมเพลตที่คุณสร้าง (RDPTemplate );
    การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้

จะปรับใช้ใบรับรอง RDP SSL/TLS โดยใช้นโยบายกลุ่มได้อย่างไร

ตอนนี้ คุณต้องกำหนดค่าโดเมน GPO เพื่อกำหนดใบรับรอง RDP ให้กับคอมพิวเตอร์/เซิร์ฟเวอร์โดยอัตโนมัติตามเทมเพลตที่กำหนดค่าไว้

คาดว่าคอมพิวเตอร์โดเมนทั้งหมดเชื่อถือผู้ออกใบรับรองขององค์กร เช่น ใบรับรองหลักได้รับการเพิ่มไปยังผู้ออกใบรับรองหลักที่เชื่อถือได้โดยใช้ GPO
  1. เปิดคอนโซลการจัดการนโยบายกลุ่มของโดเมน (gpmc.msc) สร้างวัตถุ GPO ใหม่และเชื่อมโยงกับ OU ที่มีเซิร์ฟเวอร์ RDP/RDS หรือคอมพิวเตอร์เพื่อออกใบรับรอง TLS โดยอัตโนมัติเพื่อรักษาความปลอดภัยการเชื่อมต่อ RDP
  2. ไปที่ส่วน GPO ต่อไปนี้ การกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> เทมเพลตการดูแล -> ส่วนประกอบของ Windows -> บริการเดสก์ท็อประยะไกล -> โฮสต์เซสชันเดสก์ท็อประยะไกล -> ความปลอดภัย เปิดใช้งาน เทมเพลตใบรับรองการตรวจสอบเซิร์ฟเวอร์ นโยบาย. ระบุชื่อเทมเพลต CA ที่คุณสร้างไว้ก่อนหน้านี้ (RDPTemplate );
    การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้
  3. จากนั้นในส่วน GPO เดียวกัน ให้เปิดใช้งาน ต้องใช้เลเยอร์ความปลอดภัยเฉพาะสำหรับการเชื่อมต่อระยะไกล (RDP)  นโยบายและตั้งค่า SSL สำหรับมัน; การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้
  4. หากต้องการต่ออายุใบรับรอง RDP โดยอัตโนมัติ ให้ไปที่การกำหนดค่าคอมพิวเตอร์ -> การตั้งค่า Windows -> การตั้งค่าความปลอดภัย -> ส่วนนโยบายคีย์สาธารณะของ GPO และเปิดใช้งาน Certificate Services Client – ​​คุณสมบัติการลงทะเบียนอัตโนมัติ นโยบาย. ตรวจสอบ “ต่ออายุใบรับรองที่หมดอายุ อัปเดตใบรับรองที่รอดำเนินการ และลบใบรับรองที่ถูกเพิกถอน ” และ “อัปเดตใบรับรองที่ใช้เทมเพลตใบรับรอง " ตัวเลือก; การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้
  5. ถ้าคุณต้องการให้ลูกค้าของคุณตรวจสอบใบรับรองเซิร์ฟเวอร์ RDP เสมอ คุณต้องกำหนดค่า กำหนดค่าการตรวจสอบสิทธิ์สำหรับไคลเอ็นต์ =เตือนฉันหากการตรวจสอบสิทธิ์ล้มเหลว นโยบาย (การกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> เทมเพลตการดูแลระบบ -> คอมโพเนนต์ของ Windows -> การตั้งค่าเดสก์ท็อประยะไกล -> ไคลเอ็นต์การเชื่อมต่อเดสก์ท็อประยะไกล)
  6. หากจำเป็น ให้เปิดพอร์ต RDP TCP/UDP 3389 ขาเข้าโดยใช้นโยบายไฟร์วอลล์
  7. จากนั้นอัปเดตการตั้งค่านโยบายกลุ่มบนคอมพิวเตอร์ไคลเอนต์ เปิดคอนโซลใบรับรองคอมพิวเตอร์ (Certlm.msc ) และตรวจสอบให้แน่ใจว่าใบรับรองการตรวจสอบสิทธิ์เดสก์ท็อประยะไกลที่ออกโดย CA ของคุณปรากฏในส่วนส่วนบุคคล -> ใบรับรอง
หากไม่ได้ใช้การตั้งค่านโยบายกลุ่มใหม่ ให้ใช้เครื่องมือ gpresult และบทความนี้เพื่อวินิจฉัย

การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้

หากต้องการใช้ใบรับรอง RDP ใหม่ ให้เริ่มบริการเดสก์ท็อประยะไกลใหม่:

Get-Service TermService -ComputerName mun-dc01| Restart-Service –force –verbose

หลังจากนั้น เมื่อเชื่อมต่อกับเซิร์ฟเวอร์โดยใช้ RDP คุณจะไม่เห็นคำขอให้ยืนยันว่าใบรับรองเชื่อถือได้ (หากต้องการดูคำขอ ให้เชื่อมต่อกับเซิร์ฟเวอร์ที่ออกใบรับรองเพื่อใช้ที่อยู่ IP แทน FQDN) คลิก ดู ใบรับรองไปที่ รายละเอียด แท็บและคัดลอกค่าใน Thumbprint สนาม
การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้

ใน ใบรับรองที่ออก ของคอนโซลผู้ออกใบรับรอง คุณสามารถตรวจสอบให้แน่ใจว่าได้ออกใบรับรอง RDPTemplate สำหรับเซิร์ฟเวอร์/คอมพิวเตอร์ Windows ที่ระบุ ตรวจสอบใบรับรอง Thumbprint . ด้วย ค่า:

การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้

จากนั้นเปรียบเทียบรหัสประจำตัวนี้กับรหัสประจำตัวของใบรับรองที่ใช้โดยบริการเดสก์ท็อประยะไกล คุณสามารถดูค่าของรหัสประจำตัวใบรับรอง RDS ในรีจิสทรี (HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations , TemplateCertificate พารามิเตอร์) หรือใช้คำสั่ง PowerShell ต่อไปนี้:

Get-WmiObject -Class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices|select SSLCertificateSHA1Hash
การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้

จากนั้น เมื่อเชื่อมต่อกับเดสก์ท็อประยะไกลของโฮสต์ Windows คุณจะไม่เห็นคำเตือนเกี่ยวกับใบรับรอง RDP ที่ไม่น่าเชื่อถือ

การลงนามไฟล์ RDP ด้วยลายนิ้วมือใบรับรอง TLS ที่เชื่อถือได้

หากคุณไม่มี CA แต่ไม่ต้องการให้ผู้ใช้เห็นคำเตือนเมื่อเชื่อมต่อกับโฮสต์ RDP/RDS คุณสามารถเพิ่มใบรับรองไปยังใบรับรองที่เชื่อถือได้บนคอมพิวเตอร์ของผู้ใช้

รับค่าของรหัสประจำตัวใบรับรอง RDP ตามที่อธิบายไว้ข้างต้น:

Get-WmiObject -Class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices|select SSLCertificateSHA1Hash

ใช้ลายนิ้วมือนี้เพื่อลงนามในไฟล์ .RDP ด้วย RDPSign.exe เครื่องมือ:

rdpsign.exe /sha256 25A27B2947022CC11BAFF261234567DEB2ABC21 "C:\ps\mun-dc01.rdp"

จากนั้นเพิ่มรหัสประจำตัวนี้ในใบรับรองที่เชื่อถือได้บนคอมพิวเตอร์ของผู้ใช้โดยใช้ GPO ระบุรหัสประจำตัว (คั่นด้วยเครื่องหมายอัฒภาค) ใน ระบุรหัสประจำตัว SHA1 ของใบรับรองที่แสดงถึงผู้เผยแพร่ .rdp ที่เชื่อถือได้ นโยบายในการกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> เทมเพลตการดูแลระบบ -> คอมโพเนนต์ของ Windows -> การตั้งค่าเดสก์ท็อประยะไกล -> ไคลเอ็นต์การเชื่อมต่อเดสก์ท็อประยะไกล

การรักษาความปลอดภัยการเชื่อมต่อ RDP ด้วยใบรับรอง SSL/TLS ที่เชื่อถือได้

ในการกำหนดค่าการเข้าสู่ระบบ RDP แบบโปร่งใสโดยไม่ต้องป้อนรหัสผ่าน (RDP Single Sign On) ให้กำหนดค่า Allow delegation defaults credential นโยบายและระบุชื่อโฮสต์ RDP/RDS ในนั้น (ดูบทความนี้เกี่ยวกับวิธีการดำเนินการ)