ผ่านชื่อผู้ใช้และรหัสผ่าน UNC ภายในเส้นทาง UNC


23

เป็นไปได้หรือไม่ที่จะส่งชื่อผู้ใช้และรหัสผ่าน UNC ภายในเส้นทางของ UNC

คล้ายกับวิธีที่ FTP และ SMB สนับสนุนสิ่งนี้:

smb://user:pass@destination.com/share
ftp://user:pass@destination.com/share

ฉันพยายามรับบริการ (ที่ไม่ใช่โดเมน PC) เข้าถึงเส้นทาง DFS

มีวิธีอื่นอีกไหม? ฉันสามารถผูกพีซีกับโดเมนและเรียกใช้บริการในฐานะผู้ใช้โดเมน แต่ถ้าฉันใช้ Linux

คำตอบ:


20

บน Windowsคุณไม่สามารถใส่ข้อมูลรับรองในเส้นทาง UNC คุณจะต้องให้พวกเขาโดยใช้net use, runas /netonlyหรือเมื่อถูกถามโดย Windows (หากคุณมีทักษะการเขียนโปรแกรมบางอย่างคุณสามารถจัดเก็บรหัสผ่าน SMB เป็น "ข้อมูลรับรองโดเมน" โดยใช้CredWrite()ซึ่งเทียบเท่ากับการทำเครื่องหมายในช่อง "จดจำรหัสผ่าน" ใน Windows)

บน Linuxมันขึ้นอยู่กับโปรแกรม

  • Gvfs ของ GNOME ยอมรับuser@hostไวยากรณ์ แต่ดูเหมือนว่าจะไม่สนใจรหัสผ่านโดยสิ้นเชิง (อย่างไรก็ตามคุณสามารถเก็บไว้ใน GNOME Keyring ล่วงหน้าได้)

  • smbclientใช้ไวยากรณ์ UNC เดียวกับ Windows อย่างไรก็ตามมี--authentication-fileตัวเลือกที่สามารถอ่านข้อมูลรับรองได้

  • โปรแกรมทั้งสองข้างต้นใช้libsmbclientและสามารถใช้การตรวจสอบ Kerberos แทนรหัสผ่าน: การทำงานและการใช้งานkinit user@YOUR.DOMAIN smbclient -k //host/shareนี่คือความปลอดภัยมากกว่าการตรวจสอบรหัสผ่าน

โปรดทราบว่าการวางรหัสผ่านลงใน URL จะเลิกและคุณไม่ควรพึ่งพามันได้รับการสนับสนุนที่ใดก็ได้


คุณมีการอ้างอิงในเรื่อง "การใส่รหัสผ่านใน URIs นั้นเลิกใช้แล้ว" หรือไม่?
Alexis Wilke

2
@AlexisWilke RFC 1738 § 3.3เริ่มโดยไม่อนุญาตให้ใช้ใน HTTP, RFC 2396 § 3.2.2มีคำว่า "ไม่แนะนำ" ทั่วไปและRFC 3986 § 3.2.1ระบุว่า "การใช้รูปแบบ" ผู้ใช้: รหัสผ่านใน userinfo ฟิลด์เลิกใช้แล้ว "
grawity

14

คุณสามารถแมปไดรฟ์ "" เพื่อเส้นทาง UNC net useใช้ การเข้าถึงในอนาคตควรแบ่งปันการเชื่อมต่อที่มีอยู่

Net Use \\yourUNC\path /user:uname password

หมายเหตุ: คุณไม่จำเป็นต้องระบุอักษรระบุไดรฟ์


1

ฉันคิดว่าชื่อผู้ใช้และรหัสผ่านจะต้องถูกส่งผ่านไปยังเซิร์ฟเวอร์เพื่อการตรวจสอบสิทธิ์ก่อนที่จะสามารถเข้าถึงไฟล์ใด ๆ ได้ดังนั้นรหัสที่จัดการการเชื่อมต่อ SMB จะต้องสามารถแยกวิเคราะห์และเพิ่มชื่อผู้ใช้และรหัสผ่านจาก URL คุณจะต้องตรวจสอบว่ารหัสนั้นรองรับรูปแบบนี้หรือไม่

