Samba服务概述:

Samba最先在Linux和Windows两个平台之间架起了一座桥梁,正是由于Samba的出现,我们可以在Linux系统和Windows系统之间互相通信,比如拷贝文件、实现不同操作系统之间的资源共享等等,我们可以将其假设成一个功能强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印。


Samba应用环境:

文件和打印机共享:文件和打印机共享是Samba的主要功能,SMB进程实现资源共享,将文件和打印机发布到网络之中,以供用户可以访问。

身份验证和权限设置:smbd服务支持user mode和domain mode等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打印机。


端口号:139 和 445

在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP 协议的137/138以及TCP协议的139端口。



NETBIOS协议

NetBIOS是Network Basic Input/Output System的简称,网络基本输入/输出系统协议。一般指用于局域网通信的一套API,是由IBM公司开发。主要作用:通过NETBIOS协议获得计算机名称,然后把计算机名解析为对应的IP地址。


模式: C/S模式


安装Samba:

[root@www ~]# rpm -ivh /mnt/Packages/samba-3.6.23-45.el6_9.x86_64        #该包为Samba服务的主程序包


配置文件:

[root@www ~]# vim /etc/samba/smb.conf


服务启动和关闭:

1)Samba服务的启动

[root@www ~]# service smb start        #启动
[root@www ~]# service smb stop         #关闭
[root@www ~]# service smb restart      #重启
[root@www ~]# service smb reload       #重读配置文件
[root@www ~]# chkconfig smb on         #设置开机启动


查看对应端口号:

[root@www ~]# netstat -antup | grep smb
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LISTEN      11458/smbd          
tcp        0      0 0.0.0.0:445                 0.0.0.0:*                   LISTEN      11458/smbd          
tcp        0      0 :::139                      :::*                        LISTEN      11458/smbd          
tcp        0      0 :::445                      :::*                        LISTEN      11458/smbd



 


修改配置文件

Samba常规服务器配置

基本的Samba服务器的搭建流程主要分为四个步骤:

1、编辑主配置文件smb.conf,制定需要共享的目录,并为共享目录设置共享权限。

2、在smb.conf文件中指定日志文件名称和存放路径。

3、设置共享目录的本地权限以及Samba共享权限。

4、重新加载配置文件或重新启动smb服务,使配置生效

配置文件详解:

1、Samba配置简介

smb.conf 文件的开头部分为Samba配置简介,告诉我们smb.conf 文件的作用及相关信息。

smb.conf 中还有以“;”开头,这些都是Samba配置的格式范例,默认是不生效的,可以通过去掉前面的“;”并加以修改来设置想要的功能。



2、Golobal settings

Global Settings设置为全局变量区域。全局变量就是说我们只要在global时进行设置,那么该设置项目就是针对所有共享资源生效。这与以后我们学习的很多服务器配置文件相似。

Samba服务器安装_Samba


格式:    字段=设定值





【global】常用字段及设置方法:


1、设置Samba服务器所在工作组或域名

这里设置Samba服务器的工作组为test.cn

 workgroup = test.cn    #工作组


2、服务器描述,服务器描述实际上类似于备注信息。

设置Samba描述信息为“test.cn Samba Server ”。

 server string = test.cn Samba Server   #Samba服务器描述


3、设置Samba服务器安全模式。常见模式有两种:share安全级别模式和user安全级别模式

Samba服务器有share、user、server、domain和AD活动目录 五种安全模式。


    share 安全级别模式

客户端登录Samba服务器,不需要输入用户名和密码就可以浏览Samba服务器的资源,适用于公共的共享资源,安全性差,需要配合其他权限设置,保证Samba服务器的安全性。


    user 安全级别模式

客户端登录Samba服务器,需要提×××法账号和密码,经过服务器验证爱可以访问共享资源,服务器默认为此级别模式。


4、Share Definitions 共享服务的定义

[homes]为特殊共享目录,表示用户主目录

[printers]表示共享打印机



配置一个共享资源:

[share]           #设置共享名 
        comment = Home Directories    #描述
        path = /share                 #共享路径,写绝对路径
        browseable = yes              #是否允许查看共享内容。如果为否,后期通过绝对路径,可以查看到。
        public = yes                  #允许匿名查看


5、设置访问用户

如果共享资源存在重要数据的话,需要对访问用户审核,我们可以使用valid users字段进行设置。

格式:

valid users = 用户名

valid users = @组名


6、设置目录只读

共享目录如果限制用户的读写操作,我们可以通过readonly实现。

格式:    

readonly = yes        #只读

readonly = no         #读写


7、设置目录可写

如果共享目录允许用户写操作,可以使用writable 或 write list 两个字段进行设置

writable格式:

writable = yes # 读写

writable = no  # 只读

write list 格式:

write list = 用户名

write list = @组名


Samba服务日志文件

在/etc/samba/smb.conf 文件中,log file 未设置Samba日志的字段。





修改配置文件,实战举例:搭建匿名Samba服务器


例:公司现在用一个工作组test.cn,需要添加Samba服务器作为文件服务器,并发布共享目录/share,共享名为public,这个共享目录允许所有公司员工访问。

[root@www ~]# mkdir /share                    #创建共享目录
[root@www ~]# cp /etc/passwd /share           #复制一个测试文件
[root@www ~]# vim /etc/samba/smb.conf

        

工作组以及服务器描述


Samba服务器安装_linux_02


共享级别为share,允许匿名访问。


Samba服务器安装_linux_03



设置共享目录


Samba服务器安装_linux_04


重启smb服务。


[root@www ~]# service smb restart
Shutting down SMB services:                                [  OK  ]
Starting SMB services:                                     [  OK  ]


测试:找一台Windows,在文件管理器输入服务器的地址,匿名访问Samba服务器。

注意,地址栏前应该写双反斜杠\\


Samba服务器安装_Samba_05

Samba服务器安装_Samba_06






例:通过用户名和密码共享/share,不允许匿名登录。


设置安全级别为user

密码文件指定为/etc/samba/smbpasswd

Samba服务器安装_linux_07


1、添加销售部门用户和组并添加相应Samba账号

[root@www samba]# groupadd sales
[root@www samba]# useradd -g sales sale1
[root@www samba]# useradd -g sales sale2

注意:系统用户无法登陆Samba,需要创建Samba账户。


[root@www samba]# smbpasswd -a sale1
New SMB password:                #密码
Retype new SMB password:         #再次输入密码
startsmbfilepwent_internal: file /etc/samba/smbpasswd did not exist. File successfully created.
Added user sale1.
[root@www samba]# smbpasswd -a sale2
New SMB password:
Retype new SMB password:
Added user sale2.


设置共享目录:


Samba服务器安装_linux_08


重启Samba服务。

[root@www ~]# service smb restart
Shutting down SMB services:                                [  OK  ]
Starting SMB services:                                     [  OK  ]


输入用户名和密码,登录Samba服务器。

 

Samba服务器安装_linux_09

Samba服务器安装_Samba_10









扩展参数:


客户端控制访问


hosts allow 和 hosts deny 的使用方法

1、hosts allow 和 hosts deny 字段的使用

hosts allow 字段定义允许访问的客户端

hosts deny 字段定义禁止访问的客户端


这里我添加hosts deny 和 hosts allow 字段

hosts deny = 192.168.0. 表示禁止所有来自192.168.0.0/24 网段的IP地址访问

hosts allow = 192.168.0.24 表示允许192.168.0.24这个IP地址访问

当host deny 和 hosts allow 字段同时出现并定义的内容互相冲突时,hosts allow优先。

writable = yes    #允许写入