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

วิธีการติดตั้ง Samba บน Ubuntu เพื่อการแชร์ไฟล์บน Windows


Samba เป็นซอฟต์แวร์ฟรี/โอเพ่นซอร์สและใช้กันอย่างแพร่หลายสำหรับการแชร์ไฟล์และบริการการพิมพ์ระหว่างระบบที่คล้าย Unix รวมถึงโฮสต์ Linux และ Windows บนเครือข่ายเดียวกัน

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

การอ่านที่แนะนำ: วิธีติดตั้ง Samba4 บน CentOS/RHEL 7 สำหรับการแชร์ไฟล์บน Windows

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

  1. การตั้งค่าตัวควบคุมโดเมน Samba4 Active Directory

ติดตั้งและกำหนดค่า Samba ใน Ubuntu

เซิร์ฟเวอร์ Samba สามารถติดตั้งได้จากที่เก็บเริ่มต้นของ Ubuntu โดยใช้เครื่องมือ apt package manager ดังที่แสดง

sudo apt install samba samba-common python-dnspython

เมื่อติดตั้งเซิร์ฟเวอร์ samba แล้ว ตอนนี้ก็ถึงเวลากำหนดค่าเซิร์ฟเวอร์ samba เป็น: ไม่เปิดเผยตัวตนที่ไม่ปลอดภัย และ การแบ่งปันไฟล์ที่ปลอดภัย

สำหรับสิ่งนี้ เราจำเป็นต้องแก้ไขไฟล์การกำหนดค่า Samba หลัก /etc/samba/smb.conf (ซึ่งอธิบายคำสั่งการกำหนดค่าต่างๆ)

ขั้นแรกให้สำรองไฟล์การกำหนดค่า samba ดั้งเดิมดังนี้

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

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

ข้อสำคัญ: ก่อนที่จะดำเนินการใดๆ เพิ่มเติม ตรวจสอบให้แน่ใจว่าเครื่อง Windows อยู่ใน กลุ่มงาน เดียวกันซึ่งจะได้รับการกำหนดค่าบนเซิร์ฟเวอร์ Ubuntu

ตรวจสอบการตั้งค่ากลุ่มงานเครื่อง Windows

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

หรือเปิดพรอมต์คำสั่งและดูโดยใช้คำสั่งด้านล่างแล้วค้นหา “โดเมนเวิร์กสเตชัน

>net config workstation

เมื่อคุณรู้จักเวิร์กกรุ๊ป Windows ของคุณแล้ว ก็ถึงเวลาดำเนินการต่อและกำหนดค่าเซิร์ฟเวอร์ samba สำหรับการแชร์ไฟล์

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

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

sudo mkdir -p /srv/samba/anonymous_shares

จากนั้นตั้งค่าการอนุญาตที่เหมาะสมในไดเร็กทอรี

sudo chmod -R 0775 /srv/samba/anonymous_shares
sudo chown -R nobody:nogroup /srv/samba/anonymous_shares

ตอนนี้เปิดไฟล์กำหนดค่า

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

แก้ไขหรือแก้ไขการตั้งค่าคำสั่งถัดไปตามที่อธิบายไว้ด้านล่าง

global]
	workgroup = WORKGROUP
	netbios name = ubuntu
	security = user
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	browsable =yes
	writable = yes
	guest ok = yes
	read only = no
	force user = nobody

ตอนนี้ตรวจสอบการตั้งค่าแซมบ้าปัจจุบันโดยรันคำสั่งด้านล่าง

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

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb

