首页 > 基础设施 > 正文

浅谈Samba服务器共享安全

2010-09-03 09:08:47  来源:万方数据

摘要:Samba是基于SMB协议的应用程序。Samba服务器能够方便地实现异构网络环境下Windows与UNIX/Linux之间的资源共享。通过对Samba安全配置和访问控制的分析,实现与Windows访问的共享安全。
关键词: Samba 访问控制

  资源共享是计算机网络实现通信中最重要的目的之一。无论在Windows还是Unix/Linux中都可以比较容易的实现,然而在一个由多种操作系统同时并存形成异构网络中,需要一种可以实现跨平台的网络服务—Samba服务。实现Samba服务本身比较容易,但是如何利用Samba实现Windows和Unix/Linux较为安全的网络共享,如何控制共享资源已经成为用户和Samba管理人员非常重视的问题。本文针对Samba的工作原理与通信方式分析了Linux平台配置Samba服务器的资源访问控制机制。
  1、工作原理
  一直以来Windows主机之间通过SMB/CIFS网络协议实现文件和打印资源的共享,但是由于SMB/CIFS是微软的私有协议,所以无法直接实现与UNIX系统进行通信。直到Samba开源软件项目的实现,在Unix/Linux系统中实现SMB/CIFS网络协议,可以将Linux系统中的目录和文件提供给Windows主机进行访同,实现跨平台的文件互通。
  Samba服务器中包括两个服务程序,两个服务程序同时运行,缺一不可。
  smbd:为客户机提供了服务器中共享资源的访问。
  nmbd:提供了NetBIOS主机名称的解析,为Windows网络中或者工作组内的主机进行主机名称的解析。
  2、Windows与Linux通信方法
  2.1实现Windows主机访问Samba服务器
  在Linux端配置好Samba服务器后。通过Windows操作系统中选择“开始”菜单——
  “运行”命令,在对话框中输入Samba服务器的主机地址,在出现的窗口内输入用户名(Samba用户名)和密码,则可看到Linux端共享的资源,进行相应的操作。
  2.2实现Linux主机访问Windows共享文件
  Samba是基于TCP/IP的SMB协议,从而使Unix/Linux能够支持SMB,因此如果windows已经安装了TCP/IP协议,利用Samba共享Unix/Linux资源时,Windows端不需要安装任何附加软件。
  在Windows主机中设置好共享目录,在Linux中使用smbclient命令登录Windows主机中的共享目录,或者通过smbmount命令进行共享资源的访问挂装实现共享文件。如果出现输入了正确口令而连接不上这样的问题,通常是由于Windows端没有启用Guest用户。
  3、Linux与Windows通信的安全控制
  Linux与Windows可通过Samba服务实现互访,安全访问的问题如何控制非常重要。当Linux访问Windows共享文件时,Linux端访问Windows的共享目录是Windows的合法账户及密码,对文件的访问控制权限有完全、更改和读取三种。而在Linux中实现Samba服务可采用的安全机制可通过以下几点体现:
  3.1使用Samba用户进行访问
  Linux操作系统中是用smbpasswd命令来设置Samba用户的密码,并不是设置系统用户密码。smbpasswd首先读取/etc/passwd系统账户文件上的用户,然后把这个用户添加到Samba用户配置文件中。即访问Samba服务器的用户使用Linux的系统帐号,访问密码与系统用户密码不一致,且存放密码的文件/etc/samba/smbpasswd与/etc/shadow文件分开存放。以保证Linux系统的安全性。
  3.2对配置文件的security设置认证方式
  通过security全局设置项确定Samba服务器对客户机采取的用户认证方式:
  share:用户不需要账户及密码登录服务器(安全级别最低)
  user:由Samba服务器检查账户及密码(默认认证)
  server:检查账号及密码的工作由另一台Windows或Samba服务器负责
  domain:指定Windows域控制服务器来验证用户所输入的账户及密码因此这四种安全等级可以使Samba通过设置用户认证方式只允许合法的用户才能登录到Samba文件共享服务器。
  3.3对共享资源的访问控制
  3.3.1浏览权
  访问控制最高效的实现方式就是通过隐藏来保证安全,用browseable参数隐藏共享资源。并假定保护共享资源不被未授权访问就可以了。因此通过设置browseable为yes使登录用户只能看到自己的宿主目录,加强Samba服务器的安全性。
  3.3.2主机访问权
  最基本的Samba访问控制形式是通过域名和口地址进行控制。通过smb.conf文件global和shares声明的hosts allow和hosts deny参数,可以限制对那些工作组和域中可信任的主机的访问。
  3.3.3用户和组访问
  Samba通过username、only user、valid user和invalid users参数限制指定用户的访问权限。对于每—个参数所指定的用户名,在授予访问权或拒绝访问之前,都通过相关的用户列表检查服务器提交的用户名。
  3.3.4文件访问许可
  虽然我们已经将连接的权限缩小到一部分客户机用户和主机的范围内。但是还需要对共享文件和目录对象操作的权限进行设置,通过Linux用户和组标识符进行读、写和执行的特权。
  总之,资源共享是网络的最基本功能需求,实现安全的跨平台Samba管理是网络服务的重要应用。本文通过对Samba工作原理、通信方式以及资源访问控铺的分析了解到,Samba设计的主要是通过协议的兼容向Windows与Linux操作系统提供一种安全的沟通桥梁。为了保证Samba服务的共享安全,Samba服务器可以采用多种机制实现只有授权用户通过可信任的主机访问可见资源,并严格区分其对文件读、写和执行的操作行为。

(责编:韩雨彤)


第三十八届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。