RDP หยุดหลังติดตั้งไคลเอนต์ VPN? ไฟร์วอลล์คือต้นเหตุ
ตัวติดตั้ง VPN สำหรับผู้ใช้ทั่วไปอาจสลับโปรไฟล์ไฟร์วอลล์ของ Windows และตัด RDP กลับเข้าผ่านเอเจนต์เกสต์ แล้วจำกัดกฎให้เหลือพอร์ต 3389
ไม่กี่นาทีหลังจากไคลเอนต์ VPN สำหรับผู้ใช้ทั่วไปติดตั้งเสร็จ พอร์ทัลยังบอกว่า VM ทำงานอยู่ IP สาธารณะไม่เปลี่ยน และ RDP ไม่ตอบสนอง คนมักคิดว่า VM ล่มหรือกลุ่มความปลอดภัยของเครือข่ายเปลี่ยน และทั้งสองอย่างมักไม่ถูกต้อง สิ่งที่เปลี่ยนไปคือโปรไฟล์ไฟร์วอลล์ของ Windows ที่เครื่องอยู่ในนั้น และกฎ RDP ที่เคยตรงก็ไม่ตรงอีกต่อไป การซ่อมเริ่มจากการได้เชลล์ผ่านเส้นทางที่ไม่ขึ้นกับ RDP
VM ทำงานอยู่ กฎไม่ตรงอีกต่อไป
กฎไฟร์วอลล์ใน Windows มีชุดโปรไฟล์ และกฎที่จำกัดไว้ที่ส่วนตัวหรือโดเมนจะไม่มีผลตราบใดที่เครื่องอยู่ในโปรไฟล์สาธารณะ ตัวติดตั้ง VPN เพิ่มอะแดปเตอร์และเส้นทาง และหลายตัวก็เสริมความแข็งแรงของโปรไฟล์สาธารณะเป็นผลข้างเคียง ตัวรับฟังยังผูกกับ 3389 และแพ็กเก็ตยังมาถึง แต่ความไม่ตรงกันของโปรไฟล์ทิ้งพวกมัน
สถานะพลังงานและการเข้าถึงเป็นข้อเท็จจริงที่แยกจากกัน และ VM ที่ทำงานอยู่แต่พอร์ตปิดก็ดูจากภายนอกเหมือนตัวที่ล่ม
ทดสอบพอร์ตก่อนแก้อะไร การพยายามเชื่อมต่อ 3389 ที่หมดเวลาขณะที่คำสั่งของเอเจนต์เกสต์ยังคืนเอาต์พุตชี้ไปที่ไฟร์วอลล์ของโฮสต์ พอร์ตที่ตอบแต่ RDP ยังล้มเหลวหมายความว่าข้อบกพร่องอยู่เหนือชั้นเครือข่าย และการซ่อมนี้จะไม่แตะมัน บันทึกว่าคุณเห็นกรณีใดในสองกรณี เพราะแผนที่เหลือขึ้นกับสิ่งนั้น
ประตูสองบานปิดอย่างเป็นอิสระ
นโยบายแพลตฟอร์มทำงานก่อน กลุ่มความปลอดภัยของเครือข่ายเห็นแพ็กเก็ตก่อนเกสต์ ลำดับนั้นทำให้รายการ NSG ที่สมบูรณ์ไร้ประโยชน์เมื่อโฮสต์ทิ้งแพ็กเก็ต และทำให้กฎโฮสต์ที่เปิดอยู่ไร้ประโยชน์เมื่อแพลตฟอร์มปฏิเสธ มองว่าเป็นประตูแยกกันและทดสอบทีละบาน
อ่านกฎที่มีผลของ NSG ในพอร์ทัลหรือ CLI แล้วเทียบกับกฎของเกสต์เอง อย่าสันนิษฐานว่าการเปลี่ยนแปลงล่าสุดที่คุณจำได้คือสิ่งที่บังคับใช้
ไคลเอนต์สำหรับผู้ใช้ทั่วไปอาจติดตั้งไดรเวอร์ตัวกรองหรือคิลสวิตช์ที่บล็อกทราฟฟิกใต้ไฟร์วอลล์ของ Windows หากกฎไฟร์วอลล์ดูถูกต้องแต่พอร์ตยังล้มเหลว ชั้นนั้นคือผู้ต้องสงสัยรายต่อไป
ใช้เอเจนต์เกสต์เป็นเส้นทางกลับ
คุณสมบัติการเรียกใช้ระยะไกลสองอย่าง คือ Run Command และ Custom Script Extension ทำงานภายในเกสต์ผ่านเอเจนต์แพลตฟอร์ม ทั้งสองไม่ต้องใช้ RDP ความผิดพลาดของไฟร์วอลล์จึงไม่กระทบ ทั้งสองคืนเอาต์พุตของสคริปต์ ทำให้เป็นช่องทางวินิจฉัยและซ่อมพร้อมกัน
อ่านโปรไฟล์ที่ใช้งานและกฎ RDP ก่อนแก้ทั้งสองอย่าง:
Get-NetConnectionProfile
Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Select-Object Name, Enabled, Profile
การเปิดกฎขาเข้าบนโปรไฟล์นั้นอีกครั้งเป็นมาตรการชั่วคราว ไม่ใช่ปลายทาง ใช้เพื่อให้ได้เซสชัน แล้วปิดช่องโหว่อย่างถูกต้อง:
Set-NetFirewallProfile -Name Public -AllowInboundRules True
สวิตช์นั้นเปิดกฎขาเข้าทุกข้อของโปรไฟล์ ไม่ใช่แค่ RDP เมื่อได้เซสชันแล้ว ให้แทนที่ด้วยกฎที่จำกัดและคืนค่าที่คุณต้องการจริง ๆ หากเอเจนต์ใช้ไม่ได้เช่นกัน ทางเลือกสำรองคือคอนโซลอนุกรมหรือดิสก์ที่สร้างใหม่ และนี่คือเหตุผลเชิงปฏิบัติในการดูแลเอเจนต์ให้แข็งแรง
แคบช่องโหว่ก่อนปิดเซสชัน
การเปลี่ยนโปรไฟล์ชั่วคราวคือประตูที่เปิดไว้สำหรับกฎขาเข้าทุกข้อของโปรไฟล์นั้น แทนที่ด้วยกฎที่จำกัดเฉพาะที่อยู่ต้นทางและพอร์ต RDP ของคุณ แล้วยืนยันว่าโปรไฟล์กลับสู่สภาพที่ตั้งใจ ทำเช่นนี้ขณะที่ยังมีเซสชันอยู่ เพราะความผิดพลาดครั้งถัดไปอาจย้อนกลับจากระยะไกลไม่ได้ เตรียมเส้นทางบริหารที่สอง เช่น Bastion หรือคอนโซลอนุกรม ไว้ระหว่างการเปลี่ยนแปลง
ยืนยันผลจากเวิร์กสเตชันของคุณด้วยการทดสอบพอร์ต และจากภายในเกสต์ด้วยรายการกฎ:
Test-NetConnection -ComputerName 203.0.113.25 -Port 3389
Get-NetFirewallRule -DisplayName "RDP from admin" | Get-NetFirewallPortFilter
เปิดการบันทึกไฟร์วอลล์ตลอดการทดสอบ บรรทัดเดียวเกี่ยวกับแพ็กเก็ตที่ถูกทิ้งซึ่งระบุ 3389 และโปรไฟล์ที่ใช้งานตอบคำถามได้เร็วกว่าการรีบูตอีกครั้ง
ป้องกันไม่ให้ตัวติดตั้งครั้งถัดไปทำซ้ำ
หากโฮสต์นั้นไม่มีเหตุผลให้รันไคลเอนต์ ให้ถอนการติดตั้ง ไคลเอนต์ที่ติดตั้งไว้คือคำเชิญถาวรให้การอัปเดตครั้งถัดไปเขียนโปรไฟล์ใหม่ และคนถัดไปจะดีบักเหตุขัดข้องเดิมจากพอร์ทัล
ถ่ายสแนปช็อตของดิสก์ก่อนปล่อยให้สิ่งใดเขียนการตั้งค่าเครือข่ายใหม่ และเตรียมเส้นทางบริหารที่สองให้พร้อมก่อนจำเป็น
บันทึกว่าตัวติดตั้งเปลี่ยนอะไร: อะแดปเตอร์ เส้นทาง โปรไฟล์ไฟร์วอลล์ ไดรเวอร์ตัวกรอง และบริการ บันทึกนั้นเปลี่ยนเหตุการณ์ครั้งถัดไปให้เป็นรูปแบบที่รู้จักแทนการสอบสวนใหม่ เมื่อ VM ต้องการอุโมงค์ไปยังบริการเดียวเท่านั้น ให้วางไคลเอนต์บนเวิร์กสเตชันของคุณหรือสร้างลิงก์ระหว่างไซต์แทนการติดตั้งผลิตภัณฑ์สำหรับแล็ปท็อปบนเซิร์ฟเวอร์ ไคลเอนต์สำหรับผู้ใช้ทั่วไปมุ่งเป้าไปที่แล็ปท็อป และเซิร์ฟเวอร์ที่คุณดูแลจากระยะไกลไม่ใช่เช่นนั้น