怎样解决Windows7Vista访问Samba共享的问题

怎样解决Windows7Vista访问Samba共享的问题,第1张

在默认情况下,使用类似“\\IP地址\共享名称”都是可以正常的访问Windows共享的,但是使用这种方式访问Samba服务器时,会出现认证无法通过的情况,如下图所示。其原因就是从Windows Vista开始,微软基于安全性的考虑,默认只采用NTLM v2协议的认证回应消息了,而目前主流的NAS系统和Samba服务器还只支持LM或者NTLM。

我们可以通过修改本地安全策略的方式,强制Windows使用兼容Samba的认证方式。首先,在“开始”-“搜索”框中输入“secpolmsc“打开本地安全策略。

然后找到”本地策略“-”安全选项“-”网络安全:LAN管理器身份验证级别“,我们可以看到其认证级别是没有定义的。右键单击,选择”属性“。

在打开的属性窗口中,我们可以看到,身份验证级别是没有设置的,因此Windows会采用系统默认的最高认证级别。

我们需要设置认证级别为更具兼容性的“发送LM和NTLM - 如果已协商,则使用NTLMv2 会话安全”选项,然后单击“应用”-“确定”,就生效了。

完成之后,就可以正常的访问Samba和NAS共享盘了。当然,通过修改注册表的方式,也可以达到同样的目的。首先,在“开始”-“搜索”框里输入“regeditexe“,回车打开注册表编辑器。

因为上述步骤已经设置了本地安全策略的LAN管理器身份认证级别,因此我们就不需要再重复修改注册表了,如下图可见,在注册表的”HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa“主键下,添加了子键”LmCompatibilityLevel“,值为”1“。因此,如果不想从组策略窗口中修改,直接设置此键值也是具有同样效果的。

此操作步骤在Windows7环境下完成,在Windows Vista环境同样适用。但Windows 8似乎又不用设置即可正常访问Samba NAS盘,因此WIndows8可以不用设置。

这里只讲到一些很简单的配置,为了方便初学者进行win和linux的通信,也可以了解一些linux服务的配置环境。

概要:

Windows中有一个网络邻居,它提供在局域网内的小型网络资源共享方案,计算机之间使用Samba套件SMB(Session Message Block)协议服务通信。LINUX也可以通过此协议与Windows实现类似网络邻居的通信。下面将介绍SMB协议在Linux下的安装、配置和使用。

注:对于Linux的一些基本使用这里不作详细介绍。SMB基于NetBIOS协议工作。

安装:

Samba的安装包可从网络下载,现在的版本是22。我从LINUX的安装盘中找到的安装包(223),共三个,都以Samba开头,RPM包格式,用rpm –ivh xxxrpm 解包,将把服务和工具存放到/sbin和/usr/bin下,配置文件在/etc/samba中。查找一下smb、nmb、smbclient工具是否存在。

配置:

对Samba的配置主要是对smbconf文件的设置。配置项目和方法有机百种之多,在配置文件目录中提供一个预制的配置文件,你只要对其进行改动就行,;和#表示注释。下面将对配置中的主要项目加以说明。

注:这里只是配置将本机对外公布的数据,如何使用其它主机的服务几乎与此无关,但最好配置一下。

1、 简化配置,清晰概念

smbconf的基本数据只有三段[global]、[homes]、[printers],分别对服务通信数据、个人目录和打印机进行配置。其中[global]段是必需的,[homes]的默认设置使将登陆用户的的主目录进行共享,[printers]是共享系统中配置的所有打印机。

2、 [global]段

这一段只介绍一下基本的配置。其他可根据需要设置。

a) 以下配置在网络邻居里的显示信息

Workgroup = 工作组名 与windows工作组是一个意思

Server string = xxxxx 对计算机的简要说明

b) 如果要共享打印机,使用以下几项

Printcap name = /etc/printcap 打印机配置文件列表

Load printers = yes

printing = lprng 说明打印机类型

