smbcmp: a network capture diff tool for SMB traffic (SDC 2019)
สารบัญ:
- ข้อกำหนดเบื้องต้น
- การติดตั้ง Samba บน Ubuntu
- การกำหนดค่าไฟร์วอลล์
- การกำหนดค่าตัวเลือก Global Samba
- การสร้างผู้ใช้แซมบ้าและโครงสร้างไดเรกทอรี
- การสร้างผู้ใช้ Samba
- การกำหนดค่าการแบ่งปันแซมบ้า
- การเชื่อมต่อกับ Samba Share จาก Linux
- การใช้ไคลเอนต์ smbclient
- กำลังเพิ่มส่วนแบ่ง Samba
- การใช้ GUI
- ข้อสรุป
Samba เป็นการนำโพรโทคอลการแชร์ไฟล์เครือข่าย SMB / CIFS ฟรีและโอเพนซอร์สที่ช่วยให้ผู้ใช้สามารถเข้าถึงไฟล์เครื่องพิมพ์และทรัพยากรอื่น ๆ ที่ใช้ร่วมกัน
บทช่วยสอนนี้อธิบายถึงวิธีการติดตั้ง Samba บน Ubuntu 18.04 และกำหนดค่าเป็นเซิร์ฟเวอร์แบบสแตนด์อโลนเพื่อให้การแชร์ไฟล์ข้ามระบบปฏิบัติการต่างๆบนเครือข่าย
เราจะสร้างแชร์แซมบ้าและผู้ใช้ต่อไปนี้
ผู้ใช้:
- sadmin - ผู้ใช้ที่เป็นผู้ดูแลระบบที่มีสิทธิ์อ่านและเขียนในการแชร์ทั้งหมด josh - ผู้ใช้ทั่วไปที่มีการแชร์ไฟล์ส่วนตัว
หุ้น:
- ผู้ใช้ - การแชร์นี้จะสามารถเข้าถึงได้ด้วยสิทธิ์การอ่าน / เขียนโดยผู้ใช้ทั้งหมด josh - การแชร์นี้จะสามารถเข้าถึงได้ด้วยสิทธิ์อ่าน / เขียนโดยผู้ใช้ josh และ sadmin เท่านั้น
แชร์ไฟล์จะสามารถเข้าถึงได้จากอุปกรณ์ทั้งหมดในเครือข่ายของคุณ ต่อมาในบทช่วยสอนนี้เราจะให้คำแนะนำโดยละเอียดเกี่ยวกับวิธีการเชื่อมต่อกับเซิร์ฟเวอร์ Samba จากไคลเอนต์ Linux, Windows และ macOS
ข้อกำหนดเบื้องต้น
ก่อนดำเนินการต่อให้แน่ใจว่าคุณได้เข้าสู่ระบบ Ubuntu 18.04 ในฐานะผู้ใช้ที่มีสิทธิ์ sudo
การติดตั้ง Samba บน Ubuntu
Samba มีให้บริการจากที่เก็บ Ubuntu อย่างเป็นทางการ หากต้องการติดตั้งบนระบบ Ubuntu ของคุณให้ทำตามขั้นตอนด้านล่าง:
-
เริ่มต้นด้วยการอัพเดทดัชนีแพ็คเกจ apt:
sudo apt update
ติดตั้งแพ็คเกจ Samba ด้วยคำสั่งต่อไปนี้:
sudo apt install samba
เมื่อการติดตั้งเสร็จสิ้นบริการ Samba จะเริ่มต้นโดยอัตโนมัติ ในการตรวจสอบว่าเซิร์ฟเวอร์ Samba ทำงานอยู่หรือไม่ให้พิมพ์:
sudo systemctl status smbd
ผลลัพธ์ควรมีลักษณะดังนี้ด้านล่างแสดงว่าบริการ Samba เปิดใช้งานและทำงานอยู่:
● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-11-27 09:25:38 UTC; 2min 12s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 15142 (smbd) Status: "smbd: ready to serve connections…" Tasks: 4 (limit: 1152) CGroup: /system.slice/smbd.service…
ณ จุดนี้ Samba ได้รับการติดตั้งและพร้อมที่จะกำหนดค่าแล้ว
การกำหนดค่าไฟร์วอลล์
สมมติว่าคุณใช้
UFW
เพื่อจัดการไฟร์วอลล์ของคุณคุณสามารถเปิดพอร์ตได้โดยเปิดใช้งานโปรไฟล์ 'Samba':
การกำหนดค่าตัวเลือก Global Samba
ก่อนที่จะทำการเปลี่ยนแปลงไฟล์การกำหนดค่า Samba ให้สร้างการสำรองข้อมูลเพื่อการอ้างอิงในอนาคต:
sudo cp /etc/samba/smb.conf{,.backup}
ไฟล์กำหนดค่าเริ่มต้นที่มาพร้อมกับแพ็คเกจ Samba นั้นได้รับการกำหนดค่าสำหรับเซิร์ฟเวอร์ Samba แบบสแตนด์อโลน เปิดไฟล์และตรวจสอบว่า
server role
ถูกตั้งเป็น
standalone server
sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf
… # Most people will want "standalone sever" or "member server". # Running as "active directory domain controller" will require first # running "samba-tool domain provision" to wipe databases and create a # new domain. server role = standalone server…
โดยค่าเริ่มต้น Samba จะรับฟังทุกอินเตอร์เฟส หากคุณต้องการ จำกัด การเข้าถึงเซิร์ฟเวอร์ Samba จากเครือข่ายภายในของคุณเท่านั้นไม่ต้องใส่เครื่องหมายสองบรรทัดต่อไปนี้และระบุอินเทอร์เฟซที่จะผูกกับ:
/etc/samba/smb.conf
… # The specific set of interfaces / networks to bind to # This can be either the interface name or an IP address/netmask; # interface names are normally preferred interfaces = 127.0.0.0/8 eth0 # Only bind to the named interfaces and/or networks; you must use the # 'interfaces' option above to use this. # It is recommended that you enable this feature if your Samba machine is # not protected by a firewall or is a firewall itself. However, this # option cannot handle dynamic or non-broadcast interfaces correctly. bind interfaces only = yes…
เมื่อดำเนินการเสร็จแล้วให้เรียกใช้ยูทิลิตี
testparm
เพื่อตรวจสอบข้อผิดพลาดของไฟล์แซมบ้า หากไม่มีข้อผิดพลาดทางไวยากรณ์คุณจะเห็น
Loaded services file OK.
ในที่สุดเริ่มบริการ Samba ด้วย:
sudo systemctl restart smbd
sudo systemctl restart nmbd
การสร้างผู้ใช้แซมบ้าและโครงสร้างไดเรกทอรี
เพื่อการบำรุงรักษาและความยืดหยุ่นที่ง่ายขึ้นแทนที่จะใช้โฮมไดเร็กตอรี่มาตรฐาน (
/home/user
) ไดเรกทอรีและข้อมูลของแซมบ้าทั้งหมดจะอยู่ในไดเรกทอรี
/samba
ในการสร้างประเภทไดเรกทอรี
/samba
:
sudo mkdir /samba
ตั้งค่าความเป็นเจ้าของกลุ่มเป็น
sambashare
กลุ่มนี้ถูกสร้างขึ้นระหว่างการติดตั้ง Samba ภายหลังเราจะเพิ่มผู้ใช้ Samba ทั้งหมดในกลุ่มนี้
sudo chgrp sambashare /samba
Samba ใช้ผู้ใช้ Linux และระบบการอนุญาตกลุ่ม แต่มีกลไกการพิสูจน์ตัวตนแยกต่างหากจากการรับรองความถูกต้อง Linux มาตรฐาน เราจะสร้างผู้ใช้โดยใช้เครื่องมือ Linux
useradd
มาตรฐานจากนั้นตั้งรหัสผ่านผู้ใช้ด้วยยูทิลิตี้
smbpasswd
ดังที่เรากล่าวถึงในบทนำเราจะสร้างผู้ใช้ปกติที่จะสามารถเข้าถึงการแชร์ไฟล์ส่วนตัวและบัญชีผู้ดูแลระบบหนึ่งบัญชีที่มีการเข้าถึงแบบอ่านและเขียนสำหรับการแชร์ทั้งหมดบนเซิร์ฟเวอร์ Samba
การสร้างผู้ใช้ Samba
เพื่อสร้างผู้ใช้ใหม่ชื่อ
josh
ใช้คำสั่งต่อไปนี้:
sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh
ตัวเลือก
useradd
มีความหมายต่อไปนี้:
- -M- อย่าสร้างโฮมไดเรกทอรีของผู้ใช้ เราจะสร้างไดเรกทอรีนี้ด้วยตนเอง
-d /samba/josh
- ตั้งค่าโฮมไดเร็กทอรีของผู้ใช้เป็น/samba/josh
-s /usr/sbin/nologin
- ปิดใช้งานการเข้าถึงเชลล์สำหรับผู้ใช้นี้-G sambashare
- เพิ่มผู้ใช้ไปยังกลุ่มsambashare
สร้างโฮมไดเรกทอรีของผู้ใช้และตั้งค่าความเป็นเจ้าของไดเรกทอรีเป็นผู้ใช้
josh
และกลุ่ม
sambashare
:
sudo mkdir /samba/josh
sudo chown josh:sambashare /samba/josh
คำสั่งต่อไปนี้จะเพิ่มบิต setgid ไปยังไดเรกทอรี
/samba/josh
ดังนั้นไฟล์ที่สร้างขึ้นใหม่ในไดเรกทอรีนี้จะสืบทอดกลุ่มของไดเรกทอรีหลัก ด้วยวิธีนี้ไม่ว่าผู้ใช้คนใดจะสร้างไฟล์ใหม่ไฟล์จะมีกลุ่มของ
sambashare
ตัวอย่างเช่นหากคุณไม่ได้ตั้งค่าการอนุญาตของไดเรกทอรีเป็น
2770
และผู้ใช้
sadmin
สร้างไฟล์ใหม่ผู้ใช้
josh
จะไม่สามารถอ่าน / เขียนไฟล์นี้ได้
sudo chmod 2770 /samba/josh
เพิ่มบัญชีผู้ใช้
josh
ไปยังฐานข้อมูล Samba โดยการตั้งรหัสผ่านผู้ใช้:
sudo smbpasswd -a josh
คุณจะได้รับแจ้งให้ป้อนและยืนยันรหัสผ่านของผู้ใช้
New SMB password: Retype new SMB password: Added user josh.
เมื่อตั้งรหัสผ่านเพื่อเปิดใช้งานบัญชี Samba:
sudo smbpasswd -e josh
Enabled user josh.
หากต้องการสร้างผู้ใช้รายใหม่ให้ทำซ้ำกระบวนการเดียวกันกับเมื่อสร้างผู้ใช้
josh
ต่อไปเรามาสร้างผู้ใช้งานและกลุ่ม
sadmin
สมาชิกทั้งหมดของกลุ่มนี้จะมีสิทธิ์ระดับผู้ดูแล ในภายหลังหากคุณต้องการให้สิทธิ์การดูแลระบบแก่ผู้ใช้รายอื่นเพียงเพิ่มผู้ใช้นั้นในกลุ่ม
sadmin
สร้างผู้ใช้ที่เป็นผู้ดูแลระบบโดยพิมพ์:
sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin
คำสั่งข้างต้นจะสร้างกลุ่ม
sadmin
และเพิ่มผู้ใช้ไปยังกลุ่ม
sambashare
และ
sambashare
ตั้งรหัสผ่านและเปิดใช้งานผู้ใช้:
sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin
ถัดไปสร้างไดเรกทอรี
Users
แชร์:
sudo mkdir /samba/users
ตั้งค่าความเป็นเจ้าของไดเรกทอรีเป็นผู้ใช้
sadmin
และกลุ่ม
sambashare
:
sudo chown sadmin:sambashare /samba/users
ไดเรกทอรีนี้จะสามารถเข้าถึงได้โดยผู้ใช้ที่ได้รับการรับรองความถูกต้องทั้งหมด คำสั่ง
chmod
ต่อไปนี้ให้สิทธิ์การเขียน / อ่านแก่สมาชิกของกลุ่ม
sambashare
ใน
sambashare
/samba/users
:
การกำหนดค่าการแบ่งปันแซมบ้า
เปิดไฟล์การตั้งค่า Samba และผนวกส่วนต่างๆ:
sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf
path = /samba/users browseable = yes read only = no force create mode = 0660 force directory mode = 2770 valid users = @sambashare @sadmin path = /samba/josh browseable = no read only = no force create mode = 0660 force directory mode = 2770 valid users = josh @sadmin
ตัวเลือกมีความหมายต่อไปนี้:
-
path
- เส้นทางไปสู่การแบ่งปันbrowseable
- ดูว่าการแชร์ควรอยู่ในรายชื่อที่มีอยู่หรือไม่ เมื่อตั้งค่าเป็นno
ผู้ใช้รายอื่นจะไม่สามารถดูส่วนแบ่งได้read only
- ผู้ใช้ที่ระบุในรายชื่อvalid users
สามารถเขียนลงในส่วนแบ่งนี้ได้หรือไม่force create mode
- ตั้งค่าการอนุญาตสำหรับไฟล์ที่สร้างขึ้นใหม่ในการแชร์นี้force directory mode
- ตั้งค่าการอนุญาตสำหรับไดเรกทอรีที่สร้างขึ้นใหม่ในการแชร์นี้valid users
- รายชื่อผู้ใช้และกลุ่มที่ได้รับอนุญาตให้เข้าถึงการแชร์ กลุ่มจะนำหน้าด้วยสัญลักษณ์@
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกที่มีให้ดูหน้าเอกสารประกอบของ Samba
เมื่อเสร็จแล้วให้รีสตาร์ทบริการ Samba ด้วย:
sudo systemctl restart smbd
sudo systemctl restart nmbd
ในส่วนต่อไปนี้เราจะแสดงวิธีการเชื่อมต่อกับ Samba ที่ใช้ร่วมกันจากไคลเอนต์ Linux, MacOS และ Windows
การเชื่อมต่อกับ Samba Share จาก Linux
ผู้ใช้ Linux สามารถเข้าถึงการแบ่งปันแซมบ้าจากบรรทัดคำสั่งโดยใช้ตัวจัดการไฟล์หรือติดตั้งการแบ่งปันแซมบ้า
การใช้ไคลเอนต์ smbclient
smbclient
เป็นเครื่องมือที่ช่วยให้คุณเข้าถึง Samba จากบรรทัดคำสั่ง แพ็คเกจ
smbclient
ไม่ได้ติดตั้งไว้ล่วงหน้าใน Linux distros ส่วนใหญ่ดังนั้นคุณจะต้องติดตั้งกับตัวจัดการแพ็คเกจการแจกจ่ายของคุณ
ในการติดตั้ง
smbclient
บน Ubuntu และเดเบียนทำงาน:
sudo apt install smbclient
ในการติดตั้ง
smbclient
บน CentOS และ Fedora ให้รัน:
sudo yum install samba-client
ไวยากรณ์ในการเข้าถึงการใช้งานร่วมกันของ Samba มีดังนี้:
mbclient //samba_hostname_or_server_ip/share_name -U username
ตัวอย่างเช่นการเชื่อมต่อกับการแชร์ชื่อ
josh
บนเซิร์ฟเวอร์ Samba ที่มีที่อยู่ IP
192.168.121.118
ในฐานะผู้ใช้ที่คุณจะเรียกใช้:
smbclient //192.168.121.118/josh -U josh
คุณจะได้รับแจ้งให้ป้อนรหัสผ่านของผู้ใช้
Enter WORKGROUP\josh's password:
เมื่อคุณป้อนรหัสผ่านคุณจะถูกล็อกอินเข้าสู่อินเตอร์เฟสบรรทัดคำสั่งของ Samba
Try "help" to get a list of possible commands. smb: \>
กำลังเพิ่มส่วนแบ่ง Samba
ในการติดตั้ง Samba share บน Linux ก่อนอื่นคุณต้องติดตั้งแพ็กเกจ
cifs-utils
ในการทำงานของ Ubuntu และ Debian:
sudo apt install cifs-utils
ใน CentOS และ Fedora ทำงาน:
sudo yum install cifs-utils
ถัดไปสร้างจุดเมานท์:
sudo mkdir /mnt/smbmount
เมานต์การแบ่งปันโดยใช้คำสั่งต่อไปนี้:
sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount
ตัวอย่างเช่นการเมานต์แชร์ชื่อ
josh
บนเซิร์ฟเวอร์ Samba ที่มีที่อยู่ IP
192.168.121.118
ในฐานะผู้ใช้
josh
ไปยังจุดเมาน
/mnt/smbmount
คุณจะเรียกใช้:
sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount
คุณจะได้รับแจ้งให้ป้อนรหัสผ่านของผู้ใช้
Password for josh@//192.168.121.118/josh: ********
การใช้ GUI
ไฟล์ตัวจัดการไฟล์เริ่มต้นใน Gnome มีตัวเลือกในการเข้าถึงการแชร์แซมบ้า
- เปิดไฟล์และคลิกที่ "สถานที่อื่น ๆ " ในแถบด้านข้างใน“ เชื่อมต่อกับเซิร์ฟเวอร์” ป้อนที่อยู่ของการแบ่งปันแซมบ้าในรูปแบบต่อไปนี้
smb://samba_hostname_or_server_ip/sharename
คลิก“ เชื่อมต่อ” และหน้าจอต่อไปนี้จะปรากฏขึ้น:
ข้อสรุป
ในบทช่วยสอนนี้คุณได้เรียนรู้วิธีการติดตั้งเซิร์ฟเวอร์ Samba บน Ubuntu 18.04 และสร้างการแชร์และผู้ใช้ประเภทต่างๆ เรายังแสดงวิธีการเชื่อมต่อกับเซิร์ฟเวอร์ Samba จากอุปกรณ์ Linux, macOS และ Windows
แซมบ้าอูบุนตูสนับสนุน Cloud Computing จะเป็นจุดเด่นของ Ubuntu ที่ปล่อยออกมาในเดือนตุลาคมซึ่งเป็นส่วนแบ่งการจำหน่ายของลินุกซ์ที่จัดทำโดย Canonical โดย Mark Shuttleworth ได้ประกาศในอีเมลไปยังผู้พัฒนาซอฟท์แวร์ Ubuntu เมื่อวันศุกร์ที่ผ่านมา

