NAS 101 : TrueNAS บทที่ 3 การตั้งค่า File Sharing ,Permission ,ACL
NAS 101 : TrueNAS บทที่ 3 การตั้งค่า Permission ,ACL ,File Sharing ,
ก่อนจะไปเรื่องอื่น เราจะแนะนำระบบ File Sharing ของ TrueNAS ก่อน
สิ่งแรกที่ เราต้องรู้ก่อนว่า Permission ต่างๆ จะถูกควบคุมโดยการไปตั้งค่าที่ DataSet (ไม่ใช่อยู่ที่ Sharing เป็นความเข้าใจผิดของมือใหม่)
โดยมันจะใช้ได้ 2 รูปแบบ คือ Simple permissions manager และ full Access Control List (ACL) แต่ส่วนนี้เราจะไปอธิบายทีหลัง
โดย เราได้เรียงลำดับขั้นตอนการตั้งค่า File Sharing ไว้ดังนี้
Data
1. สร้าง Disk Pool เป็นการสร้างกลุ่ม Disk
2. สร้าง Data Set หรือ สร้าง Folder (บางคนจะบอกว่าเป็น Partition) ภายใน Disk
User
3. สร้าง Group Name
4. สร้าง User ใน Account
5. สร้าง Permission /Owner ใน DataSet
6. การ Jail
ก่อนไปทำอย่างอื่นให้เรากลับไป UI แล้วไปที่ Storage >> Disk เพื่อตรวจสอบก่อนว่า มี Disk กี่ลูก โดยจะมี 1 ลูกที่เป็น Boot Disk
1. การสร้าง Disk Pool คือ การจัดกลุ่ม Harddisk ก่อนที่จะดำเนินการอย่างอื่น โดย Harddisk ทุกลูกจะต้องถูกจัดกลุ่ม Pool ก่อน จึงสามารถนำมาใช้ได้ ยกตัวอย่างเช่น การจับเอา Harddisk หลายๆ อันมารวมกันเป็น Disk เดียวกัน (Tripe)
หรือ หากเรามี Harddisk 4 ลูก เราอาจแบ่งเป็น 2 กลุ่ม กลุ่มละ 2 ก้อนก็ได้ โดยต้องตั้งชื่อ Pool ยกตัวอย่างเช่น กลุ่ม Media กับ กลุ่ม Document กลุ่มละ 2 ลูกก็ได้ อย่างไรก็ดี การรวม Harddisk นั้น เราไม่แนะนำให้เก็บข้อมูลสำคัญ เพราะมีโอกาสหายสูง (เราควรทำแบบ Mirror หรือ Raid 1 สำหรับข้อมูลที่มีความสำคัญสูง แต่ทั้ง 2 ก้อนควรมีขนาดเท่ากัน)
ถัดมาเราต้องเลือกว่า แต่ละ Pool จะให้ทำงานแบบ Raid ไหน
*** ตรงนี้เราสามารถเอา Harddisk ที่ทำ Pool เดิมไว้มาต่อก็ได้เช่นกัน ข้อมูลเดิมก็ยังอยู่ **
*** แต่ถ้าเราเลือกเป็น New ข้อมูลภายในจะถูกลบทั้งหมด ***
1. การสร้าง Disk Pool
หน้า UI >> Storage>> Pool >> Add
ตั้งชื่อ Pool >> ติ๊กเลือก Haddisk ลูกไหนบ้าง >> เลือก ประเภท (Stripe (ลูกเดียว) หรือ Miror (เหมือนกัน 2 ลูก หรือ raid 1 นั่นเอง) >> Create
โดยเราสามารถดูภาพรวมได้ทั้งหมดในหน้า Pool Manager (มันจะแยกเป็น Pool และ DataSet ไว้ให้)
*** การลบ Pool ไปที่ กงจักร(setting) >> Export/Disconnect
2. การสร้าง Data Set หรือ Folder (บางคนเทียบว่า เป็นการสร้าง Partition)
Storage>> Pool >> เลือก Pool >> add DataSet
ตั้งชื่อ DataSet >> Comments(คำอธิบาย) >>
Owner ของ DataSet นี้ จะตั้งเป็น user หรือ Group ก็ได้ แต่ใครอยู่ Section Owner จะมีสิทธิ Full Control ของ DataSet นี้เลย
คำอธิบายเกี่ยวกับ Group
** Group Wheel (หรือ Group 0 ใน Unix หรือมีสิทธิที่จะ su ในระบบ) จะถือว่า เทียบเท่าสิทธิ root นั่นคือ User ในกลุ่มนี้จะถือเป็น root แต่ต่อให้ไม่มี member ใน Wheel เลย ก็ยังมี root เป็นตัวหลัก**
ถ้า Owner เป็น Wheel แล้ว เราไม่ควรติ๊ก new primary group และ wheel Group อยู่ใน primary group เพื่อรักษาความปลอดภัย
Group and User
ก่อนอื่นขออ้อมไปอธิบายเรื่อง Group and user ก่อน
3. Groups จะอยู่ในหน้า Group management สิ่งสำคัญของ Groups คือ ชื่อ Group และ GID ของ Group (GID จะเป็น String ในรูปแบบตัวเลข โดยอันที่สร้างเองจะมีค่ามากกว่า 1000 ขึ้นไป)
โดย permit sudo แนะนำว่า อย่าติ๊ก ไม่งั้น User ใน Group นี้จะสามารถใช้ sudo ได้
Allow repeated GIDs มันจะเกี่ยวกับการอ้างอิง ระบบ ใน Unix ด้วย
4. User จะมีส่วนสำคัญของการกำหนด คือ Home Directory (พื้นที่ส่วนตัวของ user)
ถัดมาจะเป็น การระบุว่าต้องใช้ password หรือไม่ ?
Lock User ถ้า User ถูก Lock แล้วจะไม่สามารถ Login ได้
Permit Sudo คือให้ User คนนี้มีสิทธิใช้ sudo รึเปล่า (อันตราย)
Microsoft ถ้าติ๊กอันนี้ มันจะเชื่อมกับ Window8 ขึ้นไป หรือ Microsoft Cloud Service ได้เลย
5. การตั้งค่าแชร์ DataSet
ย้อนกลับมา ตอนนี้ เราจะมี DataSet เปล่าๆ แล้ว (หลังจากที่เราตั้งค่า Owner เสร็จแล้ว) แต่ยังไม่มีใครสามารถเข้ามาใช้งานได้ (นอกจาก Owner) เราต้องไปตั้งค่า Sharing อีกทีหนึ่ง ว่าแชร์ให้ใคร และ แชร์ให้กับระบบปฎิบัติการไหน รวมไปถึง webdav (web Browser ด้วย)
เริ่มต้นการตั้งค่า Sharing ใน Dataset
ก่อนอื่น เข้าไปที่ dataset>> setting (กงจักร) >> edit permission
หน้านี้จะมีการตั้งค่า Owner ประเด็นตรงนี้เราจะข้ามไป โดยเลือกปุ่ม Use ACL Management ด้านล่าง
Access Control List (ACL) คือ การตั้งค่า User Permission กับ dataset ทั้งไฟล์และโฟลเดอร์ภายใน
อย่างที่บอกข้างต้น การตั้งค่าใน dataset มันจะมี 2 อย่าง คือ Simple permissions manager และ full Access Control List (ACL)
หน้านี้มันจะแยกเป็น 3 ส่วน
1. File information >> เป็นการกำหนด user หรือ Group ที่สร้างไว้
2. Access Control List ด้านนี้จะแยกเป็นการสร้างสิทธิของ user และ Group แต่ละอันได้เลย
Basic and Advance
Read (r-x---a-R-c---): สามารถ view file หรือ directory ได้อย่างเดียว
Modify (rwxpDdaARWc--s): สามารถสร้าง แก้ไขไฟล์หรือ directory ได้ แต่ไม่สามารถเปลี่ยนแปลงสิทธิภายในได้
Traverse (--x---a-R-c---): สามารถรันไฟล์ได้ .
Full Control (rwxpDdaARWcCos): ทำได้ทุกอย่างรวมถึง สิทธิการเข้าถึง
การ Sharing กับระบบต่างๆ (ในที่นี้จะยกตัวอย่าง SMB)
หน้า WebUI >> Sharing>> Windows (SMB) Share >> Add Dataset
(อันนี้คือ แค่ตั้งค่าว่า DataSet หรือ โฟลเดอร์ไหน บ้างที่ต้องการจะแชร์แบบ Windows )
** ตอนนี้มันจะมีการตั้งค่า config เล็กน้อยแล้ว ให้เลือก Advanced ** เช่นให้ Guess เข้ามาใช้งานได้
ถึงตรงนี้ เราต้องเข้าไปที่ Service เพื่อเปิด Service ของ Window SMB Share ก่อนด้วย (เพราะถ้าไม่เปิดมันจะไม่ยอมแชร์ไฟล์ด้วย)
หน้าWeb UI อันนี้คือต้องการให้ Service ไหนเปิด ปิด หรือ Auto อย่างไรก็ตั้งตามสบาย
ไปตั้ง SMB Service (มันจะมีให้ตั้ง Run เมื่อเปิดเครื่อง ก็เอาอันนี้แหละ)
มาถึงตรงนี้ก็ลองเข้า โฟลเดอร์ ดังกล่าวจากคอมเครื่องอื่นได้เลย (ก็พิมพ์ IP Address ไปเหมือนที่ตั้งค่าไว้นั่นแหละ) คราวนี้ มันจะถาม User Password ในการเข้าถึง
กรณีเราต้องการสืบทอดสิทธิต่างๆ ลงไปด้วย ไม่ว่าจะโฟลเดอร์ หรือไฟล์ ก็อย่าลืมติ๊กด้วย
SMB คืออะไร
คำถามคือ SMB คืออะไร มันมาจาก Server Message Block หรือ CIFS Common Internet File System Share ซึ่งมันช้ากว่า NFS Shre เพราะมันถูกออกแบบมาให้ใช้ Single Threaded แต่มันเป็นทางเลือกที่ดีสำหรับ เครื่อง Window และ Mac แต่มันมีข้อจำกัด ด้าน CPU ซึ่งหากไม่พอก็จำเป็นต้อง Upgrade CPU ที่มีหลาย Threaded
3. Group Name (เป็นการกำหนดสิทธิ์แบบกลุ่ม เพื่อนำ User มาใส่ใน Group อีกที)
สร้าง Group Name (ใน 1 Group มันสามารถมีสมาชิกได้มากกว่า 1,000 คน)
- Account >> Group>> Add
กำหนดชื่อ Save
*** ตรงนี้ ระหว่างสร้าง มันจะ Gen GID ขึ้นมา ที่มันไม่สามารถเปลี่ยน GID ตอนหลังได้ ***
และมันจะมี Option ให้เลือก
Permit Sudo - คืออนุญาตให้ User กลุ่มนี้มีสิทธิเท่า root
Samba Authen - ใช้ SMB ได้ (Microsoft share)
Allow Duplicate GID - ไม่แนะนำให้ ติ๊ก เพราะมันซับซ้อนมาก
4. User
สร้าง User
- Account >> User >> Add
กำหนดค่า Full Name , User Name , Password ที่สำคัญเลยตรงเลข 6 ให้กำหนดว่า User คนนี้จะอยู่ Group ไหน
สิ่งถัดมาคือ พื้นที่ส่วนตัวของ User คนนั้นๆ เราต้องกำหนดพื้นที่ส่วนนี้ให้ด้วย (สรุปคือ อยู่ Group ไหนและพื้นที่ส่วนตัวตรงไหน)
จากนั้นคลิก SAVE
มาถึงตรงนี้ User ที่สร้างนี้จะเข้า FreeNAS ได้แล้ว แต่จะยังไม่สามารถเข้าโฟลเดอร์ใดๆ ได้ เพราะยังไม่ได้มีการตั้งสิทธิ์ Permission ใดๆ ไว้ให้
5. Permission /Owner การกำหนดให้ ใครสามารถเข้า DataSet ได้บ้าง
และ ACL คืออะไร
ตอนนี้ เราสร้าง Pool กับ Dataset เรียบร้อยแล้ว แต่เราต้องกำหนดให้ใครบ้างที่สามารถเข้าถึงได้
Web UI >> Storage>> Pool>> DataSet >> สามจุดด้านท้าย เลือก Edit Permission
ACL เลือก Window
ถัดมา สามารถกำหนดได้ทั้งราย User หรือราย Group ก็ได้ >> Save
6. Jail หรือการสร้างคุก
Jail หรือ คุก คืออะไร มันคือ แนวคิดการแยกส่วนออกมาจากระบบปฎิบัติการ FreeNAS และสร้างกำแพงแบบ แน่นหนาเพื่อป้องกันการแหกคุก โดยมันจะเปรียบเสมือนมี OS อีกตัว เพื่อให้คุณสามารถลงโปรแกรมในพื้นที่นั้นได้ ทำให้จุดเด่นคือ คุณสามารถทดลองทำอะไรก็ได้ ใน Jail มันจะไม่มีผลกระทบใดๆ กับ OS FreeNas หลัก และคุณสามารถลบทิ้งได้หลังจากเสร็จสิ้นภาระกิจ
ใน FreeNAS จะมีคุกอยู่ 2 ประเภท คือ Jail ที่สร้างด้วย Plug In (ขอละไว้ก่อน) และ Jail ที่สร้างเอง ภายใน Jail มันจะเปรียบเสมือน มี FreeNAS แบบ Lightweight ไว้รอบริการ (ทุกอย่างภายใน Jail จะถูกแยกออกไป แม้แต่ระบบ Network และ IP หรือแม้แต่สามารถลง OS ได้อีกด้วย ) อย่างไรก็ดี เราแนะนำว่า อย่าได้ลงพยายามลง Mail Server หรือ OpenVPN ไว้ในนั้น เพราะมันจะซับซ้อนมาก และมันเป็นเรื่องยากที่จะนำไฟล์ เข้า และออก จาก Jail
เราแนะนำให้สร้าง Jail สำหรับ แยก Service ต่างๆ เช่น DNS Server , Web Server หรือ Virsual Box อีกด้วย
เมื่อสร้าง jail สำเร็จ มันจะต้องย้อนกลับไปที่ Pool อีกครั้ง (เหมือนมี Drive ใหม่) โดยก่อนที่เราจะไปสร้าง DataSet ต่อ เราต้องไป Stop Service ก่อน
ความคิดเห็น
แสดงความคิดเห็น