ค้นหาเว็บไซต์

การตั้งค่า 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 เพื่อสำรวจคำสั่งการกำหนดค่าอื่นๆ ที่อาจเหมาะสมกับกรณีของคุณมากกว่าสถานการณ์ที่อธิบายไว้ในบทความนี้

และเช่นเคย โปรดแสดงความคิดเห็นโดยใช้แบบฟอร์มด้านล่างหากคุณมีความคิดเห็นหรือข้อเสนอแนะใดๆ