c) 指明日志文件

log file = /var/log/samba/%mlog %m表示登陆用户账号

d) 设置公开资源使用级别,与windows的访问控制相像

security = user

e) 设置登陆密码,可用smbpasswd –a 用户名设置密码

encrypt passwords = yes

smb passwd file = /etc/samba/smbpasswd 密码保存文件

f) 下面一部分很有意思,它可以将不同的登陆账号映射为现有的用户而不用要求系统必须有此账户,即当使用windows时不必注销和更换账号,并且linux也不必添加大量账号。

username map = /etc/samba/smbusers 映射文件

如果其他设置没有改动的话,现在启动samba就可以正常通信了。但使用是否如您所愿,还需要对共享数据进行配置。

3、[homes]段

comment = Home Directories 提示信息,不重要

browseable = no 是否显示次段表示的共享,但在[homes]段不起无用,仍然显示$HOME文件夹。

writable = yes

valid users = %S

create mode = 0664 在此文件夹中创建文件的默认权限

directory mode = 0775

4、[printers]段

comment = All Printers

path = /var/spool/lpd/testsmb 假脱机目录

browseable = no 与[homes]相同

# Set public = yes to allow user ’guest account’ to print

guest ok = no

writable = no

printable = yes

5、其他的共享资源设置与[printers]和[homes]中的设置差不多。可以参考一下配置文件中的一些注释掉的设置。

其他的配置是集成3、4段的设置参数,可参考其他资料。

启动:

Samba启动主要由smbd和nmbd完成,很简单

1、 smbd –D -d1

2、 nmbd -D -d1 -n 计算机名

smbd SMB的客户进程,使用smbconf文件

nmbd 提供NetBIOS有名服务和浏览支持。

-D 表示以守护进程方式运行 –d1 表示服务启动级别,d1就行

稍等让windows找到服务,打开网络邻居找找,应该能找到了,否则检查一下网络连通情况。或用testparm工具检查一下配置文件的语法。

使用:

这里只讲一下linux下的使用,windows下不会用的话,哪还是用linux吧,哈哈。

smbclient –L 远程计算机名 –U 用户名

将列出远程计算机上的共享资源情况

smbclient ‘\远程计算机名共享名称’ –u xx

将进入到一个类似ftp的文本界面,就像使用ftp一样,稍有不同,看一下,很简单。

这个简单,可以参考 《鸟哥的linux私房菜 服务器》 第一个服务器就是samba服务器。。具体的来说:

samba配置文件smbconf

一般你装系统的时候会默认安装samba,如果没有安装,只需要运行这个命令安装(CentOS):

“yum install -y samba samba-client”

Samba的配置文件为/etc/samba/smbconf,通过修改这个配置文件来完成我们的各种需求。打开这个配置文件,你会发现很多内容都用”#”或者”;”注视掉了。先看一下未被注释掉的部分:

[global]

workgroup = MYGROUP

server string = Samba Server Version %v

security = user

passdb backend = tdbsam

load printers = yes

cups options = raw

[homes]

comment = Home Directories

browseable = no

writable = yes

[printers]

comment = All Printers

path = /var/spool/samba

browseable = no

guest ok = no

writable = no

printable = yes

主要有以上三个部分:[global], [homes], [printers]。

[global]定义全局的配置,”workgroup”用来定义工作组,相信如果你安装过windows的系统,你会对这个workgroup不陌生。一般情况下,需要我们把这里的”MYGROUP”改成”WORKGROUP”(windows默认的工作组名字)。

security = user #这里指定samba的安全等级。关于安全等级有四种:

share:用户不需要账户及密码即可登录samba服务器

user:由提供服务的samba服务器负责检查账户及密码(默认)

server:检查账户及密码的工作由另一台windows或samba服务器负责

domain:指定windows域控制服务器来验证用户的账户及密码。

passdb backend = tdbsam # passdb backend (用户后台),samba有三种用户后台:smbpasswd, tdbsam和ldapsam

smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba 密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,有时需要手工创建该文件。

tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdbtdb,在/etc/samba中。passdbtdb用户数据库可使用smbpasswd –a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。pdbedit参数很多,列出几个主要的:

pdbedit –a username:新建Samba账户。

pdbedit –x username:删除Samba账户。

pdbedit –L:列出Samba用户列表,读取passdbtdb数据库文件。

pdbedit –Lv:列出Samba用户列表详细信息。

pdbedit –c “[D]”–u username:暂停该Samba用户账号。

pdbedit –c “[]”–u username:恢复该Samba用户账号。

ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置“passdb backend = ldapsam:ldap://LDAP Server”

load printers 和 cups options 两个参数用来设置打印机相关。

除了这些参数外,还有几个参数需要你了解:

netbios name = MYSERVER # 设置出现在“网上邻居”中的主机名

hosts allow = 127 19216812 19216813 # 用来设置允许的主机,如果在前面加”;”则表示允许所有主机

log file = /var/log/samba/%mlog #定义samba的日志,这里的%m是上面的netbios name

max log size = 50 # 指定日志的最大容量,单位是K

[homes]该部分内容共享用户自己的家目录,也就是说,当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单纯的文件共享的环境来说,这部分可以注视掉。

[printers]该部分内容设置打印机共享。

samba实践

注意:在试验之前,请先检测selinux是否关闭,否则可能会试验不成功。关于如何关闭selinux请查看第十五章 linux系统日常管理的“linux的防火墙”部分

1 共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读。

打开samba的配置文件/etc/samba/smbconf

[global]部分

把”MY GROUP”改成”WORKGROUP”

把”security = user” 修改为“security = share”

然后在文件的最末尾处加入以下内容:

[share]

comment = share all

path = /tmp/samba

browseable = yes

public = yes

writable = no

mkdir /tmp/samba

chmod 777 /tmp/samba

启动samba服务

/etc/initd/smb start

测试:

首先测试你配置的smbconf是否正确,用下面的命令

testparm

如果没有错误,则在你的windows机器上的浏览器中输入file://IP/share 看是否能访问

2 共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写

打开samba的配置文件/etc/samba/smbconf

[global] 部分内容如下:

[global]

workgroup = WORKGROUP

server string = Samba Server Version %v

security = user

passdb backend = tdbsam

load printers = yes

cups options = raw

然后加入以下内容:

[myshare]

comment = share for users

path = /samba

browseable = yes

writable = yes

public = no

保存配置文件,创建目录:

mkdir /samba

chmod 777 /samba

然后添加用户。因为在[globa]中” passdb backend = tdbsam”,所以要使用” pdbedit” 来增加用户,注意添加的用户必须在系统中存在。

useradd user1 user2

pdbedit -a user1 # 添加user1账号,并定义其密码

pdbedit -a user2

pdbedit -L # 列出所有的账号

测试:

打开IE浏览器输入file://IP/myshare/ 然后输入用户名和密码

3 使用linux访问samba服务器

Samba服务在linux下同样可以访问。前提是你的linux安装了samba-client软件包。安装完后就可以使用smbclient命令了。

smbclient //IP/共享名 -U 用户名

如:[root@localhost]# smbclient //100467/myshare/ -U user1

Password:

Domain=[LOCALHOST] OS=[Unix] Server=[Samba 3033-329el5_62]

smb: \>

出现如上所示的界面。可以打一个””列出所有可以使用的命令。常用的有cd, ls, rm, pwd, tar, mkdir, chown, get, put等等,使用help + 命令可以打印该命令如何使用,其中get是下载,put是上传。

另外的方式就是通过mount挂载了:

如:

mount -t cifs //100467/myshare /mnt -o username=user1,password=123456

格式就是这样,要指定-t cifs //IP/共享名本地挂载点 -o后面跟username 和 password

挂载完后就可以像使用本地的目录一样使用共享的目录了。

