ค้นหาเว็บไซต์

การรักษาความปลอดภัยระยะไกลของ PowerShell โดยใช้จุดสิ้นสุดที่มีข้อจำกัด


PowerShell Remoting ถูกเปิดใช้งานใน Windows Server 2012 (และใหม่กว่า) แบบสำเร็จรูป และในขณะที่ร้านไอทีหลายแห่งมองว่านี่เป็นความเสี่ยงด้านความปลอดภัย แต่จริงๆ แล้ว PowerShell เป็นหนึ่งในวิธีที่ปลอดภัยที่สุดในการดูแลเซิร์ฟเวอร์หากแนวทางปฏิบัติที่ดีที่สุดคือ ตามมา ในบทความนี้ ฉันจะแสดงวิธีกำหนดค่า Windows Server 2012 R2 ให้ยอมรับการเชื่อมต่อ PowerShell ระยะไกลจากกลุ่มผู้ใช้เฉพาะ และวิธีการจำกัด cmdlets ที่สามารถเรียกใช้ได้

จุดสิ้นสุดที่ถูกจำกัดคืออะไร

ตำแหน่งข้อมูลระยะไกลจะกำหนดผู้ใช้ที่สามารถเชื่อมต่อกับอุปกรณ์ด้วย PowerShell Remoting รวมถึงสิ่งที่พวกเขาสามารถทำได้เมื่อได้รับการรับรองความถูกต้องแล้ว ตำแหน่งข้อมูล PowerShell เริ่มต้นช่วยให้ผู้ใช้ที่เป็นสมาชิกของกลุ่ม ผู้ดูแลระบบ และ ผู้ใช้การจัดการระยะไกล ในตัวเพื่อเชื่อมต่อจากระยะไกลและเปิดเผย cmdlets และฟังก์ชันที่มีอยู่ทั้งหมดบนอุปกรณ์

ข่าวดีก็คือคุณสามารถสร้างปลายทาง จำกัด ของคุณเองได้ และจำกัดสิ่งที่ผู้ใช้สามารถทำได้ ซึ่งช่วยให้คุณลดความเสี่ยงในการอนุญาตให้ PowerShell Remoting เพื่อวัตถุประสงค์ในการดูแลระบบได้

สร้างจุดสิ้นสุดที่มีข้อจำกัดใน Windows Server 2012 R2

มาสร้างจุดสิ้นสุดที่มีข้อจำกัดของเราเองใน Windows Server 2012 R2 เข้าสู่ระบบด้วยสิทธิ์ของผู้ดูแลระบบภายใน และคลิกไอคอน PowerShell สีน้ำเงินบนทาสก์บาร์ของเดสก์ท็อป

  • หากต้องการดูจุดสิ้นสุดที่มีอยู่บนเซิร์ฟเวอร์ ให้พิมพ์ Get-PSSessionConfiguration ในพรอมต์ PowerShell แล้วกด ENTER
  • ในคอนโซล PowerShell คุณควรเห็นจุดสิ้นสุดเริ่มต้นสี่จุด

หากต้องการจำกัด cmdlets และฟังก์ชันที่ผู้ใช้สามารถดำเนินการเมื่อเชื่อมต่อกับปลายทางที่มีข้อจำกัด เราจำเป็นต้องสร้างไฟล์การกำหนดค่า ในคอนโซล PowerShell ให้พิมพ์ cmdlet ที่แสดงด้านล่างแล้วกด ENTER New-PSSessionConfigurationFile สร้างไฟล์การกำหนดค่าใหม่ชื่อ PrintAdmin.pssc และตั้งค่าข้อจำกัดต่างๆ รวมถึงการจำกัดผู้ใช้ระยะไกลให้ใช้งานฟังก์ชันที่เป็นส่วนหนึ่งของโมดูล PrintManagement PowerShell .

