歡迎您光臨本站 註冊首頁

Linux下samba伺服器在企業網路中應用

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

Linux下samba伺服器在企業網路中應用

1. Samba服務基礎:

Windows與Linux文件共享的方法,建議使用 Samba 伺服器!

Samba應用環境 :

文件和印表機共享; 身份驗證和許可權設置; 名稱解析; 瀏覽服務. c/s server:windows linux(samba)

client: windows:\\ 網上鄰居 net use

linux

:(samba-client)

文件傳輸:ssh ftp smb

SMB協議:Server Message Block,服務消息塊

CIFS協議:Common Internet File System,通用互聯網文件系統

Samba網站:http://www.samba.org/

Samba官方下載:http://ftp.samba.org/pub/samba/

Smb進程: tcp:smbd 139 445

udp:nmbd 137 138 smbd:提供對伺服器中文件、列印資源的共享訪問 nmbd:提供基於NetBIOS主機名稱的解析

2. Samba 配置簡介:

Samba軟體包組成:(包很大)

samba-3.0.33-3.14.el5.i386.rpm samba-client-3.0.33-3.14.el5.i386.rpm samba-common-3.0.33-3.14.el5.i386.rpm samba-swat-3.0.33-3.14.el5.i386.rpm

system-config-samba-1.2.41-5.el5.noarch.rpm

samba這個軟體主要提供了 SMB 伺服器所需的各項服務程序 (smbd 及 nmbd)、 的文件檔、以及其他與 SAMBA 相關的 logrotate 配置文件及開機默認選項檔案等;

samba-client 這個軟體則提供了當 Linux 做為 SAMBA Client 端時,所需要的工具指令,例如掛載 SAMBA 文件格式的 mount.cifs、 取得類似網芳相關樹形圖的 smbtree 等等;

samba-common 這個軟體提供的則是伺服器與客戶端都會使用到的數據,包括 SAMBA 的主要配置文件 (smb.conf)、語法檢驗指令 (testparm) 等等;

samba-swat 埠tcp901, 是通過瀏覽器對 Samba 進行管理的工具之一.通過 SWAT ,可以在 Samba 允許訪問範圍內的客戶端,用瀏覽器對服務端的 Samba 進行控制.在線文檔的閱覽、smb.conf 的確認和編輯,以及密碼的變更、服務的重啟等等都可以通過 SWAT 來完成,它的直觀讓 Samba 變得溫和化,對那些不喜歡文本界面管理伺服器的朋友來說,是一個強大的工具.

system-config-samba圖形配置包

samba安裝:

[root@junjie ~]# mount /dev/cdrom /mnt/cdrom/

mount: block device /dev/cdrom is write-protected, mounting read-only

[root@junjie ~]# rpm -qa |grep samba samba-common-3.0.33-3.7.el5 samba-client-3.0.33-3.7.el5

[root@junjie ~]# cd /mnt/cdrom/Server/

[root@junjie Server]# ls samba*

samba-3.0.33-3.14.el5.i386.rpm samba-client-3.0.33-3.14.el5.i386.rpm samba-common-3.0.33-3.14.el5.i386.rpm samba-swat-3.0.33-3.14.el5.i386.rpm

[root@junjie Server]# rpm -ivh samba-3.0.33-3.14.el5.i386.rpm

error: Failed dependencies:

perl(Convert::ASN1) is needed by samba-3.0.33-3.14.el5.i386

samba-common = 0:3.0.33-3.14.el5 is needed by samba-3.0.33-3.14.el5.i386

[root@junjie Server]#

yum install -y samba samba-swat

Installed: samba.i386 0:3.0.33-3.14.el5 samba-swat.i386 0:3.0.33-3.14.el5

Dependency Installed: perl-Convert-ASN1.noarch 0:0.20-1.1

Updated: samba-client.i386 0:3.0.33-3.14.el5 samba-common.i386 0:3.0.33-3.14.el5

Complete!

samba配置說明:

可以用 rpm ql samba 查看samba的可配置文件

[root@junjie Server]# rpm -qc samba

/etc/logrotate.d/samba /etc/pam.d/samba /etc/rc.d/init.d/smb /etc/samba/smbusers /etc/sysconfig/samba

[root@junjie Server]# rpm -qc samba-common

/etc/samba/lmhosts /etc/samba/smb.conf /etc/security/pam_winbind.conf

默認主配置在/etc/samba/目錄下.這個目錄下還存放著我們稍後用密碼訪問時的口令文件.

[root@junjie ~]# ll /etc/samba/

total 20