หากไม่เป็นเช่นนั้นคุณสามารถเชื่อมต่อ SMB นั้นผ่าน SAMBA และสั่งให้โปรแกรมของคุณใช้เส้นทาง "local" นั้น คุณสามารถใส่เมานต์fstabและใช้ไฟล์รหัสผ่าน SAMBA เพื่อระบุข้อมูลรับรองผู้ใช้ อย่าลืมตั้งค่าสิทธิ์ที่ถูกต้องให้กับไฟล์รหัสผ่านเพื่อให้ผู้ใช้ทั่วไปไม่สามารถอ่านได้

โปรดทราบว่ามันเป็นวิธีปฏิบัติที่ไม่ดีในการจัดเก็บรหัสผ่านเป็นข้อความที่ชัดเจนในไฟล์กำหนดค่าดังนั้นแม้ว่าโปรแกรมของคุณสามารถจัดการรหัสผ่านใน URL ได้คุณควรพิจารณาวิธีการแชร์ที่เชื่อมต่อ


คือfstabไม่ได้เป็น "การตั้งค่าไฟล์ข้อความที่ชัดเจน"?
grawity

1
ใช่ แต่ใน fstab คุณอ้างถึงไฟล์รหัสผ่านแทนที่จะใส่รหัสผ่านโดยตรง จากนั้นคุณสามารถรักษาความปลอดภัยไฟล์รหัสผ่านโดยการเปลี่ยนเจ้าของเป็นรูทและโหมดเป็น 400
billc.cn

ยังคงเป็นไฟล์กำหนดค่า cleartext ทุกคนที่การเข้าถึงเครื่องสามารถมีสิทธิ์ใช้งานรูทผ่านการรีบูต สภาพแวดล้อมเดสก์ท็อปเช่น XFCE, KDE และ Gnome สามารถเก็บข้อมูลรับรองไว้ในรหัสผ่านตู้นิรภัยซึ่งอาจเป็นตัวเลือกที่ดีกว่า
bobpaul

0

คุณสามารถเพิ่มข้อมูลรับรองในแผงควบคุม / ผู้ใช้ / ผู้จัดการข้อมูลประจำตัวของ Windows เพื่อให้ข้อมูลประจำตัวถูกแคช คุณจะเพิ่มชื่ออุปกรณ์ (server.domain.local) ด้วยชื่อผู้ใช้ / รหัสผ่านของโดเมนจากนั้นคุณควรจะสามารถเข้าถึงการแชร์ได้โดยไม่ต้องให้ข้อมูลรับรองอีกครั้ง


0

พีซีที่ไม่ใช่โดเมนไม่ควรสนใจ DFS ที่ไม่สมัครหรือเข้าร่วมโดยตรง เพียงแค่ต้องเห็นเส้นทางการแชร์ (เช่นเซิร์ฟเวอร์ / ชื่อแชร์) ชื่อไฟล์ลบข้อควรพิจารณาพา ธ เซิร์ฟเวอร์ไฟล์โฮสต์ทั้งหมด

สุจริตมีวิธีที่ปลอดภัยมากขึ้นในการเข้าสู่ระบบเพื่อแบ่งปันกว่า UNC URI UNC และ URI เป็นโปรโตคอลการสื่อสารข้อความที่ชัดเจน
หากนั่นคือการรักษาความปลอดภัยที่ยอมรับได้ ... ทำไมไม่เพียงแค่มีการแบ่งปันแบบเปิดโดยไม่มีผู้ใช้หรือรหัสผ่าน?