เซิร์ฟเวอร์ Ubuntu 9.10 ซึ่งมีชื่อเล่นว่า " Karmic Koala "จะรวมการสนับสนุน EC2 ซึ่งเป็นบริการคอมพิวเตอร์คลาวด์ที่ดำเนินการโดย Amazon Web Services และ Amazon Machine Images (AMIs) มาตรฐานเพื่อให้แอพพลิเคชันที่ทำงานในระบบคลาวด์สามารถทำงานร่วมกันได้โดยง่ายโดยใช้การกำหนดค่าที่คล้ายกัน , Shuttleworth ได้เขียน
Canonical สร้างความตื่นเต้นอย่างมากเมื่อต้นปีที่ผ่านมาเมื่อประกาศแผนการ Ubuntu สำหรับ Android ซึ่งรวมถึงสมาร์ทโฟนแบบแท่นวางซึ่งสามารถเปิดเดสก์ท็อป Ubuntu Linux แบบเต็มรูปแบบได้

ไม่มีการระบุชื่อที่เฉพาะเจาะจงในเวลาที่เกี่ยวกับคู่ค้าของผู้ผลิต แต่เมื่อเร็ว ๆ นี้โครงการแนวคิดใหม่ ๆ ปรากฏขึ้นเพื่อพยายามนำวิสัยทัศน์ไปสู่ชีวิต
วิธีการติดตั้งและกำหนดค่าแซมบ้าบน CentOS 7

ในบทช่วยสอนนี้เราจะแสดงวิธีการติดตั้ง Samba บน CentOS 7 และกำหนดค่าเป็นเซิร์ฟเวอร์แบบสแตนด์อโลนเพื่อให้การแชร์ไฟล์ข้ามระบบปฏิบัติการต่างๆบนเครือข่าย