ไม่กี่นาทีหลังจากไคลเอนต์ 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 ต้องการอุโมงค์ไปยังบริการเดียวเท่านั้น ให้วางไคลเอนต์บนเวิร์กสเตชันของคุณหรือสร้างลิงก์ระหว่างไซต์แทนการติดตั้งผลิตภัณฑ์สำหรับแล็ปท็อปบนเซิร์ฟเวอร์ ไคลเอนต์สำหรับผู้ใช้ทั่วไปมุ่งเป้าไปที่แล็ปท็อป และเซิร์ฟเวอร์ที่คุณดูแลจากระยะไกลไม่ใช่เช่นนั้น

บทความที่เกี่ยวข้อง