默认情况下,Windows无法正常访问Samba服务器上的共享文件夹。原因在于从Vista开始,微软默认只采用NTLMv2协议的认证回应消息了,而目前的Samba还只支持LM或者NTLM。

解决办法:修改本地安全策略。

1、通过Samba服务可以实现UNIX/Linux主机与Windows主机之间的资源互访,由于实验需要,轻车熟路的在linux下配置了samba服务,操作系统是redhat linux 90,但是在windows7下访问的时候问题就出现了,能够连接到服务器,但是输入密码的时候却给出如图一的提示:

2、在linux下的smbconf配置文件里面的配置完全没有错误,之前安装Windows XP的时候访问也完全正常,仔细查看配置还是正常,如果变动配置文件里面的工作组或者允许IP地址Windows7会出现连接不上的情况,不会出现提示输入用户名和密码。

3、这种情况看来是windows7的问题,解决的办法是:单击”开始“-“运行”,输入secpolmsc,打开“本地安全策略”,在本地安全策略窗口中依次打开“本地策略”-->“安全选项”,然后再右侧的列表中找到“网络安全:LAN管理器身份验证级别”,把这个选项的值改为“发送 LM 和 NTLM – 如果已协商,则使用 NTLMv2会话安全”,最后确定。如图二。

到这里再连接samba服务器,输入密码就可以正常访问samba服务器了。

开放NetBiOS服务(137端口)

端口说明:137端口主要用于“NetBIOS Name Service”(NetBIOS名称服务),属于 UDP端口,使用者只需要向局域网或互联网上的某台计算机的137端口发送一个请求,就可以获取该计算机的名称、注册用户名,以及是否安装主域控制器、 IIS是否正在运行等信息。

端口漏洞:因为是UDP端口,对于攻击者来说,通过发送请求很容易就获取目标计算机的相关信息,有些信息是直接可以被利用,并分析漏洞的,比如IIS服务。另外,通过捕获正在利用137端口进行通信的信息包,还可能得到目标计算机的启动和关闭的时间,这样就可以利用专门的工具来攻击。

操作建议:建议关闭该端口。

具体而言,就是说通过137端口除了该机的计算机名和注册用户名以外,还可以得到该机是否为主域控制器和主浏览器、是否作为文件服务器使用、IIS和Samba是否正在运行以及Lotus Notes是否正在运行等信息。也就是说,只要您想获得这些信息,只需向这台个人电脑的137端口发送一个请求即可。只要知道IP地址,就可以轻松做到这一点。不只是公司内部网络,还可以通过因特网得到这样的信息。

137端口为什么会把这种信息包泄漏到网络上呢?这是因为,在Windows网络通信协议 --“NetBIOS over TCP/IP(NBT)”的计算机名管理功能中使用的是137端口。

计算机名管理是指Windows网络中的电脑通过用于相互识别的名字 --NetBIOS名,获取实际的IP地址的功能。可以用两种方法使用137端口。

一种方法是,位于同一组中的电脑之间利用广播功能进行计算机名管理。电脑在起动时或者连接网络时,会向位于同组中的所有电脑询问有没有正在使用与自己相同的NetBIOS名的电脑。每台收到询问的电脑如果使用了与自己相同的NetBIOS名,就会发送通知信息包。这些通信是利用137端口进行的。

另一种方法是利用WINS(Windows因特网名称服务)管理计算机名。被称为WINS服务器的电脑有一个IP地址和NetBIOS名的对照表。 WINS客户端在系统起动时或连接网络时会将自己的NetBIOS名与IP地址发送给WINS服务器。与其他计算机通信时,会向WINS服务器发送 NetBIOS名,询问IP地址。这种方法也使用137端口。

如上所述,为了得到通信对象的IP地址,137端口就要交换很多信息包。在这些信息包中,包括有如表3所示的很多信息。利用广播管理计算机名时,会向所有电脑发送这些信息。如果使用NBT,就会在用户没有查觉的情况下,由电脑本身就会向外部散布自己的详细信息。

