win7访问linux samba服务器共享解决方法

来源:互联网 发布:业余开淘宝店能赚钱吗 编辑:程序博客网 时间:2024/06/05 15:35
1、什么ntlm

早期SMB协议在网络上传输明文口令。后来出现LAN Manager Challenge/Response 验证机制,简称LM,它是如此简单以至很容易就被破解。微软提出了WindowsNT挑战/响应验证机制,称之为NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。NTLM是windows早期安全协议,因向后兼容性而保留下来。NTLM是NT LAN Manager的缩写,即NT LAN管理器。

2、禁止使用LM认证方法:

Windows NT Servers Service Pack 4和后续的版本都支持三种不同的身份验证方法:LanManager (LM)身份验证;Windows NT(也叫NTLM)身份验证;Windows NT Version 2.0(也叫NTLM2)身份验证。

  默认的情况下,当一个客户尝试连接一台同时支持LM和NTLM身份验证方法的服务器时,LM身份验证会优先被使用。所以建议禁止LM身份验证方法。

  1.打开注册表编辑器;

  2.定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa;

  3.选择菜单“编辑”,“添加数值”;

  4.数值名称中输入:LMCompatibilityLevel,数值类型为:DWORD,单击确定;

  5.双击新建的数据,并根据具体情况设置以下值:

   0-发送LM和NTLM响应;

   1-发送LM和NTLM响应;

   2-仅发送NTLM响应;(我使用的是这个,因为win7家庭版没有组策略模块)

   3-仅发送NTLMv2响应;(Windows 2000有效)

   4-仅发送NTLMv2响应,拒绝LM;(Windows 2000有效)

   5-仅发送NTLMv2响应,拒绝LM和NTLM;(Windows 2000有效)

   6.关闭注册表编辑器;

   7.重新启动机器。

3、使用win7家庭版本的修改方法:

现在许多公司都采用Linux+Samba服务做为文件服务器,部分员工发现在换装Vista系统后无法查看到服务器上Samba共享的文件目录,这是因为Samba Server 只支持NTLM 认证,而Vista却强制使用NTLMv2认证,这时我们就需要通过一些设置来解决这一问题。
解决方法如下:

首先,单击[开始]——[运行] 输入 “secpol.msc”打开管理工具,展开“本地策略(Local Policies)”。

然后,单击“安全选项(Security Options)”。 双击“网络安全:LAN Manager 身份验证级别(Network Security: LAN Manager authentication level)”

最后,单击列表中:发送LM和NTLMv2,如果已协商,则使用NTLMv2协议(LM and NTLM – use NTLMV2 session security if negotiated) .

通过以上设置,在对方不支持NTLMv2认证的时候,系统会自动采用NTLM认证方式进行验证。如果Vista系统不能同其它服务正常连接的时,也不妨试试这个方法。

根据互联网整理,感谢作者!


方法二

目前的工作环境是 win7+vmware workstation7.1+fc8. 一些东西反反复复的搞了多次,每次都会花些时间,在此做一记录,备忘。

1. 安装fc8. fc8的ISO,放在硬盘上。建立vmware的一个virtual machine. 在setting里将DVD指向fc8的ISO,一步一步的安装fc8。

2. 让win7和fc8能相互ping通。 按照vmware default的设置,vmnet1是fc8连接到internet的网口,不要更改。改变vmnet8的ipv4

地址为192.168.118.1/255.255.255.0; fc8的ipv4地址是192.168.118.128/255.255.255.0. 这样就能相互ping通。

3. 安装samba. 到rpm search上下载smba-3.0.33-0.fc8.i386.rpm, perl-Convert-ASN1-0.22-1.fc8.rf.noarch.rpm,samba-common-3.0.33-0.fc8.i386.rpm. 安装。

4. 配置samba。 vim /etc/samba/smb.conf. 将security=share.(最后我加上方法一和这句话才成功)

其他设置的含义:

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

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

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

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

添加path

[smb_share]
        comment = smb share with windows
        browsable = yes
        writable = yes
        public = yes
        path = /smb_share/

到fc8上将共享的目录改成任何用户可读可写 chmod 777 smb_share

重启smb服务 service smb restart

5. 安装SecureCRT。 在fc8下启动sshd(默认已经启动),SecureCRT通过SSH2连接到fc8. 理论上步骤5应该在4前,这样对samba的设置就可以在win7下进行了。

