共计 12326 个字符,预计需要花费 31 分钟才能阅读完成。
一:实验环境
Samba服务端:linuxidc63.com IP:192.168.1.63
Samba客户端:linuxidc64.com IP:192.168.1.64
1:关闭 iptables # 很重要
2:关闭 selinux
二:实验目标
1、samba 服务器概述
2、samba 服务器配置文件
3、实战,举例
三:实验代码
第一块: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 是 Network Basic Input/Output System 的简称,网络基本输入 / 输出系统协议 。协议, 一般指用于局域网通信的一套 API, 是由 IBM 公司开发 。主要作用:通过NETBIOS 协议获得计算机名称,然后把计算机名 解析为 对应IP 地址。
模式: C/S 模式
Samba 常规服务器配置 — 基本的 Samba 服务器的搭建流程主要分为四个步骤:
[1]、编辑主配置文件 smb.conf, 指定需要共享的目录,并为共享目录设置共享权限。
[2]、在 smb.conf 文件中指定日志文件名称和存放路径。
[3]、设置共享目录的 本地系统权限 及samba 共享权限。
[4]、重新加载配置文件或重新启动 smb 服务,使用配置生效
1:Samba安装与启动
1)安装 Samba: 服务器端:
[root@linuxidc63 ~]# rpm -ivh /mnt/Packages/samba-3.5.10-114.el6.x86_64.rpm
#该包为 Samba 服务的主程序包。
[root@linuxidc64 ~]# rpm -ivh /mnt/Packages/samba-client-3.5.10-114.el6.x86_64.rpm
#该包为 Samba 的客户端工具,是连接服务器和连接网上邻居的客户端工具并包含其测试工具
2)服务启动
[root@linuxidc63 ~]#service smb start
[root@linuxidc63 ~]#chkconfig –level 3 smb on #运行级别 3 自动加载
chkconfig –level 3 smb off #运行级别 3 不自动加载
3)查看端口:
[root@linuxidc63 ~]# netstat -antup | grep smb
tcp 0 0 :::139 :::* LISTEN 3086/smbd
tcp 0 0 :::445 :::* LISTEN 3086/smbd
2:samba 配置文件详解
samba.conf 配置简介
smb.conf 文件的开头部分为 samba 配置简介,告诉我们 smb.conf 文件的作用及相关信息。
smb.conf 中还有以 “;”开头,这 些都是 samba 配置的格式范例,默认是不生效滴,可以通过
去掉前面的“;”并加以修改来设置想使用的功能。
下面我们说下 [global] 全局配置中 常用字段及设置方法:
1: 设置 samba 服务器所在工作组或域名
workgroup = linuxidc.com #工作组,随便设置
2: 服务器描述,服务器描述实际上类似于备注信息,
设置 samba 描述信息为“linuxidc.com Samba Server ”。
server string = linuxidc.com Samba Server #samba 服务器描述
3: 设置 samba 服务器安全模式。常见模式有两种:share 安全级别模式和 user 安全级别模式
samba 服务器有 share、user、server、domain 和AD 活动目录 五种安全模式。
1)share 安全级别模式
客户端登录 samba 服务器,不需要输入用户名和密码就可以浏览 samba 服务器的资源,适用于公
共的共享资源,安全性差,需要配合其他权限设置,保证 samba 服务器的安全性。
2)user 安全级别模式
客户端登录 samba 服务器,需要提交合法帐号和密码,经过服务器验证才可以访问共享资源,服
务器默认为此级别模式。
3) Share Definitions 共享服务的定义
[homes]为特殊共享目录,表示用户主目录。
[printers]表示共享打印机。
4:[share] #设置共享名
comment = Home Directories #对共享名的描述
browseable = yes #是否允许查看此共享内容。如果是否,后期通过绝对路径,可以查看到。
path = /tmp/mysql #共享路径,写绝对路径
public = yes #允许匿名查看
readonly = 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 = @组名
8:hosts allow 和 hosts deny 字段的使用
hosts allow #字段定义允许访问的客户端
hosts deny #字段定义禁止访问的客户端
这里我们添加 hosts deny 和hosts allow 字段
hosts deny = 192.168.0.0 #表示禁止所有来自 192.168.0.0/24 网段的 IP 地址访问
hosts allow = 192.168.0.24 #表示允许 192.168.0.24 这个 IP 地址访问
注意:当 host deny 和hosts allow 字段同时出现并定义滴内容相互冲突时,hosts allow 优先。
第二块:修改配置文件,实战举例
例 1: 匿名共享:
公司现在用一个 工作组 linuxidc.com, 需要添加 samba 服务器作为文件服务器,并发布共享目
录 /share,共享名为share, 这个共享目录允许所有公司员工访问。
[root@linuxidc63 ~]# vim /etc/samba/smb.conf
[global]
workgroup = linuxidc.com
server string =linuxidc.com Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = share
passdb backend = tdbsam
load printers = yes
cups options = raw
#[homes] #由于是匿名登录,所以不用给其宿主目录,避免占用系统资源 , 以下的配置就没有任何效果。
comment = Home Directories
browseable = no
writable = yes
[share]# 共享名为 share
comment = All Printers
path = /share
browseable = yes
guest ok = no #不允许用户在上面操作
writable = yes
public=yes
[root@linuxidc63 ~]# mkdir /share
[root@linuxidc63 share]# cp /etc/passwd /share/
[root@linuxidc63 share]# mkdir mulu
[root@linuxidc63 share]# touch a.txt
[root@linuxidc63 samba]# service smb reload
此服务的使用方法
windows: windows+R,打开一个运行窗口
Linux:
[root@linuxidc64 ~]# smbclient -L 192.168.1.63
Enter root’s password: #密码为空,直接回车
例 2: 通过用户名和密码共享文件。
公司想把 /sales 共享出去,只有知道用户名和密码的 销售部人员 可以看这个共享。
分析:
为了公司系统安全起见,公司给销售部人员的账号密码是不能登录系统的,只会给销售部人员一个samba 共享账号和密码的,切这个密码是不能和此账号登录系统的密码一样的。
大概步骤:
1:先指定存放密码的文件位置
2:将全局配置中 security 设置为 user 安全级别,
3:: 设置 共享目录
4:设置权限
5:重启并测试
注意:一定要先指定 共享用户 存放密码的文件位置:
1:修改 samba 主配置文件smb.conf
root@linuxidc63 ~]# vim /etc/samba/smb.conf
改: passdb backend = tdbsam
为: passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
2::添加销售部用户和 组并添加相应 samba 帐号
使用 groupadd 命令添加 sales 组,然后执行 useradd 命令和 passwd 命令添加销售部员工的帐号
及密码。
1)添加销售部用户和 组
[root@linuxidc63 samba]# groupadd sales
[root@linuxidc63 samba]# useradd -g sales sale1
[root@linuxidc63 samba]# useradd -g sales sale2
[root@linuxidc63 samba]# id sale2
uid=501(sale2) gid=500(sales) groups=500(sales)
2)为销售部成员添加相应 samba 帐号 及设置密码
[root@linuxidc63 samba]# smbpasswd -a sale1
[root@linuxidc63 samba]# smbpasswd -a sale2
New SMB password:1234
Retype new SMB password:1234
startsmbfilepwent_internal: file /etc/samba/smbpasswd did not exist. File successfully created.
Added user sale2.
分析:在为此账户创建smb 共享密码时,会先查看先前设置的共享用户的密码位置,发现没有这个文件夹,然后自动创建这个文件夹。
[root@linuxidc63 share]# cat /etc/samba/smbpasswd
sale1:500:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:7CE21F17C0AEE7FB9CEBA532D0546AD6:[U]:LCT-57DFF2F4:
sale2:501:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:7CE21F17C0AEE7FB9CEBA532D0546AD6:[U]:LCT-57DFF2FB:
3:修改 samba 主配置文件smb.conf
1)设置 共享 目录:
oot@linuxidc63 samba]# vim smb.conf
2)创建共享目录:
[root@linuxidc63 Desktop]# mkdir /sales
[root@linuxidc63 Desktop]# cp /etc/passwd !$
cp /etc/passwd /sales
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-05/143472p2.htm
4:重新加载配置
[root@linuxidc63 samba]# service smb restart
Shutting down SMB services: [OK]
Starting SMB services: [OK]
5:测试:输入销售部的帐号及密码进行登录
用户 :sale1 密码:1234
这 # 样销售部成员 sale1 就可以进行访问 sales 共享目录下的数据了 , 这里除了看到sales 的共享目录,还能看到用户的属主目录。
例3:通过用户名和密码共享文件。
公司新出产品,想要把产品信息/tmp/users 文件夹共享给部门员工了解下,且共享名为 users,员工中的组长具有可读可写和删除权限,其他员工只能读,不能写和删除。将 zy2 账号为组长用,其余为员工用。
注意:将上一实验中的第一项修改内容进行恢复再实验
1:添加系统用户并设置密码和设置用户登录共享密码
[root@linuxidc63 tmp]# useradd -s /sbin/nologin zy1
[root@linuxidc63 tmp]# useradd -s /sbin/nologin zy2
# 创建两个登录 samba 服务器的用户,为了系统安全,这两个不用户是不能登录系统的。
[root@linuxidc63 tmp]# echo 123456 | passwd –stdin zy1
[root@linuxidc63 tmp]# echo 123456 | passwd –stdin zy2
# 设置的用户登录系统的密码是可有可无的
[root@linuxidc63 tmp]# pdbedit -a -u zy1
new password:12345
retype new password:12345
[root@linuxidc63 tmp]# pdbedit -a -u zy2
new password:1234567
retype new password:1234567
# 将用户成为 Samba 共享用户,且密码不同
2:修改配置文件
[root@linuxidc63 samba]# vim smb.conf
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = user #安全级别为需要用户密码登录
passdb backend = tdbsam
load printers = yes
cups options = raw
[homes]
comment = Home Directories
browseable = yes #在浏览中可以看到共享用户的宿主目录,
writable = yes #在��主目录中具有可写权限
[users] #共享文件的共享名
comment = All Printers
path = /tmp/users #共享目录
browseable = yes @在浏览中是可以看不到共享文件的
read only = yes #对于共享文件中只具有只读的权限
valid users = zy1, zy2 #共享用户
write list = zy2 #共享用户中的某个用户的另加权限
3:修改贡献文件的权限,改为执行权限
[root@linuxidc63 sales]# cd /tmp/
[root@linuxidc63 tmp]# mkdir users
[root@linuxidc63 tmp]# cp /etc/passwd !$
cp /etc/passwd users
[root@linuxidc63 samba]# chmod 777 /tmp/users/
[root@linuxidc63 samba]# service smb restart
测试:
输入:\\192.168.1.63
用户 :zy1 密码:1234
总结:账户 zy1 有自己的属主目录,可以在自己的属主目录中创建新的文件,并且可以进行写,但是不能再共享文件中修改,或删除这里面的任何文件。所以此用户在共享文件夹中是只有只读权限的。
# 在运行 CMD 中清除之前用户登录的规则,并让其他用户登录
#员工中的组长 zy2 不仅可以在自己的属主目录中创建文件夹,写文件,还能在共享文件中创建新的文件夹,写文件以及删除文件等。图中可以看出 passwd 文本已近被删除了,还创建了新的文件夹。因此此用户组长 具有可读可写删除修改等权限。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/143472.htm
一:实验环境
Samba服务端:linuxidc63.com IP:192.168.1.63
Samba客户端:linuxidc64.com IP:192.168.1.64
1:关闭 iptables # 很重要
2:关闭 selinux
二:实验目标
1、samba 服务器概述
2、samba 服务器配置文件
3、实战,举例
三:实验代码
第一块: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 是 Network Basic Input/Output System 的简称,网络基本输入 / 输出系统协议 。协议, 一般指用于局域网通信的一套 API, 是由 IBM 公司开发 。主要作用:通过NETBIOS 协议获得计算机名称,然后把计算机名 解析为 对应IP 地址。
模式: C/S 模式
Samba 常规服务器配置 — 基本的 Samba 服务器的搭建流程主要分为四个步骤:
[1]、编辑主配置文件 smb.conf, 指定需要共享的目录,并为共享目录设置共享权限。
[2]、在 smb.conf 文件中指定日志文件名称和存放路径。
[3]、设置共享目录的 本地系统权限 及samba 共享权限。
[4]、重新加载配置文件或重新启动 smb 服务,使用配置生效
1:Samba安装与启动
1)安装 Samba: 服务器端:
[root@linuxidc63 ~]# rpm -ivh /mnt/Packages/samba-3.5.10-114.el6.x86_64.rpm
#该包为 Samba 服务的主程序包。
[root@linuxidc64 ~]# rpm -ivh /mnt/Packages/samba-client-3.5.10-114.el6.x86_64.rpm
#该包为 Samba 的客户端工具,是连接服务器和连接网上邻居的客户端工具并包含其测试工具
2)服务启动
[root@linuxidc63 ~]#service smb start
[root@linuxidc63 ~]#chkconfig –level 3 smb on #运行级别 3 自动加载
chkconfig –level 3 smb off #运行级别 3 不自动加载
3)查看端口:
[root@linuxidc63 ~]# netstat -antup | grep smb
tcp 0 0 :::139 :::* LISTEN 3086/smbd
tcp 0 0 :::445 :::* LISTEN 3086/smbd
2:samba 配置文件详解
samba.conf 配置简介
smb.conf 文件的开头部分为 samba 配置简介,告诉我们 smb.conf 文件的作用及相关信息。
smb.conf 中还有以 “;”开头,这 些都是 samba 配置的格式范例,默认是不生效滴,可以通过
去掉前面的“;”并加以修改来设置想使用的功能。
下面我们说下 [global] 全局配置中 常用字段及设置方法:
1: 设置 samba 服务器所在工作组或域名
workgroup = linuxidc.com #工作组,随便设置
2: 服务器描述,服务器描述实际上类似于备注信息,
设置 samba 描述信息为“linuxidc.com Samba Server ”。
server string = linuxidc.com Samba Server #samba 服务器描述
3: 设置 samba 服务器安全模式。常见模式有两种:share 安全级别模式和 user 安全级别模式
samba 服务器有 share、user、server、domain 和AD 活动目录 五种安全模式。
1)share 安全级别模式
客户端登录 samba 服务器,不需要输入用户名和密码就可以浏览 samba 服务器的资源,适用于公
共的共享资源,安全性差,需要配合其他权限设置,保证 samba 服务器的安全性。
2)user 安全级别模式
客户端登录 samba 服务器,需要提交合法帐号和密码,经过服务器验证才可以访问共享资源,服
务器默认为此级别模式。
3) Share Definitions 共享服务的定义
[homes]为特殊共享目录,表示用户主目录。
[printers]表示共享打印机。
4:[share] #设置共享名
comment = Home Directories #对共享名的描述
browseable = yes #是否允许查看此共享内容。如果是否,后期通过绝对路径,可以查看到。
path = /tmp/mysql #共享路径,写绝对路径
public = yes #允许匿名查看
readonly = 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 = @组名
8:hosts allow 和 hosts deny 字段的使用
hosts allow #字段定义允许访问的客户端
hosts deny #字段定义禁止访问的客户端
这里我们添加 hosts deny 和hosts allow 字段
hosts deny = 192.168.0.0 #表示禁止所有来自 192.168.0.0/24 网段的 IP 地址访问
hosts allow = 192.168.0.24 #表示允许 192.168.0.24 这个 IP 地址访问
注意:当 host deny 和hosts allow 字段同时出现并定义滴内容相互冲突时,hosts allow 优先。
第二块:修改配置文件,实战举例
例 1: 匿名共享:
公司现在用一个 工作组 linuxidc.com, 需要添加 samba 服务器作为文件服务器,并发布共享目
录 /share,共享名为share, 这个共享目录允许所有公司员工访问。
[root@linuxidc63 ~]# vim /etc/samba/smb.conf
[global]
workgroup = linuxidc.com
server string =linuxidc.com Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = share
passdb backend = tdbsam
load printers = yes
cups options = raw
#[homes] #由于是匿名登录,所以不用给其宿主目录,避免占用系统资源 , 以下的配置就没有任何效果。
comment = Home Directories
browseable = no
writable = yes
[share]# 共享名为 share
comment = All Printers
path = /share
browseable = yes
guest ok = no #不允许用户在上面操作
writable = yes
public=yes
[root@linuxidc63 ~]# mkdir /share
[root@linuxidc63 share]# cp /etc/passwd /share/
[root@linuxidc63 share]# mkdir mulu
[root@linuxidc63 share]# touch a.txt
[root@linuxidc63 samba]# service smb reload
此服务的使用方法
windows: windows+R,打开一个运行窗口
Linux:
[root@linuxidc64 ~]# smbclient -L 192.168.1.63
Enter root’s password: #密码为空,直接回车
例 2: 通过用户名和密码共享文件。
公司想把 /sales 共享出去,只有知道用户名和密码的 销售部人员 可以看这个共享。
分析:
为了公司系统安全起见,公司给销售部人员的账号密码是不能登录系统的,只会给销售部人员一个samba 共享账号和密码的,切这个密码是不能和此账号登录系统的密码一样的。
大概步骤:
1:先指定存放密码的文件位置
2:将全局配置中 security 设置为 user 安全级别,
3:: 设置 共享目录
4:设置权限
5:重启并测试
注意:一定要先指定 共享用户 存放密码的文件位置:
1:修改 samba 主配置文件smb.conf
root@linuxidc63 ~]# vim /etc/samba/smb.conf
改: passdb backend = tdbsam
为: passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
2::添加销售部用户和 组并添加相应 samba 帐号
使用 groupadd 命令添加 sales 组,然后执行 useradd 命令和 passwd 命令添加销售部员工的帐号
及密码。
1)添加销售部用户和 组
[root@linuxidc63 samba]# groupadd sales
[root@linuxidc63 samba]# useradd -g sales sale1
[root@linuxidc63 samba]# useradd -g sales sale2
[root@linuxidc63 samba]# id sale2
uid=501(sale2) gid=500(sales) groups=500(sales)
2)为销售部成员添加相应 samba 帐号 及设置密码
[root@linuxidc63 samba]# smbpasswd -a sale1
[root@linuxidc63 samba]# smbpasswd -a sale2
New SMB password:1234
Retype new SMB password:1234
startsmbfilepwent_internal: file /etc/samba/smbpasswd did not exist. File successfully created.
Added user sale2.
分析:在为此账户创建smb 共享密码时,会先查看先前设置的共享用户的密码位置,发现没有这个文件夹,然后自动创建这个文件夹。
[root@linuxidc63 share]# cat /etc/samba/smbpasswd
sale1:500:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:7CE21F17C0AEE7FB9CEBA532D0546AD6:[U]:LCT-57DFF2F4:
sale2:501:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:7CE21F17C0AEE7FB9CEBA532D0546AD6:[U]:LCT-57DFF2FB:
3:修改 samba 主配置文件smb.conf
1)设置 共享 目录:
oot@linuxidc63 samba]# vim smb.conf
2)创建共享目录:
[root@linuxidc63 Desktop]# mkdir /sales
[root@linuxidc63 Desktop]# cp /etc/passwd !$
cp /etc/passwd /sales
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-05/143472p2.htm