linux系統samba服務器安裝及安全設置
Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。
SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通信協議,它為局域網內的不同計算機之間提供文件及打印機等資源的共享服務。SMB協議是客戶機/服務器型協議,客戶機通過該協議可以訪問服務器上的共享文件系統、打印機及其他資源。通過設置“NetBIOS over TCP/IP”使得Samba不但能與局域網絡主機分享資源,還能與全世界的電腦分享資源。
Samba 應該范圍主要是Windows和Linux 系統共存的網絡中使用;如果一個網絡環境都是Linux或Unix類的系統,沒有必要用Samba,應該用NFS更好一點;
Samba共享比較簡單形式如\\10.0.0.126\共享目錄,下面詳細說下安裝配置過程。
一.安裝samba服務器
筆者選用的是centos5.8操作系統,相對來說安裝就比較簡單了。
首先執行rpm -qa|grep samba 查看是否已經安裝了samba。
samba -----samba服務器程序的所有文件
samba-common -----提供了Samba服務器和客戶機中都必須使用的公共文件
samba-client -----提供了Samba客戶機的所有文件
samba-swat -----以Web界面的形式提供了對Samba服務器的管理功能
沒有或者版本較低的話執行
yum install samba-* -y 即可
安裝比較簡單,下面看配置。
- chkconfig smb on # 設置samba開機啟動
- service smb start # 啟動samba服務器
二.samba配置
samba配置文件的位置:/etc/samba/smb.conf。修改之前先備份下默認的配置文件,這里主要講下權限及安全方面的配置。
- cp smb.conf smb.conf.default ##備份是個好習慣
- vi smb.conf
1)全局配置
- [global]
- workgroup = WORKGROUP #要訪問的電腦的工作組名,windows一般默認都為這個
- security = user #訪問的方式,share不需要密碼,user需要用戶名和密碼
-----------Standalone Server Options----------
#使用獨立服務器作為Samba服務器認證用戶來源,也就是當訪問Samba服務器時輸入的用戶名和密碼的驗證工作由Samba服務器本機系統內賬戶完成。
security = user 設置安全級別,即客戶端訪問Samba服務器的驗證方式。此部分中只能設置以下三種參數,參數設置:share(不推薦)、user、server(不推薦)。
passdb backend = tdbsam 參數設置:smbpasswd、tdbsam、ldapsam、mysql。默認為tdbsam,一般不用修改,除非想使用老版本Samba服務器的smbpasswd文件方式或其它方
encrypt passwords = yes/no 認證密碼在傳輸過程中是否加密。
參數說明:
security = share /user / server /domain /ads
以下三種安全級別用在Standalone Server Options部分,其中user級別也用于Domain Controller Options部分。
- (1)share:訪問Samba服務器共享資源時不需要輸入用戶名和密碼,屬于匿名訪問。
- (2)user:訪問Samba服務器共享資源時需要輸入用戶名和密碼,認證用戶來源為Samba服務器本機。
- (3)server:訪問Samba服務器共享資源時需要輸入用戶名和密碼,認證用戶來源為另一臺Samba服務器或Windows服務器。
以下兩種安全級別用在Domain Members Options部分:
- (4)domain:Samba服務器在一個基于Windows NT平臺的Windows域中,訪問共享資源需要輸入用戶名和密碼,認證用戶來源為Windows域。
- (5)ads:Samba服務器在一個基于Windows 200X平臺的Windows活動目錄中,訪問共享資源需要輸入用戶名和密碼,認證用戶來源為Windows活動目錄。
passdb backend = tdbsam /smbpasswd /ldapsam /mysql
- (1)tdbsam:該方式使用一個數據庫文件來建立用戶數據庫,數據庫文件名為passdb.tdb。可以使用#smbpasswd -a [用戶名]來建立Samba用戶。也可以使用pdbedit命令來建立用戶。
- (2)smbpasswd:該方式使用Samba提供的工具smbpasswd來給系統用戶設置一個用于訪問Samba服務的密碼,客戶端就用這個密碼訪問Samba共享資源。此方式還要使用一個 smb
passwd file = /usr/local/samba/etc/smbpasswd(或/etc/samba/smbpasswd) 參數來指定保存用戶名和密碼的文件,該文件需要手動建立。不推薦使用此方法。
- (3)ldapsam:該方式基于LADP的賬戶管理方式來驗證用戶,先要建立LDAP服務。
- (4)mysql:該方式是將Samba服務器的用戶名和密碼存儲到MySQL數據庫中。
pdbedit命令常用參數:
pdbedit –a username:新建Samba賬戶。
pdbedit –x username:刪除Samba賬戶。
pdbedit –L:列出Samba用戶列表,讀取passdb.tdb數據庫文件。
pdbedit –Lv:列出Samba用戶列表的詳細信息。
pdbedit –c “[D]” –u username:暫停該Samba用戶的賬號。
pdbedit –c “[]” –u username:恢復該Samba用戶的賬號。
注意:
Standalone Server Options、Domain Members Options、Domain Controller Options三部分均與Samba的認證方式及工作角色有關,三部分均需要配置合適的security(安全級別,用于配置Samba的認證方式),此三部分為服務器的三種角色。
添加自定義的共享目錄:
[yourworkdir]
comment = work Directories -----設置共享的說明信息
browseable = yes -----所有samba用戶都可以看到該目錄
writable = yes -----用戶對共享目錄可寫
path = /data/yourworkdir-----指定共享目錄的路徑
三.配置完成后重啟smb服務
service smb restart
添加用戶,注意這里必須是系統存在的賬戶,而且密碼不能與系統登錄密碼相同
useradd user
smbpasswd -a user #設置user用戶samba登錄密碼,輸入兩次相同即可
下面就是創建文件夾及設置屬性
- mkdir /data/yourworkdir
- chown -R user /data/yourworkdir
- chmod -R 750 /data/yourworkdir
測試
找一臺內網windows客戶端,輸入samba服務器的IP如\\10.0.0.126\,再輸入用戶名密碼即可。
原文鏈接:http://blog.chinaunix.net/uid-29179844-id-4334747.html