-rw-r--r-- 1 root root 20 May 29 2009 lmhosts

-rw-r--r-- 1 root root 9733 May 29 2009 smb.conf

-rw-r--r-- 1 root root 97 May 29 2009 smbusers

Samba的服務腳本

/etc/init.d/smb

Samba的配置目錄及文件

/etc/samba/

Samba 的主配置文件叫/etc/samba/smb.conf

/etc/sysconfig/samba: 提供啟動 smbd, nmbd 時,你還想要加入的相關服務參數.

Samba主配置文件smb.conf詳解:

[root@junjie ~]# rpm -ql samba |grep smb.conf

/usr/share/doc/samba-3.0.33/htmldocs/manpages/smb.conf.5.htm

[root@junjie ~]# rpm -ql samba-common |grep smb.conf

/etc/samba/smb.conf /usr/share/man/man5/smb.conf.5.gz [root@junjie ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

[root@junjie ~]# grep -v "^#" /etc/samba/smb.conf |grep –v “^;”

默認主配置在/etc/samba/目錄下.這個目錄下還存放著我們稍後用密碼訪問時的口令文件.smb.conf 含有多個段,每個段由段名開始,直到下個段名.每個段名放在方括弧中間.配置文件中一行一個段名和參數,段名和參數名不分大小寫.除了[global]段外,所有的段都可以看作是一個共享資源.段名是該共享資源的名字,段里的參數是該共享資源的屬性.

Samba 安裝好后,使用testparm 命令可以測試smb.conf 配置是否正確.使用testparm –v命令可以詳細的列出smb.conf 支持的配置參數.

57 [global]全局配置參數:

74 workgroup = MYGROUP

75 server string = Samba Server Version %v

77 ; netbios name = MYSERVER

79 ; interfaces = lo eth0 192.168.12.2/24 192.168.13.2 /24

80 ; hosts allow = 127. 192.168.12. 192.168.13.

89 log file = /var/log/samba/%m.log 91 max log size = 50

101 security = user

74行:workgroup:設置所在工作組名稱,設定 Samba Server 所要加入的工作組或者域.

75行:server string:伺服器描述信息,可以是任何字元串,也可以不填.宏%v 表示顯示

Samba的版本號.

77行:netbios name:設置Samba Server NetBIOS 名稱.如果不填,則默認會使用該伺服器的DNS 名稱的第一部分.netbios name workgroup 名字不要設置成一樣了.

79行:interfaces:設置Samba Server 監聽哪些網卡,可以寫網卡名,也可以寫該網卡的IP 地址

80行:hosts allow = 127. 192.168.1. 192.168.10.1

說明:表示允許連接到Samba Server 的客戶端,多個參數以空格隔開.可以用一個IP 表示,也可以用一個網段表示.hosts deny hosts allow 剛好相反.

設置客戶機訪問授權:一般用在全局配置[global]部分

hosts allow配置項:僅允許特定的客戶機 hosts deny配置項:僅拒絕特定的客戶機

客戶機地址表示形式:以空格分隔多個地址

主機名或IP地址,例如: 192.168.168.11 或者 prtsvr

網路地址,例如:173.17. 或者 173.17.0.0/255.255.0.0

例如:hosts allow=172.17.2.EXCEPT172.17.2.50

表示容許來自172.17.2.*.*的主機連接,但排除172.17.2.50

hosts allow=172.17.2.0/255.255.0.0

表示容許來自172.17.2.0/255.255.0.0 子網中的所有主機連接

hosts allow=M1,

M2

表示容許來自M1 M2 兩台計算機連接

hosts allow=@xq

表示容許來自XQ 網域的所有計算機連接

89行:log file設置Samba Server 日誌文件的存儲位置以及日誌文件名稱.在文件名后加個宏%m(主機名),表示對每台訪問Samba Server 的機器都單獨記錄一個日誌文件.如果pc1pc2 訪問過

Samba Server,就會在/var/log/samba 目錄下留下log.pc1 log.pc2 兩個日誌文件.

91行:max log size = 50設置Samba Server 日誌文件的最大容量,單位為kB,0 代表不限制.

101行:security = user

說明:設置用戶訪問Samba Server 的驗證方式,一共有四種驗證方式.

1. share

:用戶訪問Samba Server 不需要提供用戶名和口令, 安全性能較低.

2. userSamba Server 共享目錄只能被授權的用戶訪問,Samba Server 負責檢查賬號和密碼

的正確性.賬號和密碼要在本Samba Server 中建立.

3. server:依靠其他Windows NT/2000 Samba Server 來驗證用戶的賬號和密碼,是一種代理

驗證.此種安全模式下,系統管理員可以把所有的Windows 用戶和口令集中到一個NT 系統

,使用Windows NT 進行Samba 認證, 遠程伺服器可以自動認證全部用戶和口令,如果認證

失敗,Samba 將使用用戶級安全模式作為替代的方式.

3. domain:域安全級別,使用主域控制器(PDC)來完成認證. 221 load printers = yes 222 cups options = raw 224 ; printcap name = /etc/printcap 226 ; printcap name = lpstat 227 ; printing = cups

221行:表示是否容許印表機中的所有印表機,在開機時自動載入瀏覽列表,以支持客戶端的瀏覽功能

224-225行:是用來設置開機時自動載入的印表機配置文件名稱和路徑

227行:用來指定列印系統的類型

248 [homes]個人主目錄配置參數:

249 comment = Home Directories 250 browseable = no

251 writable = yes 252 ; valid users = %S 253 ; valid users = MYDOMAIN\%S comment = Home Directories //主目錄註釋說明 browseable = no //是否容許其他用戶瀏覽個人主目錄,是否被看到 writable = yes //是否容許寫入個人目錄 valid users = %S //容許登陸的用戶,%S 表示當前登陸的用戶

255 [printers]印表機配置參數:

256 comment = All Printers 257 path = /var/spool/samba 258 browseable = no 259 guest ok = no 260 writable = no 261 printable = yes

[

共享文件]設置:

comment:對共享目錄的註釋、說明信息

path:共享目錄在伺服器中對應的實際路徑 browseable:該共享目錄在“網上鄰居”中是否可見

guest ok:是否允許所有人訪問,等效於“public”

writable:是否可寫,與read only的作用相反

Samba服務設置的讀取、寫入許可權,優先順序要低於文件系統中設置的許可權

建立Samba用戶資料庫文件

默認資料庫文件位於:/etc/samba/smbpasswd

系統用戶帳號 -> Samba用戶帳號

smbpasswd -a user1 #添加

smbpasswd -d user1 #禁用

smbpasswd -e user1 #啟用

smbpasswd -x user1 #刪除

Samba帳號的別名設置

在smb.conf文件中需要啟用如下配置

username map = /etc/samba/smbusers

默認的別名映射文件:/etc/samba/smbusers

配置文件語法檢測工具:testparm

狀態查看工具:smbstatus

[root@junjie ~]# smbstatus

3. Samba客戶端訪問方法:

使用Windows客戶端訪問文件共享服務

網上鄰居、UNC路徑

windows 下:斷開連接的方法:註銷系統或輸入以下命令.

使用Linux客戶端訪問文件共享服務:smbclient

smbclient命令,查看及登錄使用共享

smbclient -L 192.168.168.1 smbclient //192.168.168.1/movie -U user1 smbclient -L //伺服器地址 –U smb賬號 smbclient //伺服器地址/共享名稱 –U smb賬號

掛載:

mount命令,將共享目錄掛載到本地使用

#mount -o username=vina //192.168.168.1/movie /mnt

#mount –t cifs –o username=smb賬號,password=‘密碼’//伺服器地址/共享資源名稱 /掛載點

smbmount //192.168.5.100 /mnt/dir1 –o username=user1

自動掛載:vim /etc/fstab

//192.168.2.100/qq /mnt/qq cifs defaults, credentials=/etc/samba/account.txt 0 0

安全控制: vim /etc/samba/account.txt chmod 600 /etc/samba/account.txt

4.

Samba伺服器配置案例:

samba安裝:

[root@junjie ~]# mount /dev/cdrom /mnt/cdrom/

mount: block device /dev/cdrom is write-protected, mounting read-only

[root@junjie ~]# rpm -qa |grep samba samba-common-3.0.33-3.7.el5 samba-client-3.0.33-3.7.el5

[root@junjie ~]# cd /mnt/cdrom/Server/

[root@junjie Server]# ls samba*

samba-3.0.33-3.14.el5.i386.rpm samba-client-3.0.33-3.14.el5.i386.rpm samba-common-3.0.33-3.14.el5.i386.rpm samba-swat-3.0.33-3.14.el5.i386.rpm

[root@junjie Server]# rpm -ivh samba-3.0.33-3.14.el5.i386.rpm

error: Failed dependencies:

perl(Convert::ASN1) is needed by samba-3.0.33-3.14.el5.i386

samba-common = 0:3.0.33-3.14.el5 is needed by samba-3.0.33-3.14.el5.i386

[root@junjie Server]# yum install -y samba samba-swat

Installed: samba.i386 0:3.0.33-3.14.el5 samba-swat.i386 0:3.0.33-3.14.el5

Dependency Installed: perl-Convert-ASN1.noarch 0:0.20-1.1

Updated: samba-client.i386 0:3.0.33-3.14.el5 samba-common.i386 0:3.0.33-3.14.el5

Complete!

[root@junjie ~]# useradd user1

[root@junjie ~]# useradd user2

[root@junjie ~]# echo "123" |passwd --stdin user1

Changing password for user user1.

passwd: all authentication tokens updated successfully.

[root@junjie ~]# echo "123" |passwd --stdin user2

Changing password for user user2.

passwd: all authentication tokens updated successfully.

[root@junjie ~]# smbpasswd -a user1

New SMB password:

Retype new SMB password:

Added user user1.

[root@junjie ~]# smbpasswd -a user2

New SMB password:

Retype new SMB password:

Added user user2.

[root@junjie ~]# mkdir /public

[root@junjie ~]# touch /public/p1

[root@junjie ~]# mkdir /soft

[root@junjie ~]# touch /soft/f1

[root@junjie ~]# mkdir /smbuser2

[root@junjie ~]# touch /smbuser2/f1.user2

[root@junjie ~]# chmod 777 /public/ /soft/ /smbuser2/

[root@junjie ~]# ll -d /public/ /soft/ /smbuser2/

drwxrwxrwx 2 root root 4096 Apr 15 18:03 /public/

drwxrwxrwx 2 root root 4096 Apr 15 18:12 /smbuser2/

drwxrwxrwx 2 root root 4096 Apr 15 18:04 /soft/

[root@junjie ~]# vim /etc/samba/smb.conf

89 log file = /var/log/samba/%m.log 91 max log size = 50 101 security = user 289 [public] 290 comment = this public dir 291 path = /public 292 public = yes 293 [smb-user1] 294 comment = this user1's dir 295 path = /soft 296 valid users = user1 297 writable = yes 298 [smb-user2] 299 comment = this user2's dir 300 path = /smbuser2

301 valid users = user2 303 writable = yes

#檢查語法:

[root@junjie ~]# testparm

Load smb config files from /etc/samba/smb.conf

Processing section "[homes]"

Processing section "[printers]"

Processing section "[public]"

Processing section "[smb-user1]"

Processing section "[smb-user2]"

Loaded services file OK.

Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

[global] workgroup = MYGROUP server string = Samba Server Version %v passdb backend = tdbsam log file = /var/log/samba/%m.log max log size = 50 cups options = raw [homes] comment = Home Directories read only = No browseable = No

[printers] comment = All Printers path = /var/spool/samba printable = Yes browseable = No [public] comment = this public dir path = /public guest ok = Yes [smb-user1] comment = this user1's dir path = /soft valid users = user1 read only = No [smb-user2] comment = this user2's dir path = /smbuser2 valid users = user2 read only = No

#重啟samba的服務smb

[root@junjie ~]# service smb restart

Shutting down SMB services: [ OK ]

Shutting down NMB services: [ OK ]

Starting SMB services:

[ OK ]

Starting NMB services: [ OK ]

#user1登錄測試

使用命令關閉user1的連接,接下來使用user2訪問測試!

#user2登錄測試

在Linux下:查看連接信息和日誌信息 #日誌信息 附錄1:源碼安裝samba伺服器:

[root@junjie ~]# ll samba-3.5.14.tar.gz

-rw-r--r-- 1 root root 30368829 Apr 1 10:49 samba-3.5.14.tar.gz

[root@junjie ~]# tar -zxvf samba-3.5.14.tar.gz -C /usr/local/src/

[root@junjie ~]# cd /usr/local/src/samba-3.5.14/source3/

[root@junjie source3]# ls

[root@junjie source3]# ./autogen.sh

[root@junjie source3]# ./configure --help

[root@junjie source3]# ./configure && make && make install

==============================================================

MO files for pam_winbind are installed.

============================================================== ==============================================================

All MO files for Samba are installed. You can use "make uninstall"

or "make uninstallmo" to remove them.

==============================================================

make: warning: Clock skew detected. Your build may be incomplete.

#make installbin && make installman && make revert(可選)

#其它配置略.

附錄2:圖形化管理samba伺服器

本文出自 「xjzhujunjie」 博客,請務必保留此出處http://xjzhujunjie.blog.51cto.com/3582724/835357


[火星人 ] Linux下samba伺服器在企業網路中應用已經有689次圍觀

http://coctec.com/docs/linux/show-post-46149.html