跳至主要內容

Liunx 服务配置笔记(五)SAMBA 服务安全配置

星火燎原@vxhly大约 5 分钟liunxLiunxServiceSecurityProtocol

前言

本篇是 Liunx 的服务配置笔记系列第五篇, 这一篇将具体介绍 Red Hat Liunx 下 SAMBA 服务的安全配置。所谓 SAMBA 就是建立 Liunx 和 Windows 之间的共享, 使 Windows 能够访问 Liunx 下共享出来的文件。

配置文件的位置

主配置文件: /etc/samba/smb.conf

服务的启动与停止

提示

SAMBA 的服务名并不叫做 samba , 而是 smb
修改配置文件过后一定要重启 smb 服务。

service smb status        # 状态
service smb start         # 启动
service smb stop          # 暂停
service smb restart       # 重启

服务的安装

创建挂载目录

For Example:

mkdir -p /mnt/cdrom

挂在光盘

For Example:

mount /dev/cdrom /mnt/cdrom

安装

For Example:

cd /mnt/cdrom/Server
rpm -ivh perl-Convert-ASN1-0.20-1.1.noarch.rpm
rpm -ivh samba-3.0.33-3.28.el5.i386.rpm
SAMBA 服务安全配置
SAMBA 服务安全配置

安全配置

配置工作组和 NetBIOS 名字

Default Configuration:

workgroup = MYGROUP
;netbios name = MYSERVER

提示

该文件默认配置的工作组是 MYGROUP, 而 Windows 下的工作组默认为 WORKGROUP, Liunx 和 Windows 的工作组一定要一样, 才能访问共享的文件。
该文件默认将 NetBIOS 的名字注释掉了, NetBIOS 名字就是会在 Windows 下的网上邻居能够看到的名字, 注释掉就是会看不到, 建议去掉注释。

SAMBA 服务安全配置
SAMBA 服务安全配置

配置安全级别

Default Configuration:

security = user

默认的配置是 user 模式, 在该模式下, Windows 下访问 SAMBA 需要用户名和密码, 还可以设置的选项还有 share/user/server/domain/ads 。可以根据需求修改此选项。

  • share: 访问 Samba 服务器共享资源时不需要输入用户名和密码, 属于匿名访问。
  • user: 访问 Samba 服务器共享资源时需要输入用户名和密码, 认证用户来源为 Samba 服务器本机。
  • server: 访问 Samba 服务器共享资源时需要输入用户名和密码, 认证用户来源为另一台 Samba 服务器或 Windows 服务器。
  • domain: Samba 服务器在一个基于 Windows NT 平台的 Windows 域中, 访问共享资源需要输入用户名和密码, 认证用户来源为 Windows 域。
  • ads: Samba 服务器在一个基于 Windows 200X 平台的 Windows 活动目录中, 访问共享资源需要输入用户名和密码, 认证用户来源为 Windows 活动目录。

配置认证密码在传输过程中加密

在默认的配置文件中没有此选项, 可以手动添加, 正常情况下是需要开启的。

For Example:

encrypt passwords = yes
SAMBA 服务安全配置
SAMBA 服务安全配置

配置用户密码的存储方式

Default Configuration:

passdb backend = tdbsam

提示

默认的配置为 tdbsam , 配置这个选项就是需要 smbpasswd -a [userName] 来建立 Samba 用户。还可以配置项为 tdbsam/smbpasswd/ldapsam/mysql 。可以根据需求进行修改。

  • tdbsam: 该方式使用一个数据库文件来建立用户数据库, 数据库文件名为 passdb.tdb 。可以使用 smbpasswd -a [用户名] 来建立 Samba 用户。也可以使用 pdbedit 命令来建立用户。
  • smbpasswd: 该方式使用 Samba 提供的工具 smbpasswd 来给系统用户设置一个用于访问 Samba 服务的密码, 客户端就用这个密码访问 Samba 共享资源。此方式还要使用一个 smb passwd file = /usr/local/samba/etc/smbpasswd(或 /etc/samba/smbpasswd) 参数来指定保存用户名和密码的文件, 该文件需要手动建立。不推荐使用此方法。
  • ldapsam: 该方式基于 LADP 的账户管理方式来验证用户, 先要建立 LDAP 服务。
  • mysql: 该方式是将 Samba 服务器的用户名和密码存储到 MySQL 数据库中。
SAMBA 服务安全配置
SAMBA 服务安全配置

设置白名单

Default Configuration:

;hosts allow = 127\. 192.168.12\. 192.168.13.

提示

默认的配置是将白名单进行注释掉的, 这里需要注意的是, 可以配置一个具体的 IP 地址, 也可以配置一个 IP 地址段, 在配置 IP 地址段的时候要注意最后一个 . 不要忘了写。如默认配置中的 127. 就是规定 127.0.0.1 ~ 127.255.255.254 这个 IP 地址段可以进行访问, 具体的 IP 地址不需要最后的 . .

For Example:

SAMBA 服务安全配置
SAMBA 服务安全配置

单目录限定用户访问, 禁止写入文件

For Example:

[test]                    # 共享目录的名字
  comment = test          # 描述信息
  path = /home/test       # 共享目录路径
  browseable = yes        # 是否允许浏览
  writable = no           # 是否允许用户写入或者创建文件
  guest ok = no           # 是否允许 guest 用户访问
  valid users = sx
  # 白名单,指定能够进入此资源目录的特定用户,使用逗号隔开,如果是组的话,使用 @ 指明

另外还可以配置以下参数

  • read only => 设置是否只读, yes/no
  • public => 设置是否让所有可以登录的用户看到这个项目
  • create mode => 指明新建立的文件的属性, 一般是 0755
  • directory mode => 指明新建立的目录的属性, 一般是 0755
SAMBA 服务安全配置
SAMBA 服务安全配置

创建共享目录, 设置权限

For Example:

mkdir /hoem/test
chmod 777 /home/test

注意

共享目录一定要有执行权限, 一般 755 就够了, 这里设置 777 就是权限大一点就是了。

SAMBA 服务安全配置
SAMBA 服务安全配置

添加 SAMBA 用户

For Example:

useradd zc
useradd sx
smbpasswd -a zc
smbpasswd -a sx

注意

这里需要注意的是, 要使用 smbpasswd -a 创建用户, 因为之前设置了用户密码的存储方式为 tdbsam

SAMBA 服务安全配置
SAMBA 服务安全配置

使用 windows 访问

For Example:

SAMBA 服务安全配置
SAMBA 服务安全配置

输入用户名和密码, 就可以愉快的进行测试了, 这里就不多说了。

使用 smbclient 访问

列出共享文件夹

列出某个 IP 地址所提供的共享文件夹

Connect Format:

smbclient -L [ip] -U [userName]%[password]

像 FTP 客户端一样使用 smbclient

提示

执行 smbclient 命令成功后, 进入 smbclient 环境, 出现提示符: smb:\> 这里有许多命令和 ftp 命令相似, 如 cdlcdgetmegtputmput 等。通过这些命令, 我们可以访问远程主机的共享资源。

Connect Format:

smbclient http://[ip]/[shareFolder] -U [username]%[password]
打赏
给作者赏一杯咖啡吧
您的支持将是我继续更新下去的动力
微信微信
支付宝支付宝