什么是NetBIOS及NetBIOS的作用与应用

英文原义:NetBIOS Services Protocols

中文释义:(RFC-1001,1002)网络基本输入/输出系统协议

注解:该协议是由IBM公司开发,主要用于数十台计算机的小型局域网。NetBIOS协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的统一的命令集,作用是为了给局域网提供网络以及其他特殊功能,系统可以利用WINS服务、广播及Lmhost文件等多种模式将NetBIOS名解析为相应IP地址,实现信息通讯,所以在局域网内部使用 NetBIOS协议可以方便地实现消息通信及资源的共享。因为它占用系统资源少、传输效率高,尤为适于由 20 到 200 台计算机组成的小型局域网。所以几乎所有的局域网都是在NetBIOS协议的基础上工作的。

应 用:在Windows操作系统中,默认情况下在安装TCP/IP协议后会自动安装NetBIOS。比如在Windows 2000/XP中,当选择“自动获得IP”后会启用DHCP服务器,从该服务器使用NetBIOS设置;如果使用静态IP地址或DHCP服务器不提供 NetBIOS设置,则启用TCP/IP上的NetBIOS。具体的设置方法如下:首先打开“控制面板”,双击“网络连接”图标,打开本地连接属性。接着,在属性窗口的“常规”选项卡中选择“Internet协议(TCP/IP)”,单击“属性”按钮。然后在打开的窗口中,单击“高级”按钮;在“高级 TCP/IP设置”窗口中选择“WINS”选项卡,在“NetBIOS设置”区域中就可以相应的NetBIOS设置。

因NETBIOS给用户带来的潜在危害

当安装TCP/IP协 议时,NetBIOS 也被Windows作为默认设置载入,我们的计算机也具有了NetBIOS本身的开放性。某些别有用心的人就利用这个功能来攻击服务器,使管理员不能放心使用文件和打印机共享。

利用NETBIOS漏洞进行攻击的端口分别为:

135端口开放实际上是一个WINNT漏洞,开放的135的端口情况容易引起自外部的 “Snork”攻击!!!

对于135端口开放的问题,可以在你的防火墙上,增加一条规则:拒绝所有的这类进入的UDP 包,目的端口是135,源端口是7,19,或者135,这样可以保护内部的系统,防止来自外部的攻击。大多数防火墙或者包过滤器已经设置了很多严格的规则,已覆盖了这条过滤规则,但任需注意:有一些NT的应用程序,它们依靠UDP135端口进行合法的通讯,而打开你135的端口与NT的RPC服务进行通讯。如果真是这样,你一定要在那些原始地址的系统上(需要135口通讯),实施上述的规则,指定来自这些系统的通讯可以通过防火墙,或者,可以被攻击检测系统所忽略,以便维持那些应用程序的正常连接。为了保护你的信息安全,强烈建议你安装微软的最新补丁包。

上面我们说到Netbios(NETwork Basic Input/Output System)网络基本输入输出系统。是1983年IBM开发的一套网络标准,微软在这基础上继续开发。微软的客户机/服务器网络系统都是基于 NetBIOS的。在利用Windows NT40 构建的网络系统中,对每一台主机的唯一标识信息是它的NetBIOS名。系统可以利用WINS服务、广播及Lmhost文件等多种模式通过139端口将 NetBIOS名解析为相应IP地址,从而实现信息通讯。在这样的网络系统内部,利用NetBIOS名实现信息通讯是非常方便、快捷的。但是在 Internet上,它就和一个后门程序差不多了。因此,我们很有必要堵上这个可怕的漏洞。

——利用NetBIOS漏洞攻击

1利用软件查找共享资源

利用NetBrute Scanner 软件扫描一段IP地址(如100131~10013254)内的共享资源,就会扫描出默认共享

2 用PQwak破解共享密码

