崔寶才
LINUX的SAMBA服務(wù)配置
崔寶才
(天津電子信息職業(yè)技術(shù)學(xué)院,天津市 300000)
linux的Samba服務(wù)是局域網(wǎng)上常用的服務(wù)之一,通過配置samba服務(wù)器,使之能夠提供穩(wěn)定安全及易于管理的局域網(wǎng)共享服務(wù)。
samba;Linux;服務(wù)器
Samba是一個網(wǎng)絡(luò)服務(wù)器,可以讓 Windows操作系統(tǒng)(Windows 2000/XP/2003等)用戶訪問局域網(wǎng)中Linux主機,就象訪問網(wǎng)上鄰居一樣方便。當(dāng)然,Samba服務(wù)也常用于linux和linux系統(tǒng)之間提供網(wǎng)絡(luò)共享服務(wù)。早期Samba運行于NBT協(xié)議(NetBIOS over TCP/IP)上,使用UDP協(xié)議的137、138及TCP協(xié)議的139端口,后期SMB經(jīng)過開發(fā),可以直接運行于TCP/IP協(xié)議上,沒有額外的NBT層,使用TCP協(xié)議的445端口。當(dāng)客戶端訪問服務(wù)器時,信息通過SMB協(xié)議進行傳輸,其工作過程可以分成四個步驟:
1.協(xié)議協(xié)商
客戶端在訪問Samba服務(wù)器時,發(fā)送negprot指令數(shù)據(jù)包,告知目標(biāo)計算機其支持的SMB類型。Samba服務(wù)器根據(jù)客戶端的情況,選擇最優(yōu)的SMB類型,并做出回應(yīng)。
2.建立連接
當(dāng)SMB類型確認后,客戶端會發(fā)送session setup指令數(shù)據(jù)包,提交帳號和密碼,請求與Samba服務(wù)器建立連接,如果客戶端通過身份驗證,Samba服務(wù)器會對session setup報文作出回應(yīng),并為用戶分配唯一的UID,在客戶端與其通信時使用。
3.訪問共享資源
客戶端訪問Samba共享資源時,發(fā)送tree connect指令數(shù)據(jù)包,通知服務(wù)器需要訪問的共享資源名,如果設(shè)置允許,Samba服務(wù)器會為每個客戶端與共享資源連接分配TID,客戶端即可訪問需要的共享資源。
4.斷開連接
共享使用完畢,客戶端向服務(wù)器發(fā)送tree disconnect報文關(guān)閉共享,與服務(wù)器斷開連接。
1.本samba服務(wù)器需要創(chuàng)建3個文檔目錄:/var/share/public存放公共數(shù)據(jù);/var/share/training存放技術(shù)培訓(xùn)資料;/var/share/devel存放項目開發(fā)資料。
2.將/var/share/public目錄共享為public,所有員工可匿名訪問,但是只能讀取文件,沒有寫入權(quán)限。
3.將/var/share/training目錄共享為training,只允許管理員admin及技術(shù)部的員工tech1和tech2只讀訪問。
4.將/var/share/devel/目錄共享為devel,技術(shù)部的員工都可以讀取該目錄中的文件,但是只有管理員admin及network項目組的員工network1和network2有寫入權(quán)限。
1.安裝samba服務(wù)軟件
[root@localhost~]# yum install samba*
2.建立共享目錄并設(shè)置權(quán)限和屬組
[root@localhost~]# mkdir-p/var/share/public
[root@localhost~]# mkdir-p/var/share/training
[root@localhost~]# mkdir-p/var/share/devel
[root@localhost~]# groupadd tech
[root@localhost~]# groupadd network
[root@localhost~]#useradd-G tech-s/sbin/nologin-M tech1
[root@localhost~]#useradd-G tech-s/sbin/nologin-M tech2
[root@localhost~]#useradd-g network-G tech-s/sbin/nologin-M network1
[root@localhost~]#useradd-g network-G tech-s/sbin/nologin-M network2
[root@localhost~]#chown:tech/var/share/training/
[root@localhost~]#chown:network/var/share/devel/
[root@localhost~]#chmod 555/var/share/public/
[root@localhost~]#chmod 550/var/share/training/
[root@localhost~]#chmod 770/var/share/devel/
3.修改配置設(shè)置共享
[root@localhost~]#cd/etc/samba/
[root@localhost samba]#ls
lmhosts smb.conf smbusers
[root@localhost samba]# cp smb.conf smb.conf.bak
[root@localhost samba]# vim smb.conf
修改內(nèi)容如下:
workgroup=WORKGROUP
添加共享
[public]
path=/var/share/public
public=y(tǒng)es
readonly=y(tǒng)es
[training]
path=/var/share/training
readonly=y(tǒng)es
valid users=admin,@tech
[devel]
path=/var/share/devel
readonly=no
valid users=admin,@network
write list=admin,@network
4.配置SElinux。在samba服務(wù)器中并不是所有的操作都會受到Selinux的影響,samba所涉及的SElinux配置參數(shù)比較多,不過在smb.conf文件中通過注釋的方式已對其中的一部分進行了說明。通過配置該案例總結(jié)的必須配置的bool值和安全上下文。
[root@localhost samba]# getsebool-a|grep samba
samba_domain_controller-->off
samba_enable_home_dirs-->off
samba_export_all_ro--> off
samba_export_all_rw --> off
samba_share_nfs-->off
use_samba_home_dirs-->off
[root@localhost samba]# setsebool-P samba_enable_home_dirs on
[root@localhost samba]#setsebool-P samba_export_all_ro on
[root@localhost samba]#setsebool-P samba_export_all_rw on
[root@localhost samba]# getsebool-a|grep smb
allow_smbd_anon_write-->off
smbd_disable_trans--> off
[root@localhost samba]# setsebool-P allow_smbd_anon_write on
[root@localhost samba]#chcon-R -t samba_share_t/var/share
5.添加samba用戶
[root@localhost samba]#smbpasswd-a tech1
New SMB password:
Retype new SMB password:
Added user tech1.
[root@localhost samba]#smbpasswd-a tech2
New SMB password:
Retype new SMB password:
Added user tech2.
[root@localhost samba]#smbpasswd-a network1
New SMB password:
Retype new SMB password:
Added user network1.
[root@localhost samba]#smbpasswd-a network2
New SMB password:
Retype new SMB password:
Added user network2.
6.通過配置項username map建立用戶名映射,將admin作為root用戶的映射帳戶
[root@localhost samba]#smbpasswd-a root
New SMB password:
Retype new SMB password:
Added user root.
在/etc/samba/smb.conf中添加以下語句:
security=share//認證方式使用share
passdb backend=tdbsam
username map=/etc/samba/smbusers//添加該語句
確保/etc/samba/smbuesrs文件中包含以下語句:
root= administrator admin
該內(nèi)容等號左側(cè)為samba用戶,等號右側(cè)為映射用戶,此處類似于vsftpd的虛擬用戶。
7.啟動samba服務(wù)
[root@localhost samba]# service smb start
啟動SMB服務(wù): [確定]啟動NMB服務(wù): [確定]
8.進行測試
Windows中可以使用圖形化界面進行測試,Linux操作系統(tǒng)下測試可以使用smbclient命令。需要注意Windows中要使用net use命令提交用戶名和密碼。當(dāng)同時啟用匿名共享、用戶驗證共享目錄時,安全級別保持為share,若使用Windows客戶端訪問帶用戶驗證的共享,默認會自動嘗試以Guest用戶登錄且無法輸入用戶名,這時需要通過cmd窗口中的“net use”命令手動指定用戶名,命令格式如下:
net use\\samba服務(wù)器ip地址\共享名/user:用戶名
根據(jù)提示輸入正確的口令即可。若需要清除Windows XP系統(tǒng)中的共享連接緩存記錄,可以在cmd窗口中使用以下命令:
net use\\samba服務(wù)器ip地址\共享名/delete 刪除訪問過的共享緩存
net use*/delete 刪除所有訪問過的共享連接緩存
[1]張勤,楊章明.Linux服務(wù)器配置全程實錄[M].北京:人民郵電出版社,2010.
[2]Samba配置手冊(2010),[DB/OL].百度文庫.
Samba Service Configuration of Linux
CUI Bao-cai
(Tianjin Electronics Information Vocational Technical Institute,Tianjin300000 China)
Samba service of Linux is one of common services on the LAN (local area network).Configured the Samba server,Linux enables to provide stable and safe LAN sharing service,easy to manage.
Samba;Linux;server
TP393
A
1673-582X(2011)11-0077-04
2011-06-22
崔寶才(1979-),男,河北省人,天津電子信息職業(yè)技術(shù)學(xué)院講師,主要研究方向為計算機網(wǎng)絡(luò)及Linux操作系統(tǒng)。