1. 程式人生 > 實用技巧 >Samba服務配置及配置檔案說明

Samba服務配置及配置檔案說明

1、配置Samba服務為什麼要關閉防火牆(firewalld)和Selinux?

在linux作業系統中預設開啟了防火牆,Selinux也處於啟動狀態,一般狀態為enforing;所以,在我們搭建任何服務(每個服務都有自己的埠),由於防火牆和Selinux的存在導致服務的埠被攔截了,雖然可以用命令檢視服務的監聽埠,任然會訪問不到自己搭建的服務!

2、關閉防火牆和Selinux

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
 //關閉防火牆開機自啟

[root@localhost ~]# vim /etc/selinux/config 
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing              //將enforcing換成disabled
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
 [root@localhost ~]# setenforce 0        //臨時關閉selinux,也可以重啟(永久生效)
[root@localhost ~]# getenforce            //與setenforce是一對,這個是檢視selinux是否生效
Permissive

一、Samba服務

1、Samba服務介紹

1️⃣:服務全稱:Samba — SMB(Server Message Block伺服器訊息塊--微軟研發 CIFS)

2️⃣:服務功能:為網路(區域網)中客戶機(Linux/Windows)提供檔案和目錄資源共享

3️⃣:服務模式:C/S 客戶機伺服器模式

4️⃣:模式的特點:服務的提供就需要在伺服器端執行服務端程式,服務的訪問則需要在客戶機端執行客戶端程式

5️⃣:服務客戶端程式

  Linux:smbclient(檢視共享、訪問共享)   mount.cifs == mount -t cifs

  Windows:GUI-資源管理器(檢視、訪問) 對映網路驅動器

2、Samba服務相關軟體包

1️⃣:服務軟體包:samba

2️⃣:服務程序名:smbd(核心) 和 nmbd

  smbd:提供檔案和目錄共享,以及身份驗證(預設情況下,是基於IP地址的訪問共享)

  nmbd:提供客戶端通過伺服器主機名的方式訪問共享

3️⃣:服務埠號:

  TCP:139和445(smbd) tcp埠相對應的服務是smbd服務,其作用是提供對伺服器中檔案、列印資源的共享訪問

  UDP:137和138(nmbd) udp埠相對應的服務是nmbd服務,其作用是提供基於NetBIOS主機名稱的解析

3、Samba服務配置檔案

1️⃣:服務配置主檔案:/etc/samba/smb.conf (包括全域性配置、共享配置[使用者目錄及印表機共享、自定義共享])

2️⃣:服務管理指令碼檔案:/etc/rc.d/init.d/smb | nmb

3️⃣:技術手冊:/usr/share/doc/samba-版本號(直接Tab兩下檢視)

4、Samba主配置檔案中相關引數介紹

1️⃣:SAMBA安全級別

  share:匿名訪問,即客戶端訪問共享時不必輸入使用者名稱和密碼,較為常用

  user:(預設)基於身份認證訪問,即客戶端訪問共享時必須輸入正確的使用者名稱和密碼,較為常用

  server:使用指定主機進行身份驗證。即基於遠端主機完成認證的訪問

  domain:使用指定域控制器進行身份驗證。即基於遠端主機完成認證的訪問

2️⃣:配置檔案中規則:

  #號開頭的行為註釋行

  ;號開頭的行為備用設定引數,需要啟用時,刪除分號

  設定引數的方式為 引數 = 值 (等於號前後各有一個空格)

  可採用縮排功能,僅使文件清晰

3️⃣:常用引數及意義

  workgroup = MYGROUP //工作組名稱  

  server string = qiangge Samba Server //伺服器描述

  netbios name = SMBSERVER1 //SAMBA服務NETBIOS名,可與hostname不同

  interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 //提供服務的介面,可寫介面名,IP地址等

  hosts allow = 127. 192.168.12. 192.168.13. //允許訪問服務的客戶端,可寫網路號,主機IP地址等

  log file = /var/log/samba/log.%m //以每一個客戶機建立一個獨立的日誌檔案,%m代表以客戶機主機名或IP地址為檔名的組成部分

  max log size = 50 //日誌檔案的大小,單位預設為KB

  security = user

    share:匿名訪問,即客戶端訪問共享時不必輸入使用者名稱和密碼,較為常用

    user:基於身份認證訪問,即客戶端訪問共享時必須輸入正確的使用者名稱和密碼,較為常用

    server:使用指定主機進行身份驗證。即基於遠端主機完成認證的訪問

    domain:使用指定域控制器進行身份驗證。即基於遠端主機完成認證的訪問

  passdb backend = tdbsam //SAMBA使用者密碼資料庫檔案

5、關於共享目錄的說明

[shared_name] [共享資源的共享名稱] //共享目錄名稱是客戶端訪問共享時所用的名稱,建議與物理目錄名稱不同更安全

comment = Comment String 共享檔案描述
* path = /path/to/share_directory 共享檔案的絕對路徑
allow hosts = host(subnet) 允許訪問此共享資源的主機列表
deny hosts = host(subnet) 禁止訪問此共享資源的主機列表
* writable = yes|no 是否有寫許可權
* browseable = yes|no 是否瀏覽許可權(yes為可見共享,no為隱藏共享)
user = user(@group) 設定所有可能使用該共享資源的使用者列表
valid users = user(@group) 指定能夠使用該共享資源的使用者和組列表
invalid users = user(@group) 指定不能夠使用該共享資源的使用者和組
read list = user(@group) 設定能夠讀取該共享資源的使用者列表
write list = user(@group) 設定對該共享資源具有寫許可權的使用者列表
admin list = user(@group) 設定對共享資源具有管理許可權的使用者列表
* public = yes|no 指明該共享資源是否能給遊客帳號訪問
guest ok = yes|no 與public相同
hide dot files = yes|no 是否隱藏以“.”號開頭的檔案
create mode = 0755 指明新建立的檔案的屬性,一般是0755
directory mode = 0755 指明新建立的目錄的屬性,一般是0755
sync always = yes|no 指明寫操作後是否進行同步操作
short preserve case = yes|no 指明忽略檔名大小寫
preserve case = yes|no 指明保持檔名大小寫
case sensitive = yes|no 指明是否對大小寫敏感
mangle case = yes|no 指明混合大小寫
default case = upper|lower 指明預設的檔名是全部大寫還是小寫
force user = lt 強制指定建立檔案的屬主是誰
wide links = yes|no 指明是否允許共享外符號連線
max connections = 100 設定同時連線數是n
delete readonly = yes|no 指明能否刪除已經被定義為只讀的檔案

root preexec = /bin/mount -t iso9660 /dev/cdrom /mnt/cdrom 自動掛光碟機
root postexec = /bin/umount /mnt/cdrom 自動