Linux环境下Samba服务器的研究与实现

2016-04-11 14:01王惠
电脑知识与技术 2016年4期

王惠

摘要:在Windows环境下可以通过网上邻居访问局域网主机,而在Linux环境下则可以通过Samba客户端访问局域网内的Windows主机,也可以通过Samba服务器给Windows主机提供文件、打印机等服务。该文就是通过实例系统介绍了如何在Linux环境下架设和配置Samba服务器。

关键词:Linux;Samba服务器;网络互访;共享资源;访问安全

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)04-0062-02

The Research and the Realization of Samba Server with Linux

WANG Hui

(Jiuzhou College of Vocation & Technology, Xuzhou 221116,China)

Abstract:Computers with Windows of LAN can be accessed through the Network Neighborhood. Computers with Linux can access ones that run Windows by Samba Client and supply services of files and printing by Samba Server. This article is mainly about how to build and configure Samba server with Linux.

Key words:Linux; Samba Server;access each other; share resources; the security of access

1 Samba服务器简介

计算机网络最具吸引力的功能就是资源的共享。在Windows环境下我们可以通过网上邻居实现不同计算机之间的相互访问,但是当局域网中存在多种操作系统时,例如既有安装Windows的计算机,又有安装Linux的计算机,则需要Samba服务器实现它们之间的访问。Samba服务器可实现不同类型计算机之间文件和打印机的共享。Samba服务器可以使Windows用户通过网上邻居等方式直接访问Linux的共享资源,而Linux用户也可通过Samba客户端访问到Windows的共享资源[1]。

Samba有两个核心守护进程:smbd和nmbd。smbd守护进程负责建立对话、验证用户、提供文件和打印机共享服务等;nmbd守护进程负责实现网络浏览。smbd守护进程负责建立对话、验证用户、提交文件和打印机共享服务等;nmbd守护进程负责实现网络浏览。

2 Samba服务器的功能

文件共享和打印共享是Samba最主要的功能。Samba为了方便文件共享和打印共享,还实现了相关的控制和管理功能。具体来说,Samba完成的功能有:

1)共享目录:在局域网上共享某个或某些目录,使得同一个网络内的Windows用户可以在网上邻居里访问该目录,就跟访问某些网上邻居里的其他Windows机器一样。

2)共享打印机:在局域网上共享打印机,使得局域网的其他用户可以使用Linux操作系统下的打印机。

3)目录权限:决定每一个目录可以由哪些人访问,具有哪些访问权限。Samba允许设置一个目录让一个人、某些人、组合和所有人访问。

4)打印机使用权限:决定哪些用户可以使用计算机。

3 Samba服务器的配置

将Samba服务器相关的软件包安装完成后,Linux服务器和Windows客户端之间还不能正常互联。为了让Samba服务器真正发挥作用,还需要正确地配置Samba服务器,例如指定Linux虚拟机的共享目录、所在的工作组名称、共享资源的访问控制、安全级别等。这些配置可以通过编辑/etc/samba/smb.conf实现,该文件结构主要包括三部分:全局参数部分、目录共享部分、打印共享部分。

3.1共享资源的访问控制

3.1.1浏览权

访问控制最高效的实现方式就是通过隐藏来保证安全,用browseable参数隐藏共享资源,并假定保护共享资源不被未授权访问就可以了。因此通过设置browseable为yes使登录用户只能看到自己的宿主目录,加强Samba服务器的安全性。

3.1.2主机访问权

最基本的Samba访问控制形式是通过域名和端口地址进行控制。通过smb.conf文件global和shares声明的hosts allow和hosts deny参数,可以限制对那些工作组和域中可信任的主机的访问。

3.1.3用户和组访问

Samba通过username、only user、valid user和invalid users参数限制指定用户的访问权限。对于每—个参数所指定的用户名,在授予访问权或拒绝访问之前,都通过相关的用户列表检查服务器提交的用户名。

3.1.4 文件访问许可

虽然已经将连接的权限缩小到一部分客户机用户和主机的范围内,但是还需要对共享文件和目录对象操作的权限进行设置,通过Linux用户和组标识符进行读、写和执行的特权。

3.2安全级别的设置

