Windows Remote Management บนโดเมนที่ไม่น่าเชื่อถือ


12

ฉันกำลังพยายามเปิดใช้งานการจัดการระยะไกลของ Windows (โดยเฉพาะ, Powershell Remoting) ระหว่าง 2 โดเมนที่ไม่น่าเชื่อถือและไม่มีโชค

คำอธิบายสั้น ๆ เกี่ยวกับการตั้งค่าของฉัน:

  • domain1 - เวิร์กสเตชันของฉันอยู่ในโดเมนนี้
  • domain2 - เซิร์ฟเวอร์ที่ฉันต้องการเชื่อมต่ออยู่ในโดเมนนี้

ไม่มีความน่าเชื่อถือระหว่างโดเมนเหล่านี้

ฉันพยายามสร้างการเชื่อมต่อระยะไกล Powershell โดยใช้คำสั่งต่อไปนี้จากเวิร์กสเตชันของฉัน (เข้าร่วมกับ domain1):

พารามิเตอร์ (
    [Parameter (บังคับ = $ ทรู)]
    $ เซิร์ฟเวอร์
)

$ username = "domain \ user"
$ password = read-host "ป้อนรหัสผ่านสำหรับ $ username" -AsSecureString

$ หนังสือรับรอง = ระบบวัตถุใหม่การจัดการ -Automation.PSCredential ($ ชื่อผู้ใช้ $ รหัสผ่าน)

$ session = New-PSSession "$ server" -Authentication CredSSP -Credential $ credential -UseSSL -SessionOption (ใหม่ -PSSessionOption -SkipCACheck -SkipCNCheck)
เข้าสู่เซสชัน PSSession $

ซึ่งผลลัพธ์ในข้อความแสดงข้อผิดพลาดต่อไปนี้:

ใหม่ -PSSession: [computername.domain2.com] การเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล computername.domain2.com ล้มเหลวด้วยข้อความแสดงข้อผิดพลาดต่อไปนี้: ไคลเอนต์ WinRM
ไม่สามารถดำเนินการตามคำขอ นโยบายคอมพิวเตอร์ไม่อนุญาตให้มีการมอบสิทธิ์ของผู้ใช้ไปยังคอมพิวเตอร์เป้าหมายเพราะคอมพิวเตอร์ไม่น่าเชื่อถือ ตัวตนของเป้าหมาย
คอมพิวเตอร์สามารถตรวจสอบได้หากคุณกำหนดค่าบริการ WSMAN เพื่อใช้ใบรับรองที่ถูกต้องโดยใช้คำสั่งต่อไปนี้: winrm set winrm / config / service '@ {CertificateThumbprint = ""}' หรือ
คุณสามารถตรวจสอบ Event Viewer สำหรับเหตุการณ์ที่ระบุว่าไม่สามารถสร้าง SPN ต่อไปนี้: WSMAN / หากคุณพบกิจกรรมนี้คุณสามารถสร้าง SPN ด้วยตนเองได้
setspn.exe ถ้า SPN มีอยู่แล้ว แต่ CredSSP ไม่สามารถใช้ Kerberos เพื่อตรวจสอบข้อมูลประจำตัวของคอมพิวเตอร์เป้าหมายและคุณยังต้องการอนุญาตการมอบหมายข้อมูลรับรองผู้ใช้ไปยังเป้าหมาย
คอมพิวเตอร์ใช้ gpedit.msc และดูนโยบายต่อไปนี้: การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> ระบบ -> การมอบหมายข้อมูลรับรอง -> อนุญาตให้ใช้ข้อมูลรับรองใหม่ด้วย NTLM เท่านั้น
การตรวจสอบเซิร์ฟเวอร์ ตรวจสอบว่าเปิดใช้งานและกำหนดค่าด้วย SPN ที่เหมาะสมกับคอมพิวเตอร์เป้าหมาย ตัวอย่างเช่นสำหรับชื่อคอมพิวเตอร์เป้าหมาย "myserver.domain.com" SPN สามารถเป็นได้
หนึ่งในสิ่งต่อไปนี้: WSMAN / myserver.domain.com หรือ WSMAN / *. domain.com ลองคำขออีกครั้งหลังจากการเปลี่ยนแปลงเหล่านี้ สำหรับข้อมูลเพิ่มเติมดูหัวข้อ about_Remote_Troubleshooting Help

ฉันได้ลอง / ตรวจสอบสิ่งต่าง ๆ ต่อไปนี้แล้ว:

  1. ฉันตรวจสอบว่ามี SPN สำหรับทั้ง WSMAN \ computername & WSMAN \ computername.domain2.com ใน domain2
  2. ตรวจสอบว่าการกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> ระบบ -> การมอบหมายหนังสือรับรอง -> อนุญาตการรับรองใหม่ที่มีการรับรองความถูกต้องของเซิร์ฟเวอร์ NTLM- อย่างเดียว
  3. กำหนดค่า winrm บนคอมพิวเตอร์เป้าหมายเพื่อใช้ ssl
  4. กำหนดค่า CredSSP บนคอมพิวเตอร์เป้าหมายและเวิร์กสเตชันท้องถิ่นของฉันโดยใช้คำสั่งต่อไปนี้:
Enable-WSManCredSSP -Role Server # บนคอมพิวเตอร์เป้าหมาย
Enable-WSManCredSSP -Role Client -DelegateComputer * -Force
  1. ฉันตรวจสอบแล้วว่าไม่มีกฎ FW ไม่ว่าจะเป็นในเครื่องคอมพิวเตอร์หรือเครือข่ายกำลังบล็อกการเข้าถึงของฉัน

