linux系统samba服务器安装及安全设置

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。 SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
Samba 应该范围主要是Windows和Linux 系统共存的网络中使用;如果一个网络环境都是Linux或Unix类的系统,没有必要用Samba,应该用NFS更好一点;
Samba共享比较简单形式如\\10.0.0.126\共享目录,下面详细说下安装配置过程。
一.安装samba服务器
笔者选用的是centos5.8操作系统,相对来说安装就比较简单了。
首先执行rpm -qa|grep samba  查看是否已经安装了samba。

samba -----samba服务器程序的所有文件
samba-common -----提供了Samba服务器和客户机中都必须使用的公共文件
samba-client -----提供了Samba客户机的所有文件
samba-swat -----以Web界面的形式提供了对Samba服务器的管理功能
没有或者版本较低的话执行
yum install samba-*  -y 即可
安装比较简单,下面看配置。
chkconfig smb on # 设置samba开机启动
service smb start # 启动samba服务器
二.samba配置
samba配置文件的位置:/etc/samba/smb.conf。修改之前先备份下默认的配置文件,这里主要讲下权限及安全方面的配置。
cp smb.conf  smb.conf.default  ##备份是个好习惯
vi smb.conf
1)全局配置
[global]
workgroup = WORKGROUP #要访问的电脑的工作组名,windows一般默认都为这个
security = user #访问的方式,share不需要密码,user需要用户名和密码



-----------Standalone Server Options----------

#使用独立服务器作为Samba服务器认证用户来源,也就是当访问Samba服务器时输入的用户名和密码的验证工作由Samba服务器本机系统内账户完成。

security = user 设置安全级别,即客户端访问Samba服务器的验证方式。此部分中只能设置以下三种参数,参数设置:share(不推荐)、user、server(不推荐)。

passdb backend = tdbsam 参数设置:smbpasswd、tdbsam、ldapsam、mysql。默认为tdbsam,一般不用修改,除非想使用老版本Samba服务器的smbpasswd文件方式或其它方式。

encrypt passwords = yes/no 认证密码在传输过程中是否加密。

参数说明:

security = share /user / server /domain /ads

以下三种安全级别用在Standalone Server Options部分,其中user级别也用于Domain Controller Options部分。

(1)share:访问Samba服务器共享资源时不需要输入用户名和密码,属于匿名访问。

(2)user:访问Samba服务器共享资源时需要输入用户名和密码,认证用户来源为Samba服务器本机。

(3)server:访问Samba服务器共享资源时需要输入用户名和密码,认证用户来源为另一台Samba服务器或Windows服务器。

以下两种安全级别用在Domain Members Options部分:

(4)domain:Samba服务器在一个基于Windows NT平台的Windows域中,访问共享资源需要输入用户名和密码,认证用户来源为Windows域。

(5)ads:Samba服务器在一个基于Windows 200X平台的Windows活动目录中,访问共享资源需要输入用户名和密码,认证用户来源为Windows活动目录。

passdb backend = tdbsam /smbpasswd /ldapsam /mysql

(1)tdbsam:该方式使用一个数据库文件来建立用户数据库,数据库文件名为passdb.tdb。可以使用#smbpasswd -a [用户名]来建立Samba用户。也可以使用pdbedit命令来建立用户。

(2)smbpasswd:该方式使用Samba提供的工具smbpasswd来给系统用户设置一个用于访问Samba服务的密码,客户端就用这个密码访问Samba共享资源。此方式还要使用一个 smb passwd file = /usr/local/samba/etc/smbpasswd(或/etc/samba/smbpasswd) 参数来指定保存用户名和密码的文件,该文件需要手动建立。不推荐使用此方法。

(3)ldapsam:该方式基于LADP的账户管理方式来验证用户,先要建立LDAP服务。

(4)mysql:该方式是将Samba服务器的用户名和密码存储到MySQL数据库中。

pdbedit命令常用参数:

pdbedit –a username:新建Samba账户。
pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv:列出Samba用户列表的详细信息。
pdbedit –c “[D]” –u username:暂停该Samba用户的账号。
pdbedit –c “[]” –u username:恢复该Samba用户的账号。

注意:

Standalone Server Options、Domain Members Options、Domain Controller Options三部分均与Samba的认证方式及工作角色有关,三部分均需要配置合适的security(安全级别,用于配置Samba的认证方式),此三部分为服务器的三种角色。


添加自定义的共享目录:
[yourworkdir]
comment = work Directories -----设置共享的说明信息
browseable = yes -----所有samba用户都可以看到该目录
writable = yes -----用户对共享目录可写
path = /data/yourworkdir-----指定共享目录的路径

三.配置完成后重启smb服务
service smb restart

添加用户,注意这里必须是系统存在的账户,而且密码不能与系统登录密码相同
useradd user
smbpasswd -a user   #设置user用户samba登录密码,输入两次相同即可

下面就是创建文件夹及设置属性
mkdir /data/yourworkdir
chown -R  user  /data/yourworkdir
chmod  -R  750 /data/yourworkdir
测试
找一台内网windows客户端,输入samba服务器的IP如\\10.0.0.126\,再输入用户名密码即可。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
Ubuntu Linux
Linux实践|设置静态 IP 地址
Linux实践|设置静态 IP 地址
13 0
Linux实践|设置静态 IP 地址
|
1月前
|
NoSQL Linux Redis
Linux Redis 服务设置开机自启动
【9月更文挑战第2天】在 Linux 系统中,可使用两种方法设置 Redis 开机自启动:一是通过创建 `redis.service` 文件并利用 systemd 进行管理,包括定义服务参数和启动脚本;二是编辑 `/etc/rc.local` 文件,在其中添加启动命令。推荐使用 systemd 方法,因为它更符合现代 Linux 系统的设计理念。设置完成后,可通过 `sudo systemctl status redis.service` 检查服务状态。
|
12天前
|
Linux Shell
10-8|linux date设置时间
10-8|linux date设置时间
|
14天前
|
Unix Linux Python
Cron定时设置在linux和mac中的使用
文章详细说明了如何在Linux和Mac操作系统中使用Cron进行定时任务的设置,并提供了多个Cron表达式的实例。
26 0
|
2月前
|
关系型数据库 MySQL Linux
在Linux中,新安装mysql后怎样提升mysql的安全级别?
在Linux中,新安装mysql后怎样提升mysql的安全级别?
|
2月前
|
存储 监控 安全
在Linux中,如何进行安全审计?
在Linux中,如何进行安全审计?
|
2月前
|
网络协议 Linux 网络安全
在Linux中,如何配置Samba共享?
在Linux中,如何配置Samba共享?
|
2月前
|
Linux 网络安全
在Linux中,如何设置防火墙规则?
在Linux中,如何设置防火墙规则?
|
1月前
|
Linux
linux内核执行fork时对写时复制的设置
linux内核执行fork时对写时复制的设置
|
2月前
|
安全 Linux 数据安全/隐私保护
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?