วิธีแก้ไขปัญหาที่ง่ายที่สุดในทันทีจะให้สิทธิ์การเข้าถึงบริการโดยตรงสู่การเข้าสู่ระบบเพื่อแบ่งปัน (เช่นการจับคู่ผู้ใช้ / รหัสผ่าน) ระยะยาวที่ไม่ตรงกันอย่างชัดเจนอาจทำให้จำได้ว่าต้องอัปเดตสิทธิ์เมื่อใดก็ตามที่สิ่งต่าง ๆ เปลี่ยนไปยาก และยังเป็นพื้นที่ที่ MS อาจเปลี่ยนวิธีการรักษาความปลอดภัยผ่านข้อมูลประจำตัวอีกครั้งและทำลายสิ่งต่าง ๆ

สิ่งที่ดีที่สุดในระยะยาวน่าจะเป็นการแมปไดรฟ์ภายในเครื่องกับเครือข่ายร่วมกันอย่างถาวร ปกป้องไดรฟ์ที่แมปด้วยสิทธิ์เฉพาะสำหรับบริการ (และผู้ดูแลระบบที่เหมาะสม ฯลฯ ) รวมทั้งชื่อไฟล์อาจถูกซ่อนไว้ด้วย &

แต่ DFS ให้เบาะแสกับทางออกที่หรูหรากว่า ลีนุกซ์ต้องการให้แชร์เครือข่ายติดตั้งก่อน ... โดยปกติจะเป็นไดเรกทอรีในระบบไฟล์รากในลักษณะที่คล้ายกับ DFS คำสั่ง Linux mount อนุญาตให้ระบุไฟล์ข้อมูลรับรองสำหรับชื่อผู้ใช้และรหัสผ่านทำให้ง่ายต่อการอัพเดตและปลอดภัยกว่าสคริปต์บรรทัดคำสั่งหรือ fstab (เช่นตารางระบบไฟล์) ฉันค่อนข้างมั่นใจว่า Windows command shells และ DFS สามารถทำสิ่งเดียวกันได้ มันจะเป็นระบบ DFS ที่แตกต่างกันเป็นส่วนตัวไปยังพีซีเป้าหมายเพื่อรวมการแชร์เครือข่ายที่ติดตั้งไว้โดยใช้ข้อมูลประจำตัวที่เก็บไว้ที่ส่งผ่านโดย SMB และบริการเข้าสู่ระบบแทนที่จะเขียนโค้ดยากในสคริปต์และส่งเป็นข้อความ UNC ชัดเจน

นอกจากนี้ให้พิจารณาด้วยว่าพีซีที่ไม่ใช่โดเมนจะยังคงเป็นพีซีที่ไม่ใช่โดเมนในระยะยาว เซิร์ฟเวอร์การเข้าสู่ระบบ Kerberos ใน * NIX Realms สามารถเชื่อมโยงกับโดเมน Windows AD อาจเป็นสิ่งที่คุณต้องการทำสำหรับโครงการระยะยาวที่เกี่ยวข้องกับคนมากกว่าสองสามคน ในทางกลับกันมันอาจ overkill สำหรับสถานการณ์เครือข่ายภายในบ้านส่วนใหญ่ แม้ว่าคุณจะใช้ DFS ด้วยเหตุผลที่ดีกว่างานอดิเรกที่ท้าทายตัวเองก็อาจดีที่สุด


0

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

แต่ถ้าเป็น Windows หรือ Linux ดั้งเดิมคุณอาจต้องกว้างขึ้นเล็กน้อย

พีซีที่ไม่ใช่โดเมนไม่ควรสนใจ DFS ที่ไม่สมัครหรือเข้าร่วมโดยตรง เพียงแค่ต้องเห็นเส้นทางการแชร์ (เช่นเซิร์ฟเวอร์ / ชื่อแชร์) ชื่อไฟล์ลบข้อควรพิจารณาพา ธ เซิร์ฟเวอร์ไฟล์โฮสต์ทั้งหมด