ไม่มีสิ่งใดที่อนุญาตให้ฉันเชื่อมต่อกับคอมพิวเตอร์เป้าหมายในโดเมน 2 จากเวิร์กสเตชันของฉันในโดเมน 1 ได้สำเร็จ ฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์อื่นที่เข้าร่วมกับ domain1 ได้สำเร็จไม่ใช่แค่เซิร์ฟเวอร์ในโดเมน 2 มีอะไรอีกบ้างที่ฉันควรจะมองหาและ / หรือพยายามทำให้มันใช้งานได้?

อัพเดท 06/08/2015 ที่ จริงฉันสามารถตรวจสอบได้ว่าฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์จากเวิร์กสเตชันของฉันได้โดยไม่ต้องใช้ CredSSP ซึ่งน่าจะใช้ได้ อย่างไรก็ตามฉันต้องสามารถเรียกใช้สคริปต์กับ SharePoint และทำได้โดยไม่ต้อง CredSSP ล้มเหลวด้วยข้อผิดพลาดการอนุญาต


คุณได้พยายามที่เฉพาะเจาะจงมากขึ้นเกี่ยวกับสิ่งที่คุณมอบหมายให้ข้อมูลประจำตัวของคุณ? ตัวอย่างเช่นEnable-WSManCredSSP -Role Client -DelegateComputer WSMAN/computername.domain2.com( msdn.microsoft.com/en-us/library/ee309365(v=vs.85).aspx , จุดที่ 3)
john

นอกจากนี้ยังมีสิ่งนี้: serverfault.com/questions/277573/…
john

น่าเสียดายที่ข้อเสนอแนะเหล่านั้นไม่ได้ผล
Nick DeMayo

1
คุณได้ตรวจสอบmsdn.microsoft.com/en-us/library/ee309365(v=vs.85).aspx
2320464

1
oooo! ฉันพบคำตอบในบทความที่คุณเชื่อมโยงด้วย ฉันได้ลองในการตั้งค่าที่ผ่านมา "AllowFreshCredentialsDomain" เพื่อมี SPN แต่นั่นไม่ได้ทำงาน ปรากฎฉันสามารถตั้งค่า "AllowFreshCredentialsWhenNTLMOnly" และ "AllowFreshCredentialsWhenNTLMOnlyDomain" และใช้งานได้! user2320464 ถ้าคุณสามารถโพสต์ความคิดเห็นของคุณเป็นคำตอบฉันจะยอมรับมันและคุณจะได้รับรางวัล!
Nick DeMayo

คำตอบ:


2

นี้MSDNแสดงบทความวิธีการ WinRM กำหนดค่าสำหรับการสนับสนุนหลายปฮอปที่ยังอยู่ทำให้การเชื่อมต่อเมื่อ Kerberos ไม่ได้ตัว สรุปสั้น ๆ ด้านล่าง

Windows Remote Management (WinRM) รองรับการมอบสิทธิ์ของผู้ใช้ในคอมพิวเตอร์ระยะไกลหลายเครื่อง ขณะนี้ฟังก์ชั่นการสนับสนุน multi-hop สามารถใช้ Credential Security Service Provider (CredSSP) เพื่อตรวจสอบความถูกต้องได้ CredSSP เปิดใช้งานแอปพลิเคชันเพื่อมอบหมายข้อมูลประจำตัวของผู้ใช้จากคอมพิวเตอร์ไคลเอนต์ไปยังเซิร์ฟเวอร์เป้าหมาย

การรับรองความถูกต้อง CredSSP มีไว้สำหรับสภาพแวดล้อมที่ไม่สามารถใช้การมอบหมาย Kerberos เพิ่มการรองรับ CredSSP เพื่อให้ผู้ใช้เชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลและมีความสามารถในการเข้าถึงเครื่องที่สองเช่นการแชร์ไฟล์

โดยเฉพาะอย่างยิ่งส่วนในบทความที่เกี่ยวข้องกับการตั้งค่านโยบายรายการ / กลุ่มรีจิสทรี AllowFreshCredentialsWhenNTLM เฉพาะการแก้ไขปัญหาที่ฉันมี จากบทความ:

หากไม่มีการตรวจสอบสิทธิ์ Kerberos หรือรหัสประจำตัวของใบรับรองผู้ใช้สามารถเปิดใช้งานการรับรองความถูกต้อง NTLM หากใช้การรับรองความถูกต้อง NTLM จะต้องเปิดใช้งานนโยบายอนุญาตให้ใช้ข้อมูลรับรองใหม่ที่มีการตรวจสอบความถูกต้องเซิร์ฟเวอร์ NTLM เท่านั้น (AllowFreshCredentialsWhenNTLMOnly) และจะต้องเพิ่ม SPN พร้อมคำนำหน้า WSMAN ในนโยบาย การตั้งค่านี้มีความปลอดภัยน้อยกว่าทั้งการรับรองความถูกต้อง Kerberos และรหัสประจำตัวของใบรับรองเนื่องจากข้อมูลประจำตัวถูกส่งไปยังเซิร์ฟเวอร์ที่ไม่ได้ตรวจสอบความถูกต้อง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับนโยบาย AllowFreshCredentialsWhenNTLMOnly ดูคำอธิบายนโยบายที่จัดทำโดยตัวแก้ไขนโยบายกลุ่มและ KB 951608 นโยบาย AllowFreshCredentialsWhenNTLMOnly ตั้งอยู่ที่เส้นทางต่อไปนี้: การกำหนดค่าคอมพิวเตอร์เทมเพลต \ System \ ข้อมูลรับรอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.