Theppitak's blog

My personal blog.

29 สิงหาคม 2548

Random Samba Tricks

ช่วงนี้ต้องเซ็ต samba บ่อย เจอปัญหาจุกจิกหลายแบบ เลยบันทึกเกร็ดที่พบไว้เสียหน่อย

โปรโตคอล

  • Server Message Block (SMB) เป็นมาตรฐานเครือข่ายที่ใช้แชร์ไฟล์และเครื่องพิมพ์ สร้างโดย IBM จากนั้นไมโครซอฟท์ได้พัฒนาโปรโตคอลเพิ่มเติมจนต่างจาก SMB เดิม และใช้ในเครือข่ายวินโดวส์ในปัจจุบัน ส่วน Samba เป็น implementation แบบโอเพนซอร์ส ที่เขียนขึ้นมาใหม่จากการ reverse engineer เพื่อพยายามให้ยูนิกซ์ทั้งหลาย สามารถใช้เครือข่ายร่วมกับวินโดวส์ได้
  • SMB ทำงานบน NetBIOS API ซึ่งมี implementation แบบที่ใช้ IPX/SPX กับแบบที่ใช้ TCP/IP อีกที รวมทั้งมี NetBEUI อีกอัน ที่ทำส่วน network layer ในตัวด้วย
  • NetBIOS อ้างชื่อเครื่องในเครือข่ายด้วย ASCII string

การอนุญาตสิทธิ์

SMB สามารถอนุญาตสิทธิ์การเข้าใช้ทรัพยากรต่างๆ ได้สามแบบหลักๆ:

  1. share level คือกำหนดสิทธิการใช้งานที่แต่ละทรัพยากรไปเลย ว่าจะให้อ่าน/เขียนได้หรือไม่ การป้องกันอาจเป็นการใช้รหัสผ่านง่ายๆ
  2. user level คือมีการสร้าง user account ในเครื่องแต่ละเครื่อง และให้สิทธิ user เป็นรายๆ ได้
  3. user level แบบใช้ domain คือแทนที่จะสร้าง user ประจำแต่ละเครื่อง ก็กำหนดให้ server เครื่องหนึ่งควบคุม domain และเก็บ user account ของทั้ง domain ซึ่งมีข้อดีคือ ผู้ใช้ไม่ต้องแยกจำรหัสผ่านที่แต่ละเครื่องเหมือนแบบ user level ปกติ หรือจำรหัสผ่านที่แต่ละทรัพยากรไปเลยแบบ share level

Win95, Win98, WinME สามารถ share ได้สองแบบแรก ถ้าจะใช้ domain ต้องใช้ WinNT หรือ Win2000/2003 เป็นเซิร์ฟเวอร์ ส่วน WinXP นั้น ถึงสายการพัฒนาจะมาจาก Win2000 แต่ก็พยายามให้ interface คล้าย Win9x การ share จึงกระเดียดไปทาง Win9x แต่ถ้า Samba จะเข้าใช้ จะเกิดความสับสนเล็กน้อย เพราะบางครั้ง การกำหนดสิทธิ์ที่ตั้งไว้เป็น share level ต้องใส่ user, password ด้วย! และถ้าเครื่อง WinXP นั้น ตั้งไว้ให้ auto login ก็จะต้องใช้ user และ password ว่า "admin" และ "mypassword" ตามลำดับ ใครที่พยายามสั่งพิมพ์จากลินุกซ์ผ่าน WinXP แล้วไม่ออก อาจจะลองใช้ trick นี้ดู

SMB กับ Subnet

ปกติ Network Places ของ Windows จะมีระบบ resolve ชื่อเครื่องกับ address จริง โดยจะมีเครื่องใดเครื่องหนึ่งทำหน้าที่เป็น master คอย update ชื่อ ซึ่งเครื่องที่เข้ามาใหม่ จะ broadcast รายงานตัวและ sync รายชื่อเครื่องจาก master มาที่ตัวเอง ซึ่งทั้งหมดนี้ หมายความว่า เครื่องทั้งหลายจะเห็นกันได้ภายในวงแลนเดียวกันเท่านั้น ถ้ามีการทำ subnet ก็จะไม่เห็นเครื่องอื่นที่อยู่นอกเหนือ gateway ออกไปเลย ถ้าจะให้เห็นได้ ก็ต้องตั้ง WINS server ขึ้นมาทำหน้าที่คล้ายๆ DNS ในอินเทอร์เน็ต จากนั้น ตั้งให้เครื่องลูกข่ายใช้ WINS (โดยการตั้งค่า WINS ตรงๆ หรือให้ DHCP server แจกมาให้ก็ตามแต่) resolve ชื่อเครื่องให้เป็นเบอร์ IP แล้วก็จะมองเห็นเครื่องในเน็ตระดับบนได้

การใช้ WINS มีข้อดีอีกอย่าง คือลด packet ในเครือข่ายลงได้ (นิดหน่อย) เพราะเครื่องลูกข่ายไม่ต้อง broadcast หรือตรวจสอบ master บ่อยๆ เมื่อมีจุดเดียวให้ติดต่อ คือ WINS server

Samba บนลินุกซ์ สามารถตั้งให้ทำหน้าที่ WINS server ได้ด้วย

ยาวแล้ว ไว้คราวหน้าค่อยเขียนถึงเรื่องวุ่นๆ ของเครื่องพิมพ์ที่เจอมา

0 ความเห็น:

แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)

<< กลับหน้าแรก

hacker emblem