Samba簡介與配置(匿名&本地用戶驗證)
阿新 • • 發佈:2019-01-15
語法錯誤 ring stp ane 之間 glob 常用 limit wall
Samba簡介
Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。
在此之前我們已經了解了NFS,NFS與samba一樣,也是在網絡中實現文件共享的一種實現,但不幸的是,其不支持windows平臺,而本章要提到的samba是能夠在任何支持SMB協議的主機之間共享文件的一種實現,當然也包括windows。
SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通信協議,它為局域網內的不同計算機之間提供文件及打印機等資源的共享服務。
SMB協議是C/S型協議,客戶機通過該協議可以訪問服務器上的共享文件系統、打印機及其他資源。
Samba監聽端口:
- TCP:相對應的服務是smbd服務,其作用是提供對服務器中文件、打印資源的共享訪問。
- 139
- 445
- UDP:相對應的服務是nmbd服務,其作用是提供基於NetBIOS主機名稱的解析。
- 137
- 138
samba進程:
- nmbd:對應netBIOS
- smbd:對應cifs協議
- winbindd+ldap:對應Windows AD活動目錄
samba用戶:
- 賬戶:都是系統用戶/etc/passwd
- 密碼:Samba服務自有密碼文件,通過smbpasswd -a USERNAME命令設置
#smbpasswd命令: -a Sys_User #添加系統用戶為samba用戶並為其設置密碼 -d #禁用用戶帳號 -e #啟用用戶帳號 -x #刪除用戶帳號
Samba安全級別:
- user:基於本地的驗證
- server:由另一臺指定的服務器對用戶身份進行認證
- domain:由域控進行身份驗證
- share:匿名訪問(現版本已取消這個安全級別,匿名訪問配置方式發生了改變)
Samba配置文件:
- /etc/samba/smb.conf
- [global]:全局配置,此處的設置項對整個samba服務器都有效
- [homes]:宿主目錄共享設置,此處用來設置Linux用戶的默認共享,對應用戶的宿主目錄。當用戶訪問服務器中與自己用戶名同名的共享目錄時,通過驗證後將會自動映射到該用戶的宿主目錄中
- [printers]:打印機共享設置
常用配置文件參數:
參數 | 配置 |
---|---|
workgroup | 表示設置工作組名稱 |
server string | 表示描述samba服務器 |
security | 表示設置安全級別,其值可為share、user、server、domain |
passdb backend | 表示設置共享帳戶文件的類型,其值可為tdbsam(tdb數據庫文件)、ldapsam(LDAP目錄認證)、smbpasswd(兼容舊版本samba密碼文件) |
comment | 表示設置對應共享目錄的註釋,說明信息,即文件共享名 |
browseable | 表示設置共享是否可見 |
writable | 表示設置目錄是否可寫 |
path | 表示共享目錄的路徑 |
guest ok | 表示設置是否所有人均可訪問共享目錄 |
public | 表示設置是否允許匿名用戶訪問 |
write list | 表示設置允許寫的用戶和組,組要用@表示,例如 write list = root,@root |
valid users | 設置可以訪問的用戶和組,例如 valid users = root,@root |
hosts deny | 設置拒絕哪臺主機訪問,例如 hosts deny = 192.168.72.1 |
hosts allow | 設置允許哪臺主機訪問,例如 hosts allow = 192.168.72.2 |
printable | 表示設置是否為打印機 |
可以使用testparm命令測試配置文件是否有語法錯誤,以及顯示最終生效的配置
配置Samba
配置匿名共享
#安裝Samba
[root@lynkser ~]# yum -y install samba
#編輯配置文件
[root@lynkser ~]# vim /etc/samba/smb.conf
map to guest = Bad User
#創建共享目錄
[root@lynkser ~]# mkdir /share
[root@lynkser ~]# chmod 777 /opt/share/
#添加共享配置
[root@lynkser ~]# vim /etc/samba/smb.conf
[lynk]
comment = lynk
path = /opt/share
browseable = yes
guest ok = yes
writable = yes
public = yes
#檢查下配置有沒有問題
[root@lynkser ~]# testparm /etc/samba/smb.conf
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 "[lynk]"
Loaded services file OK.
Server role: ROLE_STANDALONE
#啟動服務
[root@lynkser ~]# systemctl start smb
[root@lynkser ~]# systemctl enable smb
#配置防火墻富規則
[root@lynkser ~]# firewall-cmd --add-rich-rule ‘rule family=ipv4 source address=192.168.26.0/24 service name=samba accept‘ --permanent
success
[root@lynkser ~]# firewall-cmd --reload
success
#關閉SElinux
[root@lynkser ~]# setenforce 0
在客戶端驗證服務
#安裝Samba客戶端
[root@lynk ~]# yum install -y samba-client
#配置防火墻富規則
[root@lynk ~]# firewall-cmd --add-rich-rule ‘rule family=ipv4 source address=192.168.26.129 service name=samba accept‘ --permanent
success
[root@lynk ~]# firewall-cmd --reload
success
#查看共享的資源
[root@lynk ~]# smbclient -L 192.168.26.129 -U "Bad User"
Enter SAMBA\Bad User‘s password:
OS=[Windows 6.1] Server=[Samba 4.6.2]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
lynk Disk lynk
IPC$ IPC IPC Service (Samba 4.6.2)
OS=[Windows 6.1] Server=[Samba 4.6.2]
Server Comment
--------- -------
Workgroup Master
--------- -------
#掛載Samba服務端共享文件到本地
[root@lynk ~]# mkdir /opt/share
[root@lynk ~]# mount -t cifs //192.168.26.129/lynk /opt/share -o username=‘Bad User‘
[root@lynk ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.4G 17G 8% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 297M 108M 190M 37% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sr0 3.8G 3.8G 0 100% /cdrom
//192.168.26.129/lynk 18G 1.4G 17G 8% /opt/share
#測試文件權限
[root@lynk ~]# cd /opt/share
[root@lynk share]# touch a
[root@lynk share]# mkdir b
[root@lynk share]# ll
total 0
-rw-r--r--. 1 nobody nobody 0 Jan 14 18:23 a
drwxr-xr-x. 2 nobody nobody 0 Jan 14 18:23 b
配置用戶認證共享
#安裝samba
[root@lynkser ~]# yum -y install samba
#新建samba用戶並設置密碼
[root@lynkser ~]# useradd -M lynksmb
[root@lynkser ~]# smbpasswd -a lynksmb
New SMB password:
Retype new SMB password:
Added user lynksmb.
#將lynksmb映射為share用戶
[root@lynkser ~]# echo ‘lynksmb = share‘ >> /etc/samba/smbusers
#編輯配置文件
[root@lynkser ~]# vim /etc/samba/smb.conf
username map = /etc/samba/smbusers
#創建共享文件並更改屬主
[root@lynkser ~]# mkdir /opt/share
[root@lynkser ~]# chown -R lynk.lynk /opt/share
#添加一個共享配置
[lynk]
comment = lynk
path = /opt/share
browseable = yes
guest ok = yes
writable = yes
write list = share
public = yes
#檢查配置文件
[root@lynkser ~]# testparm /etc/samba/smb.conf
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 "[lynk]"
Loaded services file OK.
Server role: ROLE_STANDALONE
#啟動服務
[root@lynkser ~]# systemctl start smb
[root@lynkser ~]# systemctl enable smb
#配置防火墻富規則
[root@lynkser ~]# firewall-cmd --add-rich-rule ‘rule family=ipv4 source address=192.168.26.0/24 service name=samba accept‘ --permanent
success
[root@lynkser ~]# firewall-cmd --reload
success
#關閉SElinux
[root@lynkser ~]# setenforce 0
在客戶端驗證服務
#安裝Samba客戶端
[root@lynk ~]# yum install -y samba-client
#配置防火墻富規則
[root@lynk ~]# firewall-cmd --add-rich-rule ‘rule family=ipv4 source address=192.168.26.129 service name=samba accept‘ --permanent
success
[root@lynk ~]# firewall-cmd --reload
success
#查看共享資源
[root@lynk ~]# smbclient -L 192.168.26.129 -U share
Enter SAMBA\share‘s password:
Domain=[LYNKSER] OS=[Windows 6.1] Server=[Samba 4.6.2]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
lynk Disk lynk
IPC$ IPC IPC Service (Samba 4.6.2)
lynksmb Disk Home Directories
Domain=[LYNKSER] OS=[Windows 6.1] Server=[Samba 4.6.2]
Server Comment
--------- -------
Workgroup Master
--------- -------
#掛載Samba服務端共享文件到本地
[root@lynk ~]# mkdir /opt/share
[root@lynk ~]# mount -t cifs //192.168.26.129/lynk /opt/share/ -o username=share,password=wasdjkl
[root@lynk ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.4G 17G 8% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 297M 108M 190M 37% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sr0 3.8G 3.8G 0 100% /cdrom
//192.168.26.129/lynk 18G 1.4G 17G 8% /opt/share
#測試文件權限
[root@lynk ~]# cd /opt/share
[root@lynk share]# touch a
[root@lynk share]# mkdir b
Samba簡介與配置(匿名&本地用戶驗證)