双击扫描到的共享文件夹,如果没有密码,便可直接打开。当然也可以在IE的地址栏直接输入扫描到的带上共享文件夹的IP地址,如“\\10013191”(或带C$,D$等查看默认共享)。如果设有共享密码,会要求输入共享用户名和密码,这时可利用破解网络邻居密码的工具软件,如PQwak,破解后即可进入相应文件夹。

——关闭NetBIOS漏洞

1 解开文件和打印机共享绑定

鼠标右击桌面上[网络邻居]→[属性] →[本地连接] →[属性],去掉“Microsoft网络的文件和打印机共享”前面的勾,解开文件和打印机共享绑定。这样就会禁止所有从139和445端口来的请求,别人也就看不到本机的共享了。

2 利用TCP/IP筛选

鼠标右击桌面上[网络邻居] →[属性]→[本地连接] →[属性],打开“本地连接属性”对话框。选择[Internet协议(TCP/IP)]→[属性]→[高级]→[选项], 在列表中单击选中“TCP/IP筛选”选项。单击[属性]按钮,选择“只允许”,再单击[添加]按钮(如图2),填入除了139和445之外要用到的端口。这样别人使用扫描器对139和445两个端口进行扫描时,将不会有任何回应。

3 使用IPSec安全策略阻止对端口139和445的访问

选择[我的电脑]→[控制面板]→[管理工具]→[本地安全策略]→[IP安全策略,在本地机器],在这里定义一条阻止任何IP地址从TCP139和TCP445端口访问IP地址的IPSec安全策略规则,这样别人使用扫描器扫描时,本机的139 和445两个端口也不会给予任何回应。

4 停止Server服务

选择[我的电脑]→[控制面板]→[管理工具]→[服务],进入服务管理器,关闭Server 服务。这样虽然不会关闭端口,但可以中止本机对其他机器的服务,当然也就中止了对其他机器的共享。但是关闭了该服务会导致很多相关的服务无法启动,如机器中如果有IIS服务,则不能采用这种方法。

5 使用防火墙防范攻击

在防火墙中也可以设置阻止其他机器使用本机共享。如在“天网个人防火墙”中,选择一条空规则,设置数据包方向为“接收”,对方IP地址选“任何地址”,协议设定为“TCP”,本地端口设置为“139到139”,对方端口设置为“0到0”,设置标志位为“SYN”,动作设置为“拦截”,最后单击[确定]按钮,并在“自定义IP规则”列表中勾选此规则即可启动拦截139端口攻击了。

非局域网用户如何防范NETBIOS漏洞攻击

在windows9x下如果是个拨号用户。完全不需要登陆到 nt局域网络环境的话。只需要在控制面板→网络→删除microsoft网络用户,使用microsoft友好登陆就可以了。但是如果需要登陆到nt网络的话。那这一项就不能去处。因为nt网里需要使用netbios。

在windowsNT下可以取消netbios与TCP/IP协议的绑定。控制面板→网络 →Netbios接口→WINS客户(tcp/ip)→禁用。确定。重启。这样nt的计算机名和工作组名也隐藏了,不过会造成基于netbios的一些命令无法使用。如net等。

在windowsNT下你可以选中网络邻居→右键→本地连接→INTERNET协议(TCP/IP)→属性→高级→选项→TCP/IP筛选→在“只允许”中填入除了137,138,139只外的端口。如果在局域网中,会影响局域网的使用

在windowsXP下可以在控制面板上点击管理工具-本地安全策略,右击"IP安全策略, 在本地计算机"选择"管理IP筛选器表和筛选器操作",点添加,在对话框里填,随便写只要你记得住最好还是写"禁用135/139端口"比较看的懂 点右边的添加->下一步->源地址为"任何地址"->目的地址"我的地址"->协仪为TCP->在到此端口里填135或 139就可以

ed Hat Linux 90,则系统会默认安装Samba组件。我们可以在终端命令窗口输入以下命令进行验证:

