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网站:
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@ ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@ ~]# rpm -qa |grep samba
samba-common-3.0.33-3.7.el5
samba-client-3.0.33-3.7.el5
[root@ ~]# cd /mnt/cdrom/Server/
[root@ 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@ 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@ 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@ 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@ Server]# rpm -qc samba-common
/etc/samba/lmhosts
/etc/samba/smb.conf
/etc/security/pam_winbind.conf
默认主配置在/etc/samba/目录下。这个目录下还存放着我们稍后用密码访问时的口令文件。
[root@ ~]# 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@ ~]# rpm -ql samba |grep smb.conf
/usr/share/doc/samba-3.0.33/htmldocs/manpages/smb.conf.5.htm
[root@ ~]# rpm -ql samba-common |grep smb.conf
/etc/samba/smb.conf
/usr/share/man/man5/smb.conf.5.gz
[root@ ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
[root@ ~]# 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 的机器都单独记录一个日志文件。如果pc1、pc2 访问过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. user:Samba 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