การตั้งค่า Samba และกำหนดค่า FirewallD และ SELinux เพื่ออนุญาตการแชร์ไฟล์บนไคลเอนต์ Linux/Windows - ตอนที่ 6
เนื่องจากคอมพิวเตอร์ไม่ค่อยทำงานเป็นระบบแยก จึงคาดว่าในฐานะผู้ดูแลระบบหรือวิศวกร คุณจะรู้วิธีการตั้งค่าและบำรุงรักษาเครือข่ายด้วยเซิร์ฟเวอร์หลายประเภท
ในบทความนี้และบทความถัดไป เราจะพูดถึงสิ่งสำคัญของการตั้งค่าเซิร์ฟเวอร์ Samba และ NFS ด้วยไคลเอ็นต์ Windows/Linux และ Linux ตามลำดับ
บทความนี้จะมีประโยชน์อย่างแน่นอนหากคุณถูกเรียกให้ตั้งค่าเซิร์ฟเวอร์ไฟล์ในสภาพแวดล้อมขององค์กรหรือองค์กรที่คุณมีแนวโน้มที่จะพบระบบปฏิบัติการและประเภทอุปกรณ์ที่แตกต่างกัน
เนื่องจากคุณสามารถอ่านเกี่ยวกับความเป็นมาและด้านเทคนิคของทั้ง Samba และ NFS ได้ทางอินเทอร์เน็ต ในบทความนี้และบทความถัดไป เราจะมาเจาะลึกหัวข้อที่กำลังดำเนินอยู่
ขั้นตอนที่ 1: การติดตั้งเซิร์ฟเวอร์ Samba
สภาพแวดล้อมการทดสอบปัจจุบันของเราประกอบด้วยกล่อง RHEL 7 สองกล่อง และเครื่อง Windows 8 หนึ่งเครื่อง ตามลำดับ:
1. Samba / NFS server [box1 (RHEL 7): 192.168.0.18],
2. Samba client #1 [box2 (RHEL 7): 192.168.0.20]
3. Samba client #2 [Windows 8 machine: 192.168.0.106]
บน box1 ให้ติดตั้งแพ็คเกจต่อไปนี้:
yum update && yum install samba samba-client samba-common
บน box2:
yum update && yum install samba samba-client samba-common cifs-utils
เมื่อการติดตั้งเสร็จสมบูรณ์ เราก็พร้อมที่จะกำหนดค่าการแชร์ของเรา
ขั้นตอนที่ 2: การตั้งค่าการแชร์ไฟล์ผ่าน Samba
สาเหตุหนึ่งที่ Samba มีความเกี่ยวข้องมากก็เนื่องมาจากให้บริการไฟล์และการพิมพ์แก่ลูกค้า SMB/CIFS ซึ่งทำให้ไคลเอ็นต์เหล่านั้นมองเห็นเซิร์ฟเวอร์เสมือนว่าเป็นเซิร์ฟเวอร์ ระบบ Windows (ฉันต้องยอมรับว่าฉันมักจะอารมณ์เสียเล็กน้อยขณะเขียนเกี่ยวกับหัวข้อนี้ เนื่องจากเป็นการตั้งค่าครั้งแรกของฉันในฐานะผู้ดูแลระบบ Linux คนใหม่เมื่อหลายปีก่อน)
การเพิ่มผู้ใช้ระบบและการตั้งค่าการอนุญาตและความเป็นเจ้าของ
เพื่อให้เกิดการทำงานร่วมกันเป็นกลุ่ม เราจะสร้างกลุ่มชื่อ การเงิน โดยมีผู้ใช้สองคน (user1 และ user2) พร้อมด้วยคำสั่ง useradd และไดเร็กทอรี /การเงิน ใน box1
นอกจากนี้เรายังจะเปลี่ยนเจ้าของกลุ่มของไดเร็กทอรีนี้เป็น การเงิน และตั้งค่าสิทธิ์เป็น 0770 (สิทธิ์ในการอ่าน เขียน และดำเนินการสำหรับเจ้าของและเจ้าของกลุ่ม):
groupadd finance
useradd user1
useradd user2
usermod -a -G finance user1
usermod -a -G finance user2
mkdir /finance
chmod 0770 /finance
chgrp finance /finance
ขั้นตอนที่ 3: การกำหนดค่า SELinux และ Firewalld
ในการเตรียมกำหนดค่า /finance เป็นการแชร์ Samba เราจะต้องปิดการใช้งาน SELinux หรือตั้งค่า boolean และค่าบริบทความปลอดภัยที่เหมาะสมดังต่อไปนี้ (มิฉะนั้น SELinux จะป้องกันไม่ให้ไคลเอนต์เข้าถึงการแชร์):
setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
getsebool –a | grep samba_export
semanage fcontext –at samba_share_t "/finance(/.*)?"
restorecon /finance
นอกจากนี้ เราต้องตรวจสอบให้แน่ใจว่าไฟร์วอลล์อนุญาตการรับส่งข้อมูล Samba
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
ขั้นตอนที่ 4: กำหนดค่า Samba Share
ตอนนี้ถึงเวลาเจาะลึกเข้าไปในไฟล์การกำหนดค่า /etc/samba/smb.conf และเพิ่มส่วนสำหรับการแบ่งปันของเรา: เราต้องการให้สมาชิกของกลุ่ม การเงิน สามารถ เพื่อเรียกดูเนื้อหาของ /finance และบันทึก / สร้างไฟล์หรือไดเรกทอรีย่อยในนั้น (ซึ่งโดยค่าเริ่มต้นจะมีบิตการอนุญาตตั้งค่าเป็น 0770 และ การเงิน จะเป็นเจ้าของกลุ่ม):
[finance]
comment=Directory for collaboration of the company's finance team
browsable=yes
path=/finance
public=no
valid users=@finance
write list=@finance
writeable=yes
create mask=0770
Force create mode=0770
force group=finance
บันทึกไฟล์แล้วทดสอบด้วยยูทิลิตี testparm หากมีข้อผิดพลาด ผลลัพธ์ของคำสั่งต่อไปนี้จะระบุสิ่งที่คุณต้องแก้ไข มิฉะนั้น จะแสดงการตรวจสอบการกำหนดค่าเซิร์ฟเวอร์ Samba ของคุณ:
หากคุณต้องการเพิ่มการแชร์อื่นที่เปิดให้สาธารณะ (หมายถึงไม่มีการตรวจสอบสิทธิ์ใดๆ ก็ตาม) ให้สร้างส่วนอื่นใน /etc/samba/smb.conf และภายใต้ชื่อการแชร์ใหม่ ให้คัดลอกส่วนด้านบน เปลี่ยนเฉพาะ public=no เป็น public=yes และไม่รวมผู้ใช้ที่ถูกต้องและคำสั่งรายการเขียน
ขั้นตอนที่ 5: การเพิ่มผู้ใช้ Samba
ต่อไป คุณจะต้องเพิ่ม ผู้ใช้1 และ ผู้ใช้2 เป็นผู้ใช้ Samba ในการทำเช่นนั้น คุณจะต้องใช้คำสั่ง smbpasswd ซึ่งโต้ตอบกับฐานข้อมูลภายในของ Samba คุณจะได้รับแจ้งให้ป้อนรหัสผ่านที่คุณจะใช้เพื่อเชื่อมต่อกับการแชร์ในภายหลัง:
smbpasswd -a user1
smbpasswd -a user2
สุดท้าย ให้รีสตาร์ท Samba เปิดใช้งานบริการเพื่อเริ่มต้นการบูต และตรวจสอบให้แน่ใจว่าการแชร์นั้นพร้อมใช้งานสำหรับไคลเอนต์เครือข่าย:
systemctl start smb
systemctl enable smb
smbclient -L localhost –U user1
smbclient -L localhost –U user2
ณ จุดนี้ ไฟล์เซิร์ฟเวอร์ Samba ได้รับการติดตั้งและกำหนดค่าอย่างถูกต้องแล้ว ตอนนี้ถึงเวลาทดสอบการตั้งค่านี้กับไคลเอ็นต์ RHEL 7 และ Windows 8 ของเรา
ขั้นตอนที่ 6: การติดตั้ง Samba Share ใน Linux
ขั้นแรก ตรวจสอบให้แน่ใจว่าสามารถเข้าถึงส่วนแบ่ง Samba ได้จากไคลเอนต์นี้:
smbclient –L 192.168.0.18 -U user2
(ทำซ้ำคำสั่งข้างต้นสำหรับผู้ใช้ 1)
เช่นเดียวกับสื่อบันทึกข้อมูลอื่นๆ คุณสามารถเมานท์ (และยกเลิกการต่อเชื่อมในภายหลัง) เครือข่ายนี้ที่ใช้ร่วมกันได้เมื่อจำเป็น:
mount //192.168.0.18/finance /media/samba -o username=user1
(โดยที่ /media/samba เป็นไดเรกทอรีที่มีอยู่)
หรือถาวร โดยเพิ่มรายการต่อไปนี้ในไฟล์ /etc/fstab:
//192.168.0.18/finance /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0
โดยที่ไฟล์ที่ซ่อนอยู่ /media/samba/.smbcredentials (ซึ่งมีการตั้งค่าการอนุญาตและความเป็นเจ้าของเป็น 600 และ root:root ตามลำดับ) ประกอบด้วย สองบรรทัดที่ระบุชื่อผู้ใช้และรหัสผ่านของบัญชีที่ได้รับอนุญาตให้ใช้การแชร์:
username=user1
password=PasswordForUser1
สุดท้ายนี้ มาสร้างไฟล์ภายใน /finance และตรวจสอบสิทธิ์และความเป็นเจ้าของ:
touch /media/samba/FileCreatedInRHELClient.txt
อย่างที่คุณเห็น ไฟล์ถูกสร้างขึ้นโดยมีสิทธิ์ 0770 และตั้งค่าความเป็นเจ้าของเป็น user1:finance
ขั้นตอนที่ 7: การติดตั้ง Samba Share ใน Windows
หากต้องการติดตั้ง Samba share ใน Windows ให้ไปที่ พีซีของฉัน และเลือก คอมพิวเตอร์ จากนั้นเลือก แมป ไดรฟ์เครือข่าย จากนั้น กำหนดตัวอักษรสำหรับไดรฟ์ที่จะแมป และทำเครื่องหมายที่ เชื่อมต่อโดยใช้ข้อมูลรับรองที่แตกต่างกัน (ภาพหน้าจอด้านล่างเป็นภาษาสเปน ภาษาแม่ของฉัน):
สุดท้าย เรามาสร้างไฟล์และตรวจสอบสิทธิ์และความเป็นเจ้าของ:
ls -l /finance
คราวนี้ไฟล์เป็นของ ผู้ใช้2 เนื่องจากเป็นบัญชีที่เราใช้เชื่อมต่อจากไคลเอนต์ Windows
สรุป
ในบทความนี้ เราได้อธิบายไม่เพียงแต่วิธีตั้งค่าเซิร์ฟเวอร์ Samba และไคลเอนต์สองเครื่องโดยใช้ระบบปฏิบัติการที่แตกต่างกัน แต่ยังรวมถึงวิธีกำหนดค่าไฟร์วอลล์และ SELinux บนเซิร์ฟเวอร์เพื่อให้มีความสามารถการทำงานร่วมกันแบบกลุ่มที่ต้องการ
สุดท้ายนี้ ฉันขอแนะนำให้อ่าน man page ออนไลน์ของ smb.conf เพื่อสำรวจคำสั่งการกำหนดค่าอื่นๆ ที่อาจเหมาะสมกับกรณีของคุณมากกว่าสถานการณ์ที่อธิบายไว้ในบทความนี้
และเช่นเคย โปรดแสดงความคิดเห็นโดยใช้แบบฟอร์มด้านล่างหากคุณมีความคิดเห็นหรือข้อเสนอแนะใดๆ