ไฟล์ PSSessionConfiguration ใหม่ - เส้นทาง PrintAdmin.pssc - SessionType RestrictedRemoteServer -LanguageMode NoLanguage - ExecutionPolicy ถูกจำกัด - ModulesToImport PrintManagement -VisibleFunctions Get-Printer

NoLanguage จำกัดผู้ใช้ให้เรียกใช้เฉพาะ cmdlets และฟังก์ชัน กล่าวคือ ไม่สามารถใช้บล็อกสคริปต์ ตัวแปร หรือโอเปอเรเตอร์ได้ ค่า -SessionType RestrictedRemoteServer จำกัดผู้ใช้ให้ใช้ฟังก์ชันพร็อกซีต่อไปนี้: Exit-PSSession, Get-Command, <รับ-FormatData, รับความช่วยเหลือ, วัด-วัตถุ, ออก-ค่าเริ่มต้น และ เลือกวัตถุ . ค่า จำกัด สำหรับพารามิเตอร์ -ExecutionPolicy ยังป้องกันไม่ให้สคริปต์ทำงานอีกด้วย โปรดทราบว่ายังมีพารามิเตอร์ -VisibleCmdlets ที่สามารถใช้ได้หากโมดูลที่คุณต้องการนำเข้ามี cmdlets

ตอนนี้เรามีไฟล์การกำหนดค่าแล้ว เราสามารถลงทะเบียนปลายทางใหม่ที่เรียกว่า Helpdesk ได้:

ลงทะเบียน PSSessionConfiguration - ชื่อ Helpdesk -Path PrintAdmin.pssc -ShowSecurityDescriptorUI

คุณจะได้รับแจ้งให้ยืนยันว่าคุณต้องการกำหนดค่าตำแหน่งข้อมูลใหม่ เริ่มบริการ WinRM ใหม่ และกำหนดค่าสิทธิ์การเข้าถึงตำแหน่งข้อมูล ในตัวอย่างนี้ ฉันจะให้สิทธิ์แก่กลุ่มที่เรียกว่า Helpdesk 'ดำเนินการ (เรียกใช้)' บนปลายทางใหม่ อย่าลืมให้สิทธิ์กลุ่ม Helpdesk ในการจัดการเครื่องพิมพ์บนอุปกรณ์ระยะไกล ไม่เช่นนั้น get-printer จะล้มเหลว

หากคุณเรียกใช้ Get-PSSessionConfiguration อีกครั้ง คุณจะเห็นตำแหน่งข้อมูลใหม่อยู่ในรายการ

เชื่อมต่อกับปลายทางที่มีข้อจำกัด

ตอนนี้เชื่อมต่อกับปลายทางจากเครื่องระยะไกล เข้าสู่ระบบ Windows 8 ด้วยผู้ใช้ที่เป็นสมาชิกของกลุ่ม Helpdesk หรือกลุ่มที่คุณกำหนดสิทธิ์ไว้ที่ปลายทาง เปิดพรอมต์ PowerShell และเรียกใช้คำสั่งด้านล่าง โดยแทนที่ contososrv1 ด้วยชื่อของเซิร์ฟเวอร์ระยะไกล:

ป้อน-PSSession - ชื่อคอมพิวเตอร์ contososrv1 - โปรแกรมช่วยเหลือชื่อการกำหนดค่า

เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลแล้ว ข้อความแจ้งจะเปลี่ยนตามเพื่อระบุว่าคุณกำลังทำงานกับอุปกรณ์ระยะไกล พิมพ์ get-command แล้วกด ENTER แล้วคุณจะเห็นรายการฟังก์ชันและ cmdlets ที่ใช้งานได้ถูกจำกัดโดยปลายทาง ในตัวอย่างนี้ คุณจะเหลือฟังก์ชันพร็อกซี 7 ฟังก์ชันที่อนุญาตโดยประเภทเซสชัน RestrictedRemoteServer และฟังก์ชัน get-printer ที่ระบุในไฟล์การกำหนดค่าปลายทาง

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