Samba

สมชัย หลิมศิโรรัตน์

13 ตุลาคม 2545

เกริ่นนำ

Samba คืออะไร บางคนอาจจะรู้จักในชื่อของ service smb หรือชื่อของโปรแกรม smbd ซึ่งก็หมายถึงระบบเดียวกัน นั่นก็คือ ระบบที่ทำงานอยู่บนเครื่อง Linux แล้วทำให้มันเสมือนเป็นเครื่อง Windows NT ทำไมเราจะต้องทำให้เครื่อง Linux เป็นเสมือนเครื่อง Windows NT ล่ะ ก็เพราะว่าระบบ Network ส่วนใหญ่แล้วมีเครื่องลูกข่ายเป็น Microsoft Windows และเรามักจะมีการ share ทรัพยากรกัน เช่น printer, harddisk และอื่นๆ หากมีเครื่อง Linux เพิ่มเข้ามาในระบบ แต่ไม่สามารถใช้ หรือ ให้ใช้ทรัพยากรต่างๆได้ ก็เท่ากับว่า เราไม่ได้ใช้ประโยชน์จากมันอย่างเต็มที่ บทความนี้จึงอยากจะแนะนำการติดตั้งและปรับแต่ง Samba โดยของยกตัวอย่างต่างๆด้วยระบบ Mandrake 8.1

การติดตั้ง

โดยปกติแล้วโปรแกรม Samba นี้จะมีให้เลือกตั้งแต่ตอนติดตั้งระบบครั้งแรกเลย แต่ถ้าหากใครไม่ได้เลือกไว้ตั้งแต่ทีแรก ก็สามารถติดตั้งเพิ่มทีหลังได้ โดยเลือก package ที่ชื่อ samba-x.y.z-? โดย x.y.z หมายถึงตัวเลขเวอร์ชัน และ ? หมายถึงส่วนเพิ่มเติมซึ่งอาจจะเป็นอะไรก็ได้ ขึ้นกับว่าเป็น package ของบริษัทไหน เช่นของ Mandrake จะมีคำว่า mdk อยู่ด้วย การติดตั้งนั้น สามารถทำได้หลายวิธี แล้วแต่ใครชอบ คือ

  • เรียกใช้ kpackage สำหรับ GUI ของ KDE
  • เรียกใช้ gnome-rpm สำหรับ GUI ของ GNOME
  • เรียกใช้ rpmdrake สำหรับ GUI แบบใดก็แล้วแต่ในระบบของ Mandrake
  • หรือใช้ rpm สำหรับ text mode ในระบบของ RedHat, Mandrake และอื่นๆที่ใช้ .rpm ไฟล์

โดยสั่งด้วยคำสั่ง rpm –i ไฟล์.rpm

สำหรับ Mandrake 8.1 นั้นไฟล์ต่างๆที่จำเป็นจะอยู่ในแผ่นแรก ใน directory /Mandrake/RPMS ซึ่งเราจำเป็นต้องติดตั้ง package อื่นร่วมด้วยคือ samba-common-x.y.z-?.rpm และ samba-client-x.y.z-?.rpm ครับ

เมื่อติดตั้งโปรแกรมลงในเครื่องแล้ว สามารถตรวจสอบได้ว่ามี service นี้เพิ่มเข้ามาหรือเปล่า ด้วยคำสั่ง

chkconfig --list smb

ซึ่งจะได้ผลลัพธ์ดังนี้

smb             0:off   1:off   2:off   3:on    4:on    5:on    6:off

โดยหมายเลข 0, 1, 2, 3, 4, 5, และ 6 นั้นคือ ระดับการทำงานของระบบ

0 - halt (Do NOT set initdefault to this)

1 - Single user mode(supperuser mode)

2 - Multiuser, without NFS (The same as 3, if you do not have networking)

3 - Full multiuser mode(text mode)

4 - unused

5 - X11(Graphic mode)

6 - reboot (Do NOT set initdefault to this)

หากเราต้องการหรือไม่ต้องการให้บริการนี้ทำงานอัตโนมัติทุกครั้งที่เปิดเครื่องในระดับใด ก็สามารถสั่งด้วยคำสั่ง

chkconfig [--level ตัวเลขระดับ] smb [on|off|reset] เช่นสั่ง

chkconfig --level 34 smb off

หมายถึง ไม่ต้องการให้บริการ smb ทำงานอัตโนมัติทุกครั้งที่เปิดเครื่องเข้ามาใน text mode และ level 4

Start/Stop

เราสามารถสั่งให้บริการนี้ทำงาน หรือหยุดทำงานเมื่อใดก็ได้ด้วยคำสั่งต่างๆดังนี้

  • เริ่มทำงานด้วยคำสั่ง service smb start
  • หยุดทำงานด้วยคำสั่ง service smb stop
  • แสดงสถานะด้วยคำสั่ง service smb status
  • เริ่มทำงานใหม่ด้วยคำสั่ง service smb restart (สำหรับเมื่อเราแก้ไข config แล้วต้องการให้เริ่มใหม่)

เมื่อมาถึงตรงนี้ ผมคิดว่าเครื่อง MS-Windows น่าจะมองเห็นเครื่อง Linux แล้วนะครับ แต่ยังไม่สามารถเข้าใช้ทรัพยากรใดๆได้ เพราะเรายังไม่ share อะไรเลย หากยังมองไม่เห็นก็แสดงว่าน่าจะมีปัญหากับ firewall ครับ โดย firewall จะต้องอนุญาตให้ใช้ port 137,138 และ 139 (NETBIOS) ด้วยครับ ซึ่งวิธีการจัดการ firewall นั้นจะไม่ขอกล่าวในที่นี้

