Android

วิธีการติดตั้งและกำหนดค่าแซมบ้าบน Ubuntu 18.04

smbcmp: a network capture diff tool for SMB traffic (SDC 2019)

smbcmp: a network capture diff tool for SMB traffic (SDC 2019)

สารบัญ:

Anonim

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 ของคุณให้ทำตามขั้นตอนด้านล่าง:

  1. เริ่มต้นด้วยการอัพเดทดัชนีแพ็คเกจ 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':

sudo ufw allow '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 :

sudo chmod 2770 /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 มีตัวเลือกในการเข้าถึงการแชร์แซมบ้า

  1. เปิดไฟล์และคลิกที่ "สถานที่อื่น ๆ " ในแถบด้านข้างใน“ เชื่อมต่อกับเซิร์ฟเวอร์” ป้อนที่อยู่ของการแบ่งปันแซมบ้าในรูปแบบต่อไปนี้ smb://samba_hostname_or_server_ip/sharename คลิก“ เชื่อมต่อ” และหน้าจอต่อไปนี้จะปรากฏขึ้น:

ข้อสรุป

ในบทช่วยสอนนี้คุณได้เรียนรู้วิธีการติดตั้งเซิร์ฟเวอร์ Samba บน Ubuntu 18.04 และสร้างการแชร์และผู้ใช้ประเภทต่างๆ เรายังแสดงวิธีการเชื่อมต่อกับเซิร์ฟเวอร์ Samba จากอุปกรณ์ Linux, macOS และ Windows

แซมบ้าอูบุนตู