下面一段是对smb较完整的一个设置说明。 由于我是用的环境的原因,不存在多用户及安全的问题。设置相对简单。对于是用独立的SMB服务器的情况,也可以安装上面的简单配置。

另外,后面的另外一片文章讲述的windows和linux共享文件的一些方法,供参考。但是smb方式对我最为适合。si 看代码(uboot+kernel),Linux的工具链编译。

文章1

这几天学习了Linux下面的Samba服务器架设

系统环境:Windows xp sp3 ,IP:192.168.1.10 虚拟机下安装了Fedora-8-i386 IP:192.168.1.12

1. 首先检查os是否安装好了samba。

[root@cisco samba]# rpm -qa | grep smb

如果出现下面三行内容,则表示已经安装好了Samba

libsmbios-libs-0.13.10-1.fc8

libsmbios-bin-0.13.10-1.fc8

pam_smb-1.1.7-7.2.2

如果没有安装后好,需要进入安装关盘Fedora-8-i386-DVD.iso

[root@cisco /]# mount /dev/cdrom /mnt/cdrom/

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

[root@cisco /]# cd /mnt/cdrom/

[root@cisco cdrom]# ls

fedora.css isolinux README-BURNING-ISOS-en_US.txt repoview RPM-GPG-KEY-fedora RPM-GPG-KEY-rawhide

GPL media.repo RELEASE-NOTES-en_US.html RPM-GPG-KEY RPM-GPG-KEY-fedora-rawhide stylesheet-images

images Packages repodata RPM-GPG-KEY-beta RPM-GPG-KEY-fedora-test TRANS.TBL

[root@cisco cdrom]# cd Packages/

[root@cisco Packages]# rpm -ivh -aid smb*

即可安装成功。

2. 进入samba目录

[root@cisco /]# cd /etc/samba/

[root@cisco samba]# ls

lmhosts smb.conf smbpasswd smbusers

这里的smb.conf是samba服务器的主要配置文件。

还要注意一点,smbpasswd文件是用来存储用户帐号和经过md5加密后的密码。

刚安装好samba服务时,此文件不存在。需要手工创建。下面会介绍。

3. 编辑smb.conf文件

[root@cisco samba]# vi smb.conf

进行如下设置:

#======================= Global Settings =====================================

[global]

workgroup = MSHOME 将linux 加入的工作组名,我这里加入了MSHOME工作组。

server string = Samba 这是服务器描述信息,方便标志资源。可以随便输入。

encrypt passwords = yes 表示是否对用户的密码进行加密,这里选择加密,安全!

public = yes 定义一个共享是否对公共访问开放。当设置为 yes 时,在系统上没有帐户用户

将基于所定义的客户帐户的属性来接收访问。

smb passwd file = /etc/samba/smbpasswd 这是账号密码的存放文件

netbios name = mm's samba 在外部访问该samba服务器时,显示的信息。

# --------------------------- Logging Options -----------------------------

# logs split per machine

log file = /var/log/samba/log.%m log文件的存放位置。

# max 50KB per log file, then rotate

max log size = 0 log文件的大小限制,设置为0表示不做限制。

# ----------------------- Standalone Server Options ------------------------

security = user 共享的安全级别,samba有四种安全等级:

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

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

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

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

passdb backend = tdbsam

以上即为通用一般配置。

加入我们需要共享的目录为 /opt/

需要添加如下代码:

[rose]

comment = This is my samba server! 设置共享信息,随便输入

path = /opt 共享目录

valid users = testuser 可以访问次共享目录的用户,我这里设为testuser用户

public = yes 同上面的解释

writable = yes 用户是否可写,这里我们允许。

wq!

保存退出即可。

4. 启动smb服务

[root@cisco samba]# service smb start

Starting SMB services: [ OK ]

[root@cisco samba]# service nmb start

Starting NMB services: [ OK ]

5. 添加可以访问我们刚才设置共享目录的用户:testuser

1)建一个系统用户

[root@linux samba]# useradd testuser (建一个名叫testuser的用户)

[root@linux samba]# passwd t (给testuser用户添加密码)

Changing password for user samba.

New password: (密码要六位以上,不显示在屏幕上)

BAD PASSWORD: it does not contain enough DIFFERENT characters

Retype new password: (确认密码)

passwd: all authentication tokens updated successfully

2) 更新 /etv/samba/smbpasswd 文件

[root@linux samba]# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

3) 然后创建samba帐户

