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

วิธีติดตั้ง Samba4 บน CentOS 7 สำหรับการแชร์ไฟล์บน Windows


ในบทความล่าสุดของเรา เราได้แสดงวิธีการติดตั้ง Samba4 บน Ubuntu สำหรับการแชร์ไฟล์พื้นฐานระหว่างระบบ Ubuntu และเครื่อง Windows ที่เราดูที่การกำหนดค่าแบบไม่เปิดเผยตัวตน (ไม่ปลอดภัย) รวมถึงการแชร์ไฟล์ที่ปลอดภัย

ที่นี่ เราจะอธิบายวิธีการติดตั้งและกำหนดค่า Samba4 บน CentOS 7 (ใช้ได้กับ RHEL 7 ด้วย) สำหรับการแชร์ไฟล์พื้นฐานระหว่างระบบ Linux อื่นๆ และเครื่อง Windows

ข้อสำคัญ: ตั้งแต่เวอร์ชัน 4.0 ขึ้นไป Samba สามารถทำงานเป็นตัวควบคุมโดเมน Active Directory (AD) (DC) เราขอแนะนำให้คุณอ่านซีรี่ส์พิเศษเกี่ยวกับการตั้งค่า Samba4 Active Directory Domain Controller ซึ่งรวมถึงหัวข้อที่สำคัญสำหรับ Ubuntu, CentOS และ Windows

ติดตั้ง Samba4 ใน CentOS 7

1. ขั้นแรกให้ติดตั้ง Samba4 และแพ็คเกจที่จำเป็นจากที่เก็บ CentOS เริ่มต้นโดยใช้เครื่องมือตัวจัดการแพ็คเกจ yum ดังที่แสดง

yum install samba samba-client samba-common

2. หลังจากติดตั้งแพ็คเกจ samba แล้ว ให้เปิดใช้งานบริการ samba เพื่ออนุญาตผ่านไฟร์วอลล์ระบบด้วยคำสั่งเหล่านี้

firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload

ตรวจสอบการตั้งค่าเวิร์กกรุ๊ปของเครื่อง Windows

3. ก่อนที่คุณจะดำเนินการกำหนดค่า samba ตรวจสอบให้แน่ใจว่าเครื่อง Windows อยู่ใน กลุ่มงาน เดียวกันที่จะกำหนดค่าบนเซิร์ฟเวอร์ CentOS

มีสองวิธีที่เป็นไปได้ในการดูการตั้งค่าเวิร์กกรุ๊ปของเครื่อง Windows:

  • คลิกขวาที่ “พีซีเครื่องนี้ ” หรือ “คอมพิวเตอร์ของฉัน ” → คุณสมบัติการตั้งค่าระบบขั้นสูง ชื่อคอมพิวเตอร์.

  • หรือเปิด พรอมต์ cmd และเรียกใช้คำสั่งต่อไปนี้ จากนั้นมองหา “โดเมนเวิร์กสเตชัน ” ในเอาต์พุตดังที่แสดงด้านล่าง
>net config workstation

การกำหนดค่า Samba4 บน CentOS 7

4. ไฟล์การกำหนดค่า Samba หลักคือ /etc/samba/smb.conf ไฟล์ต้นฉบับมาพร้อมกับการตั้งค่าการกำหนดค่าล่วงหน้าซึ่งอธิบายคำสั่งการกำหนดค่าต่างๆ เพื่อเป็นแนวทางแก่คุณ

แต่ก่อนที่จะกำหนดค่า samba ฉันขอแนะนำให้คุณสำรองข้อมูลไฟล์เริ่มต้นเช่นนี้

cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

จากนั้น ดำเนินการกำหนดค่า samba สำหรับบริการ ไม่ระบุชื่อ และ การแชร์ไฟล์ที่ปลอดภัย ตามที่อธิบายด้านล่าง

Samba4 การแชร์ไฟล์โดยไม่ระบุชื่อ

5. ขั้นแรกให้สร้างไดเร็กทอรีที่ใช้ร่วมกันซึ่งไฟล์จะถูกจัดเก็บไว้บนเซิร์ฟเวอร์และตั้งค่าการอนุญาตที่เหมาะสมในไดเร็กทอรี

mkdir -p /srv/samba/anonymous
chmod -R 0775 /srv/samba/anonymous
chown -R nobody:nobody /srv/samba/anonymous

นอกจากนี้ คุณต้องเปลี่ยนบริบทความปลอดภัยของ SELinux สำหรับไดเร็กทอรีที่ใช้ร่วมกันของ samba ดังนี้

chcon -t samba_share_t /srv/samba/anonymous

6. จากนั้น เปิดไฟล์การกำหนดค่า samba เพื่อแก้ไข ซึ่งคุณสามารถแก้ไข/เพิ่มส่วนด้านล่างด้วยคำสั่งที่เกี่ยวข้อง

vi /etc/samba/smb.conf
[global]
	workgroup = WORKGROUP
	netbios name = centos
	security = user
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous
	browsable =yes
	writable = yes
	guest ok = yes
	read only = no
	force user = nobody

7. ตอนนี้ให้ตรวจสอบการตั้งค่า samba ปัจจุบันโดยเรียกใช้คำสั่งด้านล่าง

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Anonymous]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = centos
	printcap name = cups
	security = USER
	idmap config * : backend = tdb
	cups options = raw
[homes]
	comment = Home Directories
	browseable = No
	inherit acls = Yes
	read only = No
	valid users = %S %D%w%S
[printers]
	comment = All Printers
	path = /var/tmp
	browseable = No
	printable = Yes
	create mask = 0600
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	create mask = 0664
	directory mask = 0775
	write list = root
