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系统不能同其它服务正常连接的时,也不妨试试这个方法。
根据互联网整理,感谢作者!
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 用户是否可写,这里我们允许。
保存退出即可。
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
在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
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就可以相互共享文件了。
## 我的发现+我的总结
Samba共享在wins已经不需要调整了(win8是,win7暂时没有试过)
linux的安全做的非常好,samba 和linux是两个不同的安全机制,且在samba配置文件中可以设置对应的读写权限来限制用户的访问
samba现在貌似只允许security=user的访问了,(domain没试过)如果依然设置为share则无法正常启动服务!(ref=http://forum.ubuntu.org.cn/viewtopic.php?t=479560)
为了不至于在win上设置,能直接使用,最简单的办法就是:在linux中添加对应组(和win计算机用户名相同的),并将标准权限用户加入该组中:{
1.添加小PCStick的用户tv2的组:groupadd TV2-PC
2.添加linux标准用户normal(我自己写的名字)至组TV2-PC:usermod -a -G TV2-PC normal
3.在samba中添加normal用户(可以设置密码,设置就要输入密码!):smbpasswd -a normal
}//如果不进行1,2设置,就不能在samba中添加用户
//如果不设置用户同样也不能访问吧(猜的,没验证!)
在smb.conf中设置:
需要注意:#注释掉的为默认值,写出说明足够重要.;注释掉的为默认不是这样的值
因此,可以得出:read only=yes 为默认值,改为no就可以写入了.(研究很久发现的,终于可以正常使用了)
sudo gedit /etc/samba/smb.conf
我的共享目录设置:
[netlogon]
comment = Network Logon Service
path = /media/normal/仓库/
# guest ok = yes
read only = no
browseable=no
valid users=@TV2-PC
public =no
过程中参考文章:
http://blog.csdn.net/pursue168/article/details/6443046
http://blog.csdn.net/attagain/article/details/11987297
http://blog.csdn.net/w657395940/article/details/20312053
http://blog.csdn.net/splenday/article/details/47116969
http://www.cnblogs.com/xd502djj/archive/2011/11/23/2260094.html
http://www.cnblogs.com/ymy124/archive/2012/04/21/2461259.html
## 查看当前登录用户的组内成员:
很简单:/etc/group文件即是
## linux 添加|删除用户命令:
useradd|userdel 要添加的用户名
## 更改linux用户密码:
passwd 要更改的用户名
## 添加用户到组:
usermod -a -G 组名 用户名
## 删除用户某一组:
gpasswd -d 用户名 组名
## 添加|删除组:
groupadd|groupdel 组名
##添加用户至sudo:
gedit /etc/sudoers
找到root ALL=(ALL) ALL
随后添加:用户名 ALL=(ALL) ALL
没有评论:
发表评论