在smb.conf文件中可以利用security参数设置Samba服务器的安全级别,Samba服务器提供5种安全级别,最常用的安全级别是共享或用户[2]。

1)共享(Share):当客户端连接到Samba服务器后,不需要输入Samba用户名和口令就可以访问Samba服务器中的共享资源。这种方式方便但不太安全。

2)用户(User):这是Samba服务器的默认安全级别。Samba服务器负责检查Samba用户名和口令,验证成功后才能访问相应的共享目录。

3)域(Domain):Samba服务器本身不验证Samba用户名和口令,而由Windows与控制服务器负责。此时必须指定域控制服务器的NetBIOS名称。

4)服务器(Server):Samba服务器不验证Samba用户名和口令,而将输入的用户名和口令传递给另一个Samba服务器来校验。此时必须指定负责验证的Samba服务器的名称。

5)活动目录域(ADS):Samba服务器不验证Samba用户名和口令,而由活动目录域服务器来负责。此时必须指定活动目录域服务器的NetBIOS名称。

另外,还要正确地设置防火墙。因为默认情况下RHEL Server 5的防火墙不允许Windows客户端访问Samba服务器,所以必须打开相应的服务。此外,SELinux对于Samba服务也有影响,应禁用SELinux。

3.3配置实例

架设用户级别的Samba服务器,其中peter用户可利用Samba服务器访问其个人主目录、/tmp目录,当前工作组为workgroup[3]。

配置过程如下:

1) 将peter用户设置为Samba用户,并设置其口令。

[root@localhost ~]#smbpasswd –a peter

2) 利用文本编辑器编辑/etc/samba/smb.conf文件如下:

[global]

workgroup=workgroup

security=user

[homes]

comment=Home Directory

browseable=no

writeable=yes

[tmp]

path=/tmp

writeable=yes

3) 利用testparm命令测试配置文件是否正确。

[root@localhost ~]#testparm

4) 重新启动Samba服务。

[root@localhost ~]#service smb start

5) 设置防火墙和SELinux

在图形界面下单击“系统”—“管理”—“防火墙和安全级别”菜单[4],打开安全级别设置窗口如图1。在“防火墙选项”中选中信任的服务“Samba”,在“SELinux”选择“禁用”。

4 Windows计算机访问Samba共享

在Windows计算机中双击桌面的网上邻居,可找到Samba服务器,如图2所示。双击Samba Server(Rhel),因为此时设置的安全级别是用户User,那么将首先出现输入网络登录用户名和密码对话框,在此输入Samba用户peter和所设置的密码后将显示所配置的Samba服务器的共享目录,即peter用户的个人主目录和/tmp目录。这时用户就可以在Windows计算机上对Samba共享目录进行相应的读写操作了。

5 Linux访问Windows共享

如果局域网中的Samba服务器启动成功后,Windows计算机也可以向Linux计算机提供共享服务。首先在Windows计算机上通过编辑文件夹的属性设置共享文件夹。然后在Linux计算机的桌面环境下依次单击“位置”—“连接到服务器”,在打开的窗口中选择服务类型为windows共享,在服务器框中输入要访问的Windows计算机的IP地址,然后单击连接,将访问Windows计算机的共享目录,如图3所示。

6 结束语

Linux 是一个优秀的操作系统,尤其是它的网络功能,可以与各种操作系统轻松连接,实现多种网络服务。由于Linux系统的高稳定性和可靠性,以及低廉的价格,使它受到越来越多用户的青睐。在一些中小型网络,或者企业的内部网络中,利用Linux建立文件服务器是一个很好的解决方案。针对企业内部网中的绝大部分客户机采用Windows的情况,所以可以通过使用Samba来实现文件服务器功能。Samba不仅使得Linux计算机与Windows计算机实现网络互访,而且可以通过使用不同的参数,可以实现不同的访问控制,从而实现Samba服务器的安全性。

参考文献:

[1] 谢蓉.Linux基础及应用[M].北京:中国铁道出版社,2008.

[2] 曹江华.Linux服务器安全策略详解[M]. 北京:电子工业出版社,2009.

[3] 林天峰.Linux服务器架设指南[M]. 北京:清华大学出版社,2014.

[4] 陆昌辉.网络服务器组件,配置和管理Linux篇[M]. 北京:电子工业出版社,2008.