[Anonymous]
 	comment = Anonymous File Server Share
	path = /srv/samba/anonymous
	force user = nobody
	guest ok = Yes
	read only = No

8. สุดท้าย ให้เริ่มและเปิดใช้งานบริการ samba เพื่อเริ่มต้นโดยอัตโนมัติในการบูตครั้งถัดไป และใช้การเปลี่ยนแปลงข้างต้นเพื่อให้มีผล

systemctl enable smb.service
systemctl enable nmb.service
systemctl start smb.service
systemctl start nmb.service

ทดสอบการแชร์ไฟล์ Samba แบบไม่เปิดเผยตัวตน

9. บนเครื่อง Windows ให้เปิด “เครือข่าย ” จากหน้าต่าง Windows Explorer จากนั้นคลิกที่โฮสต์ CentOS หรือลองอย่างอื่น เข้าถึงเซิร์ฟเวอร์โดยใช้ที่อยู่ IP (ใช้คำสั่ง ifconfig เพื่อรับที่อยู่ IP)

e.g. \2.168.43.168.

10. จากนั้น เปิดไดเร็กทอรี Anonymous และลองเพิ่มไฟล์ในนั้นเพื่อแชร์กับผู้ใช้รายอื่น

ตั้งค่าการแชร์ไฟล์ที่ปลอดภัยของ Samba4

11. เริ่มต้นด้วยการสร้างกลุ่มระบบ samba จากนั้นเพิ่มผู้ใช้ในกลุ่มและตั้งรหัสผ่านสำหรับผู้ใช้แต่ละคนเช่นนั้น

groupadd smbgrp
usermod tecmint -aG smbgrp
smbpasswd -a tecmint

12. จากนั้นสร้างไดเร็กทอรีที่ปลอดภัยซึ่งไฟล์ที่แชร์จะถูกเก็บไว้ และตั้งค่าการอนุญาตที่เหมาะสมบนไดเร็กทอรีด้วยบริบทความปลอดภัยของ SELinux สำหรับ samba

mkdir -p /srv/samba/secure
chmod -R 0770 /srv/samba/secure
chown -R root:smbgrp /srv/samba/secure
chcon -t samba_share_t /srv/samba/secure

13. จากนั้นให้เปิดไฟล์การกำหนดค่าเพื่อแก้ไขและแก้ไข/เพิ่มส่วนด้านล่างพร้อมกับคำสั่งที่เกี่ยวข้อง

vi /etc/samba/smb.conf
[Secure]
	comment = Secure File Server Share
	path =  /srv/samba/secure
	valid users = @smbgrp
	guest ok = no
	writable = yes
	browsable = yes

14. ตรวจสอบการตั้งค่าการกำหนดค่า samba อีกครั้งโดยเรียกใช้คำสั่งต่อไปนี้

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Anonymous]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = centos
	printcap name = cups
	security = USER
	idmap config * : backend = tdb
	cups options = raw
[homes]
	comment = Home Directories
	browseable = No
	inherit acls = Yes
	read only = No
	valid users = %S %D%w%S
[printers]
	comment = All Printers
	path = /var/tmp
	browseable = No
	printable = Yes
	create mask = 0600
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	create mask = 0664
	directory mask = 0775
	write list = root
[Anonymous]
 	comment = Anonymous File Server Share
	path = /srv/samba/anonymous
	force user = nobody
	guest ok = Yes
	read only = No
[Secure]
	comment = Secure File Server Share
	path = /srv/samba/secure
	read only = No
	valid users = @smbgrp

15. เริ่มบริการ Samba ใหม่เพื่อใช้การเปลี่ยนแปลง

systemctl restart smb.service
systemctl restart nmb.service

การทดสอบการแชร์ไฟล์ Samba ที่ปลอดภัย

16. ไปที่เครื่อง Windows เปิด “เครือข่าย ” จากหน้าต่าง Windows Explorer จากนั้นคลิกที่โฮสต์ CentOS หรือพยายามเข้าถึง เซิร์ฟเวอร์ที่ใช้ที่อยู่ IP

e.g. \2.168.43.168.

คุณจะถูกขอให้ระบุชื่อผู้ใช้และรหัสผ่านเพื่อเข้าสู่ระบบเซิร์ฟเวอร์ CentOS เมื่อคุณป้อนข้อมูลรับรองแล้ว คลิก ตกลง

17. เมื่อคุณเข้าสู่ระบบสำเร็จ คุณจะเห็นไดเร็กทอรีที่แชร์ของ samba ทั้งหมด ขณะนี้สามารถแบ่งปันไฟล์บางไฟล์กับผู้ใช้ที่ได้รับอนุญาตรายอื่นบนเครือข่ายได้อย่างปลอดภัยโดยการวางไฟล์เหล่านั้นไว้ในไดเร็กทอรี Secure

คุณยังสามารถตรวจสอบบทความที่เป็นประโยชน์เกี่ยวกับการแชร์ไฟล์ Samba บนเครือข่ายได้

  1. วิธีเมานท์/ถอนเมานต์ระบบไฟล์ Local และ Network (Samba & NFS) ใน Linux
  2. การใช้ ACL (รายการควบคุมการเข้าถึง) และการติดตั้ง Samba/NFS Shares
  3. วิธีแก้ไขช่องโหว่ SambaCry (CVE-2017-7494) ในระบบ Linux

ในคู่มือนี้ เราได้แสดงวิธีการตั้งค่า Samba4 สำหรับการแชร์ไฟล์แบบไม่เปิดเผยตัวตนและปลอดภัยระหว่าง CentOS และระบบ Linux อื่นๆ รวมถึงเครื่อง Windows แบ่งปันความคิดใด ๆ กับเราผ่านทางส่วนความคิดเห็นด้านล่าง