วิธีตรวจสอบ บนเครื่อง Linux ควรจะมองเห็นเครื่อง Windows ทั้งหลายและเครื่องตัวเอง ด้วยคำสั่ง

smbclient –N –L localhost

ซึ่งจะได้ผลลัพธ์ เช่น

added interface ip=192.168.13.1 bcast=192.168.13.255 nmask=255.255.255.0
Anonymous login successful
Domain=[VSL] OS=[Unix] Server=[Samba 2.2.2]

        Sharename      Type      Comment
        ---------      ----      -------
        Download       Disk      My downloaded file
        IPC$           IPC       IPC Service (Samba Server 2.2.2)
        ADMIN$         Disk      IPC Service (Samba Server 2.2.2)

        Server               Comment
        ---------            -------
        VRSOFTDEV            Samba Server 2.2.2
        VSLNOTE              Acer TravelMate 340 Pentium III 450MHz

        Workgroup            Master
        ---------            -------
        VSL                  VRSOFTDEV
		

Configuration

วิธีการ Config นั้นมีด้วยกันสองวิธีคือ จัดการผ่านทางโฮมเพจ และ จัดการแก้ไข config ไฟล์เอง ซึ่ง config ไฟล์นั้นอยู่ที่ /etc/samba/smb.conf วิธีผ่านโฮมเพจนั้นจะใช้ protocol ที่ชื่อว่า SWAT(Samba Web Administration Tool) ซึ่งใช้งานที่ port 901 แต่วิธีนี้จะลบ comment ต่างๆใน config ไฟล์ จึงควรเก็บ config ไฟล์เก่าไว้ก่อน อีกอย่าง การป้อนรหัสผ่าน ผ่านโฮมเพจนั้นจะส่งรหัสผ่านแบบตรงไปตรงมา ดังนั้นผมจึงไม่แนะนำให้ใช้วิธีนี้ผ่านเครือข่ายระยะไกลๆ แต่ถ้าหากเปิดโฮมเพจที่เครื่องนั้นเลย(http://localhost:901) ก็จะปลอดภัยครับ ซึ่งปกติแล้ว Mandrake ก็กำหนดไว้ให้เรียกได้จาก localhost เท่านั้นไว้อยู่แล้วครับ

เมื่อเปิดโฮมเพจได้แล้ว หน้าแรกจะมีปุ่มเพื่อเปิดหน้าที่ใช้กำหนดค่าต่างๆ และมี link ไปยังคู่มือการใช้งาน และเอกสารอื่นๆที่เกี่ยวข้อง ซึ่งผมคงไม่สามารถจะอธิบายได้ทั้งหมด ขอให้ศึกษาจากเอกสารเหล่านั้นเองนะครับ แต่ผมจะยกตัวอย่างง่ายๆไว้สักอัน เช่น การกำหนด share directory

Share Directory

จากหน้าแรกของโฮมเพจ เลือก Share จะปรากฏ Form สำหรับกำหนดการ share directory เราสามารถเลือกชื่อที่มีอยู่แล้ว หรือสร้างขึ้นใหม่ ถ้าต้องการสร้างใหม่ก็ป้อนชื่อที่ต้องการให้มองเห็น เช่น test แล้วกดปุ่ม Create Share ก็จะปรากฏ Form เพิ่มขึ้นเพื่อกำหนดค่าต่างๆของ test ดังภาพ

Click here to enlarge

สิ่งที่ต้องกำหนดก็คือ

  • path คือ directory ที่เราต้องการให้มองเห็นเป็นชื่อ test นี้
  • read only คือต้องการให้ อ่านได้อย่างเดียวหรือไม่
  • guest ok คือต้องการให้ใครก็ได้เข้ามาอ่านข้อมูลที่เรา share ไว้นี้หรือเปล่า
  • hosts allow คือรายชื่อ IP address หรือชื่อ host ที่อนุญาตให้ใช้ share นี้ได้
  • hosts deny คือรายชื่อ IP address หรือชื่อ host ที่ไม่อนุญาตให้ใช้
  • browseable คือให้ชื่อ test นี้ปรากฏให้เห็นหรือไม่
  • available ใช้สำหรับปิด share ชั่วคราว เมื่อกำหนดเป็น No

สรุป

ใครที่ต้องการใช้เครื่องระดับ server อย่าง Window NT แต่กลัวปัญหาเรื่องความปลอดภัย หรือพวกไวรัสทั้งหลายผมคิดว่า Samba เป็นทางออกหนึ่งที่น่าลองมากนะครับ เพราะเท่าที่ผมเคยอ่านสถิติไวรัสคอมพิวเตอร์ที่พบในปีที่แล้ว(พ.ศ. 2544) นั้น มีมากถึง 5-600 ชนิด ส่วนใหญ่ล้วนเป็นไวรัสบน Microsoft Windows ทั้งสิ้น หากเราหาทางป้องกันเสียก่อน อย่างน้อยก็ช่วยลดค่าใช้จ่ายที่ต้องเสียไปได้หลายอย่างไม่ว่าจะต้องซื้อโปรแกรมป้องกันไวรัส, ข้อมูลที่สูญเสียเมื่อติดไวรัส, และเวลาที่ต้องเสียไปในการตรวจสอบแต่ละเครื่อง ซึ่งรวมๆกันทั้งประเทศแล้วก็ถือเป็นมูลค่ามหาศาลทีเดียว

แหล่งอ้างอิง

  1. Samba Web Page

since September 2002
Web Counter by http://www.digits.com
Last updated : Thursday, 4 December, 2003 14:07

Copyright © 2002-2004 Somchai LIMSIRORATANA. All rights reserved.