[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes

จากนั้นรีสตาร์ทบริการ Samba เพื่อให้มีผลกับการเปลี่ยนแปลงข้างต้น

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

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

ไปที่เครื่อง Windows และเปิด “เครือข่าย ” จากหน้าต่าง Windows Explorer คลิกที่โฮสต์ Ubuntu (TECMINT สำหรับกรณีของเรา) หรือลองเข้าถึงเซิร์ฟเวอร์ samba โดยใช้ที่อยู่ IP

\2.168.43.168

หมายเหตุ: ใช้คำสั่ง ifconfig เพื่อรับที่อยู่ IP ของเซิร์ฟเวอร์ Ubuntu

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

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

หากต้องการใช้รหัสผ่านป้องกันการแชร์ Samba คุณต้องสร้างกลุ่ม “smbgrp” และตั้งรหัสผ่านสำหรับผู้ใช้แต่ละคน ในตัวอย่างนี้ ฉันใช้ aaronkilik เป็นผู้ใช้และรหัสผ่านเป็น “tecmint

sudo addgroup smbgrp
sudo usermod aaronkilik -aG smbgrp
sudo smbpasswd -a aaronkilik

หมายเหตุ: โหมดความปลอดภัยของ samba: security=user กำหนดให้ไคลเอนต์ป้อนชื่อผู้ใช้และรหัสผ่านเพื่อเชื่อมต่อกับการแชร์

บัญชีผู้ใช้ Samba แยกจากบัญชีระบบ อย่างไรก็ตาม คุณสามารถเลือกติดตั้งแพ็คเกจ libpam-winbind ซึ่งใช้ในการซิงค์ผู้ใช้ระบบและรหัสผ่านกับฐานข้อมูลผู้ใช้ samba

sudo apt install libpam-winbind

จากนั้นสร้างไดเร็กทอรีที่ปลอดภัยที่จะเก็บไฟล์ที่แชร์ไว้

sudo mkdir -p /srv/samba/secure_shares

จากนั้น ตั้งค่าการอนุญาตที่เหมาะสมในไดเร็กทอรี

sudo chmod -R 0770 /srv/samba/secure_shares
sudo chown -R root:smbgrp /srv/samba/secure_shares

ตอนนี้เปิดไฟล์กำหนดค่า

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

แก้ไขหรือแก้ไขการตั้งค่าคำสั่งถัดไปตามที่อธิบายไว้ด้านล่าง

[Secure]
	comment = Secure File Server Share
	path =  /srv/samba/secure_shares
	valid users = @smbgrp
	guest ok = no
	writable = yes
	browsable = yes

เช่นเดียวกับเมื่อก่อน ให้รันคำสั่งนี้เพื่อดูการตั้งค่าแซมบ้าปัจจุบันของคุณ

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

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb
[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes
[Secure]
	comment = Secure File Server Share
	path = /srv/samba/secure_shares
	valid users = @smbgrp
	read only = No

เมื่อคุณเสร็จสิ้นการกำหนดค่าข้างต้นแล้ว ให้เริ่มบริการ Samba ใหม่เพื่อใช้การเปลี่ยนแปลง

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

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

เช่นเคยในเครื่อง Windows และเปิด “เครือข่าย ” จากหน้าต่าง Windows Explorer คลิกที่โฮสต์ Ubuntu (TECMINT สำหรับกรณีของเรา) คุณอาจได้รับข้อผิดพลาดด้านล่าง หากไม่ดำเนินการขั้นตอนต่อไป

ลองเข้าถึงเซิร์ฟเวอร์โดยใช้ที่อยู่ IP เช่น \\192.168.43.168 แบบนี้ จากนั้นป้อนข้อมูลประจำตัว (ชื่อผู้ใช้และรหัสผ่าน) สำหรับผู้ใช้ aaronkilik และคลิก ตกลง

ตอนนี้คุณจะเห็นไดเร็กทอรีที่แชร์ทั้งหมด คลิก ปลอดภัย เพื่อเปิด

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

เปิดใช้งาน Samba ในไฟร์วอลล์ UFW ใน Ubuntu

หากคุณเปิดใช้งาน/ใช้งานไฟร์วอลล์ UFW บนระบบของคุณ คุณต้องเพิ่มกฎเพื่ออนุญาตให้ Samba ผ่านไฟร์วอลล์ของคุณได้

เพื่อทดสอบสิ่งนี้ เราได้ใช้รูปแบบเครือข่าย 192.168.43.0 เรียกใช้คำสั่งด้านล่างเพื่อระบุที่อยู่เครือข่ายของคุณ

sudo ufw allow proto udp to any port 137 from 192.168.43.0/24
sudo ufw allow proto udp to any port 138 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 139 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 445 from 192.168.43.0/24

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

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

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