Linux学习手记(二)『RHEL5企业级 Linux服务攻略』
16:12 2009年7月20日
【samba介绍】
Samba是Linux与Windows沟通的桥梁,其可以作为File、Printer、Domain Server等。
①文件和打印共享:文件和打印机共享是Samba的主要功能,SMB进程实现资源共享,将文件和打印机发布到网络之中,以供用户可以访问
②身份验证和权限设置:smbd服务支持user mode和domain mode等模式通过加密方式可以保护共享的文件和打印机。
③名称解析:Samba 通过nmbd 服务可以搭建 NBNS(NetBIOS Name Service)服务器,提供名称解析,将计算机的NetBIOS名解析为IP 地址。
④浏览服务:局域网中,Samba 服务器可以成为本地主浏览服务器(LMB),保存可用资源列表,当使用客户端访问Windows网上邻居时,会提供浏览列表,显示共享目录、打印机等资源。
【samba工作原理SMB协议】
①协议协商:客户连接samba服务器,客户发送negport指令包,服务器根据客户端选择最优SMB类型,并回应。
②建立连接:SMB确认连接类型后,客户发送session setup指令包,提交用户名、密码。并分配唯一UID给客户。
③访问资源:客户访问资源时,发送tree connect指令包,通知服务器要访问的资源名,如服务器设置允许,samba服务器给每个共享链接分配TID,客户端即可访问需要的共享资源。
④断开连接:共享使用完毕,客户端想服务器发送tree disconnect报文关闭共享,与服务器断开连接。
【samba进程】
samba服务有2个进程:nmbd和smbd
nmbd:进行NetBIOS名解析,并提供浏览服务显示网络上的共享资源列表。
smbd:管理samba服务上的共享目录、打印机主要是针对网络上的共享资源进行管理的服务。当要访问服务器时,要查找共享文件,这时我们就要依靠 smbd 这个进程来管理数据传输。
【安装samba服务】
samba-3.0.25b-0.el5.4.i386.rpm:该包为
Samba服务的主程序包。服务器必须安装该软件包,后面的数字为版本号(我们安装时使用的是 RHEL5.1DVD 版,如果是RHEL5.1CD
版则该软件包位于第二张 RHEL5 安装光盘上)。
samba-client-3.0.25b-0.el5.4.i386.rpm:该包为Samba的客户端工具,是连接服务器和连接网上邻居的客户端工具并包含其测试工具(该软件包位于第一张 RHEL5 安装光盘哈~)
samba-common-3.0.25b-0.el5.4.i386.rpm:该包存放的是通用的工具和库文件,无论是服务器还是客户端都需要安装该软件包(这个软件包也位于第一张RHEL5 安装光盘哈~)
samba-swat-3.0.25b-0.el5.4.i386.rpm:当安装了这个包以后,就可以通过浏览器(比如 IE等哈)来对Samba 服务器进行图形化管理(这个软件包位于第三张 RHEL5安装光盘哈)。
[root@rhel52 /]# rpm -qa | grep samba
samba-client-3.0.23c-2
samba-3.0.23c-2
system-config-samba-1.2.39-1.el5
samba-common-3.0.23c-2
[root@rhel52 work]# rpm -ivh xinetd-2.3.14-10.el5.i386.rpm
warning: xinetd-2.3.14-10.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... (100%########################################### [100%]
1:xinetd ( 1%########################################### [100%]
[root@rhel52 work]# rpm -ivh samba-swat-3.0.23c-2.i386.rpm
warning: samba-swat-3.0.23c-2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... (100%########################################### [100%]
1:samba-swat ( 2%########################################### [100%]
[root@rhel52 work]#
[root@rhel52 work]# rpm -qa | grep samba
samba-client-3.0.23c-2
samba-swat-3.0.23c-2
samba-3.0.23c-2
system-config-samba-1.2.39-1.el5
samba-common-3.0.23c-2
[root@rhel52 work]#
【samba常规服务器配置】
①配置主配置文件smb.conf,指定共享的目录,以及为其设置权限。
②在smb.conf文件中指定日志文件名称和存放路径。
③设置共享目录的本地系统权限。
④添加samba用户信息以及登录密码
⑤重新加载配置文件或者重新启动smb服务,是配置生效。
-=①=-【配置sbm.conf】
[root@rhel52 /]# vim /etc/samba/smb.conf
260 [public]
261 path = /work
262 public = yes
263 only guest = yes
264 writable = yes
265 write list = @root
266 write list = loris
267 printable = no
268 valid users = @root
269 valid users = loris
270 readonly = no
271
272 comment= Share Directory of Loris by 2009/720 17:21
-=②=-【samba服务日志文件】
[root@rhel52 log]# tail -f /var/log/samba/smbd.log
记录用户访问samba 服务器的问题,以及服务器本身的错误信息,可以通过该文件获
得大部分的samba 维护信息。
[root@rhel52 log]# tail -f /var/log/samba/nmbd.log
记录 nmbd 进程的解析信息。
-=③=-【】
-=④=-【添加samba用户、密码信息到服务密码文件】
samba中的账户必须是linux中已经有的账户然后使用“sambapasswd -a 用户名”添加相应密码。
[root@rhel52 log]# smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.
samba密码文件在/etc/samba/smbpasswd 中
[root@rhel52 samba]# vim /etc/samba/smbpasswd
1 root:0:DF7D4C80BE72A070AAD3B435B51404EE:B3A3496D3F61D8CDA3B865A2B4B29A37:[U ]:LCT-4A643B02:
2 loris:500:DF7D4C80BE72A070AAD3B435B51404EE:B3A3496D3F61D8CDA3B865A2B4B29A37:[U ]:LCT-4A643B0B:
-=⑤=-【加载配置或重启samba服务】
启动和停止samba服务(加载)
service smb start 或 /etc/rc.d/init.d/smb start
service smb reload 或 /etc/rc.d/init.d/smb reload
[root@rhel52 samba]# service smb restart
Shutting down SMB services: [FAILED]
Shutting down NMB services: [FAILED]
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
设定自动加载samba 服务
[root@rhel52 samba]# chkconfig --list | grep smb
smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@rhel52 samba]# chkconfig --level 35 smb on
[root@rhel52 samba]# chkconfig --list | grep smb
smb 0:off 1:off 2:off 3:on 4:off 5:on 6:off
[root@rhel52 samba]#
图形界面设定服务
在要加载的服务前面打”*“,否则就去掉”*“
[root@rhel52 samba]# ntsysv
【File Server -share匿名权限 跟踪实例配置】
在工作组Workgroup中添加samba服务器作为文件服务器。并发布/work,共享名为public,容许所有人访问。
①修改samba主配置文件smb.conf
[root@rhel52 samba]# vim smb.conf
22 #======================= Global Settings ================================
=====
23 [global]
24
25 # workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
26 # workgroup = MYGROUP
27 workgroup = Workgroup【设置组名字】
28
29 # server string is the equivalent of the NT Description field
30 # server string = REHL52 Samba Server
31 server string = File Server【设置注释】
32
33 # Security mode. Defines in which mode Samba will operate. Possible
34 # values are share, user, server, domain and ads. Most people will want
35 # user level security. See the Samba-HOWTO-Collection for details.
36 # security = user
37 security = share 【设置容许匿名访问】
263 [public]
264 comment= Share Directory of Loris by 2009/720 17:21
265 path = /work
#【设置共享目录的绝对路径】
266 public = yes
#【设置容许匿名访问】
保存后退出
[root@rhel52 samba]# service smb reload
Reloading smb.conf file: [ OK ]
reload和restart 不同在于reload只是重导入配置,并不中断共享访问。
在PC IE 中输入
用户可以不输入密码访问资源。
【File Server -user权限 跟踪实例配置】
在公司companydata/sales/目录中只有sales部门(组)员工(sale1,sale2)能访问其人员不能访问。
①设置smb.conf全局配置中Security为user
②设置共享目录/companydata/sales下的valid user 字段为销售部分员工能访问。
a、建立销售部门账户并添加到samba账户中(samba密码均为samba)
[root@rhel52 work]# mkdir companydata
[root@rhel52 work]# cd companydata/
[root@rhel52 companydata]# mkdir sales
[root@rhel52 /]# ll /work/companydata/sales/
total 0
[root@rhel52 /]#
[root@rhel52 /]# groupadd sales
[root@rhel52 /]# useradd -g sales sale1
[root@rhel52 /]# passwd sale1
Changing password for user sale1.
New UNIX password:
BAD PASSWORD: it is WAY too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@rhel52 /]# useradd -g sales sale2
[root@rhel52 /]# passwd sale2
Changing password for user sale2.
New UNIX password:
BAD PASSWORD: it is WAY too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@rhel52 /]#
[root@rhel52 /]# smbpasswd -a sale1
New SMB password:
Retype new SMB password:
Added user sale1.
[root@rhel52 /]# smbpasswd -a sale2
New SMB password:
Retype new SMB password:
Added user sale2.
b、配置smb.conf
security = user
#【需要用户验证】
292 [sales]
293 comment= Only sales can use this foldar by 2009/7/20 23:35
294 path = /work/companydata/sales/
#【设置绝对路径】
295 # public = yes
296 # browseable = no
297 # only guest = yes
298 # writable = yes
299 # write list = @root
300 # write list = loris
301 # printable = no
302 valid users = @sales
#【设置是有sales组人员可以访问】
[root@rhel52 samba]# service smb reload
Reloading smb.conf file: [ OK ]
[root@rhel52 samba]#
c、配置映射登录账户到文件smbusers
配置smb.conf
23 [global]
24 # use smbusers mapping login user.
25 username map = /etc/samba/smbusers
添加映射登录用户名s1、s2代替linux中的用户sale1、sale2
1 # Unix_name = SMB_name1 SMB_name2 ...
2 root = administrator admin
3 nobody = guest pcguest smbguest
4 sale1 = s1
5 sale2 = s2
重启服务
[root@rhel52 samba]# service smb restart
Shutting down SMB services: [ OK ]
Shutting down NMB services: [ OK ]
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
[root@rhel52 samba]#
【File Server -客户端访问控制 跟踪实例配置】
①字段使用
hosts allow 允许访问的客户端
hosts deny 禁止访问的客户端
同时出现时host allow生效,多个参数时中间用空格分开。
安全级别设置security = share
②IP地址访问控制
hosts deny = 192.168.0. 表示禁止所有来自192.168.0.0/24网段的IP访问。
hosts allow = 192.168.0.24 表示允许192.168.0.24这个机器访问。
③域名访问控制
[public]
command = pulbic data
path= /public
pritable = yes
hosts deny = .sale.com .net free
表示不允许.sale.com域、.net域和free机器访问。
④通配符进行访问控制
hosts deny = All 表示所有客户端都不可以访问。(不是主机的名字是All)
hosts allow = boss 表示可以boss机器访问
⑤EXCEPT除去法限制
hosts allow = 192.168.0. EXCEPT 192.168.0.100 192.168.0.78表示192.168.0.0/24网络都可以,但是其中.100和.78的主机不能访问。
⑥hosts allow/deny作业范围
[global]中表示全局。
[目录中]表示仅对目录有效。
【设置samba的权限】
未完P123/553