文章目录

  • 一、Samba 概述
  • 1. samba 简介
  • 2. samba 监听端口
  • 3. samba 进程
  • 4. samba 用户
  • 5. samba 安全级别
  • 6. samba 配置文件
  • 7. 常用配置文件参数
  • 二、搭建匿名用户共享服务器(Linux - Linux)
  • 1. 环境准备
  • 2. 服务端
  • 3. 客户端
  • 4. 服务端上验证
  • 三、Windows 访问共享文件



一、Samba 概述

1. samba 简介

  • Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。
  • NFS 与 samba 一样,也是在网络中实现文件共享的一种实现,但不幸的是,其不支持 windows 平台,samba 是能够在任何支持 SMB 协议的主机之间共享文件的一种实现,当然也包括 windows。
  • SMB 是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
  • SMB 协议是 C/S 型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

2. samba 监听端口

TCP

UDP

139 | 445

137 | 138

  • tcp 端口相对应的服务是 smbd 服务,其作用是提供对服务器中文件、打印资源的共享访问
  • udp 端口相对应的服务是 nmbd 服务,其作用是提供基于 NetBIOS 主机名称的解析

3. samba 进程

进程

对应

nmbd

对应 netbios

smbd

对应 cifs 协议

winbindd + ldap

对应 Windows AD 活动目录

4. samba 用户

帐号

密码

都是系统用户 /etc/passwd

Samba 服务自有密码文件通过 smbpasswd -a USERNAME 命令设置

//smbpasswd 命令:
    -a Sys_User     //添加系统用户为 samba 用户并为其设置密码
    -d              //禁用用户帐号
    -e              //启用用户帐号
    -x              //删除用户帐号
 
 
[root@localhost ~]# yum -y install samba-*
[root@localhost ~]# useradd tom
[root@localhost ~]# smbpasswd -a tom
New SMB password:
Retype new SMB password:
Added user tom.

5. samba 安全级别

Samba 服务器的安全级别有三个,分别是 user,server,domain

安全级别

作用

user

基于本地的验证

server

由另一台指定的服务器对用户身份进行认证

domain

由域控进行身份验证

  • 以前的 samba 版本支持的安全级别有四个,分别是 share,user,server,domain
  • share 是用来设置匿名访问的,但现在的版本已经不支持 share 了,但是还是可以实现匿名访问的只是配置方式变了

6. samba 配置文件

  • /etc/samba/smb.conf(主配置文件)

samba 三大组成

作用

[global]

全局配置,此处的设置项对整个 samba 服务器都有效

[homes]

宿主目录共享设置,此处用来设置 Linux 用户的默认共享,对应用户的宿主目录。 当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主目录中

[printers]

打印机共享设置

7. 常用配置文件参数

参数

作用

workgroup

表示设置工作组名称

server string

表示描述 samba 服务器

security

表示设置安全级别,其值可为 share、user、server、domain

passdb backend

表示设置共享帐户文件的类型,其值可为 tdbsam(tdb数据库文件)、ldapsam(LDAP目录认证)、smbpasswd(兼容旧版本 samba 密码文件)

comment

表示设置对应共享目录的注释,说明信息,即文件共享名

browseable

表示设置共享是否可见

writable

表示设置目录是否可写

path

表示共享目录的路径

guest ok

表示设置是否所有人均可访问共享目录

public

表示设置是否允许匿名用户访问

write list

表示设置允许写的用户和组,组要用 @ 表示,例如 write list = root,@root

valid users

设置可以访问的用户和组,例如 valid users = root,@root

hosts deny

设置拒绝哪台主机访问,例如 hosts deny = 192.168.10.100

hosts allow

设置允许哪台主机访问,例如 hosts allow = 192.168.10.200

printable

表示设置是否为打印机

#测试配置文件是否有语法错误,以及显示最终生效的配置。使用 testparm 命令
[root@localhost ~]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Loaded services file OK.
Server role: ROLE_STANDALONE
......

二、搭建匿名用户共享服务器(Linux - Linux)

1. 环境准备

IP

主机

系统

192.168.10.20

server

CentOS7

192.168.10.30

client

CentOS7

systemctl stop firewalld && systemctl disable firewalld
setenforce 0
yum -y install ntp && ntpdate ntp.aliyun.com

//server
hostnamectl set-hostname server
su
//client
hostnamectl set-hostname client
su

2. 服务端

yum -y install samba-* &> /dev/null
systemctl start smb && systemctl enable smb

#添加全局配置
vim /etc/samba/smb.conf
......
[global]
        workgroup = SAMBA
        security = user
        map to guest = Bad User
......

#创建共享文件夹
mkdir -p /opt/yc
chmod 777 /opt/yc/
ll /opt/

#配置共享
cat >> /etc/samba/smb.conf << EOF
[yc]
comment = yc
path = /opt/yc
browseable = yes
guest ok = yes
writable = yes
public = yes
EOF

#测试配置文件是否有误
testparm

#重启服务
systemctl restart smb

3. 客户端

yum -y install samba-* &> /dev/null
systemctl start smb && systemctl enable smb

#客户端验证
smbclient -L 192.168.10.20 -U 'Bad User'	#123456
mkdir -p /opt/smb
mount -t cifs //192.168.10.20/yc /opt/smb/ -o username='Bad User'
df -h

#在客户端上创建共享目录,文件
cd /opt/smb/ && touch test && mkdir yanchuang
ls

4. 服务端上验证

[root@server ~]#cd /opt/yc
[root@server /opt/yc]#ls
test  yanchuang

三、Windows 访问共享文件

同网段 windows 虚拟机访问

samba服务的审计audit功能故障 samba服务是什么_网络


samba服务的审计audit功能故障 samba服务是什么_linux_02


samba服务的审计audit功能故障 samba服务是什么_配置文件_03

不同网段 windows 虚拟机访问

  • 需要认证

samba服务的审计audit功能故障 samba服务是什么_配置文件_04