สุจริตมีวิธีที่ปลอดภัยมากขึ้นในการเข้าสู่ระบบเพื่อแบ่งปันกว่า UNC URI UNC และ URI เป็นโปรโตคอลการสื่อสารข้อความที่ชัดเจน
หากนั่นคือการรักษาความปลอดภัยที่ยอมรับได้ ... ทำไมไม่เพียงแค่มีการแบ่งปันแบบเปิดโดยไม่มีผู้ใช้หรือรหัสผ่าน?

วิธีแก้ไขปัญหาที่ง่ายที่สุดในทันทีจะให้สิทธิ์การเข้าถึงบริการโดยตรงสู่การเข้าสู่ระบบเพื่อแบ่งปัน (เช่นการจับคู่ผู้ใช้ / รหัสผ่าน) ระยะยาวที่ไม่ตรงกันอย่างชัดเจนอาจทำให้จำได้ว่าต้องอัปเดตสิทธิ์เมื่อใดก็ตามที่สิ่งต่าง ๆ เปลี่ยนไปยาก และยังเป็นพื้นที่ที่ MS อาจเปลี่ยนวิธีการรักษาความปลอดภัยผ่านข้อมูลประจำตัวอีกครั้งและทำลายสิ่งต่าง ๆ

สิ่งที่ดีที่สุดในระยะยาวน่าจะเป็นการแมปไดรฟ์ภายในเครื่องกับเครือข่ายร่วมกันอย่างถาวร ปกป้องไดรฟ์ที่แมปด้วยสิทธิ์เฉพาะสำหรับบริการ (และผู้ดูแลระบบที่เหมาะสม ฯลฯ ) รวมทั้งชื่อไฟล์อาจถูกซ่อนไว้ด้วย &

แต่ DFS ให้เบาะแสกับทางออกที่หรูหรากว่า ลีนุกซ์ต้องการให้แชร์เครือข่ายติดตั้งก่อน ... โดยปกติจะเป็นไดเรกทอรีในระบบไฟล์รากในลักษณะที่คล้ายกับ DFS คำสั่ง Linux mount อนุญาตให้ระบุไฟล์ข้อมูลรับรองสำหรับชื่อผู้ใช้และรหัสผ่านทำให้ง่ายต่อการอัพเดตและปลอดภัยกว่าสคริปต์บรรทัดคำสั่งหรือ fstab (เช่นตารางระบบไฟล์) ฉันค่อนข้างมั่นใจว่า Windows command shells และ DFS สามารถทำสิ่งเดียวกันได้ มันจะเป็นระบบ DFS ที่แตกต่างกันเป็นส่วนตัวไปยังพีซีเป้าหมายเพื่อรวมการแชร์เครือข่ายที่ติดตั้งไว้โดยใช้ข้อมูลประจำตัวที่เก็บไว้ที่ส่งผ่านโดย SMB และบริการเข้าสู่ระบบแทนที่จะเขียนโค้ดยากในสคริปต์และส่งเป็นข้อความ UNC ชัดเจน

นอกจากนี้ให้พิจารณาด้วยว่าพีซีที่ไม่ใช่โดเมนจะยังคงเป็นพีซีที่ไม่ใช่โดเมนในระยะยาว เซิร์ฟเวอร์การเข้าสู่ระบบ Kerberos ใน * NIX Realms สามารถเชื่อมโยงกับโดเมน Windows AD อาจเป็นสิ่งที่คุณต้องการทำสำหรับโครงการระยะยาวที่เกี่ยวข้องกับคนมากกว่าสองสามคน ในทางกลับกันมันอาจ overkill สำหรับสถานการณ์เครือข่ายภายในบ้านส่วนใหญ่ แม้ว่าคุณจะใช้ DFS ด้วยเหตุผลที่ดีกว่างานอดิเรกที่ท้าทายตัวเองก็อาจดีที่สุด

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