[root@ahpeng root] rpm -qagrep samba

如果结果出现以下所示的5个软件包,则表示已经安装:

samba-swat-227a-790

samba-227a-790

redhat-config-samba-104-1

samba-common-227a-790

samba-client-227a-790

如果没有安装过Samba软件包,则可以插入第1张安装光盘,然后鼠标依次单击“主菜单→系统设置→添加/删除应用程序”菜单项,打开“软件包管理”对话框,在该对话框中找到“Windows文件服务器”选项,确保该选项处于选中状态,然后单击“更新”按钮即可开始安装。

你也可以把第1张安装光盘插入光驱,然后在终端命令窗口输入以下命令:

[root@ahpeng root]# cd /mnt/cdrom/RedHat/RPMS

[root@ahpeng RPMS]# rpm -ivh samba

[root@ahpeng RPMS]# rpm -ivh redhat-config-samba-104-1noarchrpm

二、Linux主机访问Windows主机

安装好Samba之后,就有了与Windows互相访问的基础。这里先介绍一下如何用字符命令方式访问Windows宿主机的共享资源。

1、查询宿主机的共享资源

可以使用“smbclient –L WindowsHostName”命令(此处的WindowsHostName用Windows主机名代替)。本例是要查询Windows主机Peter 上的共享资源,可以在终端窗口输入“smbclient –L Peter”命令,然后回车即可看到Windows主机的共享资源。

2、连接宿主机的共享目录

可以使用“smbclient //WindowsHostName/ShareName”命令来连接Windows主机上的某个共享文件夹,如果该共享文件夹需要用户名和密码,则可以使用“smbclient //WindowsHostName/ShareName –U UserName”命令。例如要连接Windows主机Peter上的共享目录Share,我们可以在终端窗口输入“smbclient //Peter/Share”命令然后回车即可。

如果连接成功,即可出现“smb:>”提示符,在该命令提示符下输入适当的命令,即可对所连接的共享目录进行操作。

Smb支持的命令有大约40个命令,可以很方便地对共享目录进行删除、重命名、切换目录等操作。如果要列出共享目录“Share”下的具体内容,可以使用ls命令。要删除其下的testtxt文件,可以使用“del testtxt”命令。共2页。

3、映射网络驱动器

我们知道,Windows下可以将共享目录映射为网络驱动器,这样就可以把共享目录当成本地文件夹来使用。在Linux下可以借助于 smbmount命令来实现,具体的命令参数是“smbmount //WindowsHostName/ShareName /mnt/smbdir”(此处的ShareName指代Windows共享资源名称,smbdir指代挂载点名称)。假设要将Windows主机 Peter下的共享文件夹Share映射为/mnt/WinShare目录,具体步骤是:

首先在/mnt目录下创建一个目录,假设为/mnt/WinShare;

然后打开终端命令窗口,运行“smbmount //Peter/Share /mnt/WinShare”即可。

现在再在文件管理器里打开/mnt/WinShare目录可以看到共享目录的内容,要卸载该映射目录,可以使用umount命令。

4、用Nautilus访问Windows主机

借助Gnome桌面下的文件管理器Nautilus,我们可以用图形界面来访问Windows主机,这里要注意的是Nautilus只是提供访问Windows主机的图形界面,具体的底层操作还是借助于Samba客户端来完成。

在Gnome桌面环境下,单击“主菜单→网络服务器”菜单项,即可用Nautilus文件管理器查看工作组列表。双击工作组名称,即可看到其下的Windows主机。

双击其中的某台Windows主机图标,即可看到该主机的共享文件夹,可以看到这和Windows下的网络邻居几乎一样。

由于Nautilus本身就是Red Hat Linux的文件管理器,所以我们可以任意往Windows共享目录里拷贝文件、删除文件、创建目录等等(对于windows 2000/XP主机还需要考虑该共享资源的权限设置)。

三、Windows主机访问Linux主机