[root@cisco samba]# smbpasswd -a testuser

New SMB password:

Retype new SMB password:

Added user testuser.

6. 重新启动smb服务

[root@cisco samba]# service smb restart

Shutting down SMB services: [ OK ]

Starting SMB services: [ OK ]

[root@cisco samba]# service nmb restart

Shutting down NMB services: [ OK ]

Starting NMB services: [ OK ]

下面我们在Windows下测试一下,我的系统为Windows xp sp3

1.JPG

2.JPG

3.JPG

在Linux 下访问Windows的共享资源,显示信息为:

[root@cisco samba]# smbclient -L //192.168.1.10

Password:

Domain=[XPSP3] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

Sharename Type Comment

--------- ---- -------

IPC$ IPC 杩版洪┍濞绋搴

Sh版? Printer Adobe PDF Office Document Image Writer

session request to 192.168.1.10 failed (Called name not present)

session request to 192 failed (Called name not present)

Domain=[XPSP3] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

Server Comment

--------- -------

Workgroup Master

--------- -------

在Linux 下访问自己的samba服务器,显示信息为:

[root@cisco samba]# smbclient -L //192.168.1.12

Password:

Anonymous login successful

Domain=[MSHOME] OS=[Unix] Server=[Samba 3.0.26a-6.fc8]

Sharename Type Comment

--------- ---- -------

homes Disk Home Directories

rose Disk This is my samba server!

test-1 Disk This is my samba server!

IPC$ IPC IPC Service (Samba)

Anonymous login successful

Domain=[MSHOME] OS=[Unix] Server=[Samba 3.0.26a-6.fc8]

Server Comment

--------- -------

MM'S SAMBA Samba

Workgroup Master

--------- -------

MSHOME

文章2

Windows和Linux间有很多文件共享的方式,这里总结了一下。假设你的Host计算机是Windows,Guest是Linux。
1.用vmware tools工具

SharedFolders是Vmware4 的一个新功能,更加方便了在Host,Guest操作系统间共享文件。但是使用前

要安装vmware tools.

点击setting->vmware tools install
mount /dev/cdrom /mnt/cdrom

cd /mnt/cdrom

里面有一个vmware tools的tar包,解开执行vmware-tools-install.pl脚本,一路回车,一般没有问题。
点击Edit->Virtual Machine Settigns->Option->SharedFolders->Add,选定要共享的文件夹并给这个文件夹命名,下一步。选定“Enable
thisshare”, 确定以后,vmware会把这个文件夹自动mount到/mnt/hgfs目录下。

2.Windows下配置Ftp

用serv-u比较简单(或直接设置iis的ftp服务器)

3.Windows下配置WWW服务

用IIS,Apache或者其它的都可以。如果你的Linux只有命令行的话,就用wget命令吧,可以很方便地下载文件。

4.利用Windows的文件共享功能

比如说你的Windows的IP为192.168.0.1,共享了一个叫share的目录,那么就可以用下列命令

mount -t smbfs //192.168.0.1/share /mnt -o username=user%passwd

或者smbmount //192.168.0.1/share /mnt -o username=user%passwd(用这个命令要安samba哦)

5.利用Samba

这是我用得最多的方式(Samba服务器毕竟是多系统文件共享不错的解决方案)

6.在Linux下配置Apache

在Linux下配置Apache,然后在Windows下通过www方式把Linux下的文件下载下来。这种方式只能把Linux的文件传到Windows,不能把Windows的文件传到Linux.
(设置apache配置文件,并提供一个类似webshell的东西,可以把文件从windows通过www方式把win系统下的文件上传到linux)

7.在Linux下配置Ftp

用vsftp或者wu-ftp都可以,配置成上传权限的,然后Windows和Linux就可以相互共享文件了。

8.用ISO文件

虚拟机里面的光驱可以有物理光驱和ISO文件两种,我们可以把我们的文件重点制件成ISO文件(用WinIso),然后在Linux中作为CDROM挂接。

9.直接挂接物理硬盘或者硬盘分区

不过vmware也是支持直接mount Host机器的磁盘,方法是在虚机设置里新建磁盘,类型选“Usephysicaldisk(foradvanced users)”,再选定磁盘和分区就可以。但是这样的操作可能会引会文件系统的不一致,导致错误,不推荐使用。

 

转载自http://blog.163.com/cantou@126/blog/static/87548598201162182259719/

原创粉丝点击