要想让Windows宿主机能够访问Linux虚拟机,就必须在Linux虚拟机上启动Samba服务。在启动之前,还需要对Samba服务的属性进行配置,例如指定Linux虚拟机的共享目录、所在的工作组名称等。

1、配置Samba服务器

在以前版本的Red Hat Linux,我们必须直接修改Samba配置文件smbconf,或者使用SWAT对Samba进行全方位的设置。Red Hat Linux 90新引入了一个图形化的Samba服务器配置工具,可以让我们很方便地对Samba服务器进行配置。以root用户身份登录系统,单击“主菜单→系统设置→服务器设置→Samba服务器”菜单项,即可打开Samba服务器配置对话框。也可以在终端命令窗口输入“redhat-config- samba”,来访问Samba服务器配置对话框。

首先对Samba服务器的基本设置和安全选项进行配置,单击配置对话框上的“首选项→服务器设置”菜单项,即可打开服务器设置对话框。

基本设置:在对话框的“基本”标签页,我们可以指定Linux主机所在的工作组名称,需要注意的是,此处的工作组名称不一定非得与Windows主机所在的工作组名称一致。

安全设置:然后进行Samba服务器安全设置,这里一共有4个选项。

“验证模式”代表如果Windows主机不是位于NT域里,此处应该选择“共享”验证模式,这样只有在连接Samba服务器上的指定共享时才要求输入用户名、密码;“验证服务器”代表对于“共享”验证模式,无需启用此项设置;“加密口令”选项应该选择“是”,这样可以防止黑客用嗅探器截获密码明文;“来宾账号”代表当来宾用户要登录入 Samba 服务器时,他们必须被映射到服务器上的某个有效用户。选择系统上的现存用户名之一作为来宾Samba账号。当用户使用来宾账号登录入 Samba 服务器,他们拥有和这个用户相同的特权。

添加共享目录:单击Samba配置对话框工具栏上的“增加”按钮。在打开的对话框中的“基本”标签页上,指定(共享)目录为某个存在的目录,例如可以指定/tmp,再指定该目录的基本权限是只读还是读/写。在“访问”标签页上,可以指定允许所有用户访问、或者只允许某些用户访问。

2、启动Samba服务器

打开终端命令窗口,输入“/sbin/service smb start”命令,即可出现以下提示信息,表示Samba服务已经启动。

# /sbin/service smb start

启动SMB 服务 [确定]

启动NMB 服务 [确定]

接下来在Windows里打开“网络邻居”,就可以看到我们刚才设置的Samba服务器了

默认情况下,Windows无法正常访问Samba服务器上的共享文件夹。原因在于从Vista开始,微软默认只采用NTLM

v2协议的认证回应消息了,而目前的Samba还只支持LM或者NTLM。

解决办法:修改本地安全策略。

1、通过Samba服务可以实现UNIX/Linux主机与Windows主机之间的资源互访,由于实验需要,轻车熟路的在linux下配置了samba服务,操作系统是red

hat linux 90,但是在windows7下访问的时候问题就出现了,能够连接到服务器,但是输入密码的时候却给出如图一的提示:

2、在linux下的smbconf配置文件里面的配置完全没有错误,之前安装Windows XP的时候访问也完全正常,仔细查看配置还是正常,如果变动配置文件里面的工作组或者允许IP地址Windows7会出现连接不上的情况,不会出现提示输入用户名和密码。

3、这种情况看来是windows

7的问题,解决的办法是:单击”开始“-“运行”,输入secpolmsc,打开“本地安全策略”,在本地安全策略窗口中依次打开“本地策略”-->“安全选项”,然后再右侧的列表中找到“网络安全:LAN

管理器身份验证级别”,把这个选项的值改为“发送 LM 和 NTLM – 如果已协商,则使用 NTLMv2

会话安全”,最后确定。如图二。

到这里再连接samba服务器,输入密码就可以正常访问samba服务器了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎样解决Windows7Vista访问Samba共享的问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情