在CentOS 7上安装和配置Samba服务器

本指南介绍如何在CentOS 7上使用匿名和安全的samba服务器配置samba服务器。 Samba是一个开源/自由软件套件

本指南介绍如何在CentOS 7中使用匿名和安全的samba服务器配置samba服务器。 Samba是一个开源/免费软件套件,可为SMB / CIFS客户端提供无缝文件和打印服务。 与其他SMB / CIFS实现不同,Samba可以免费使用,并允许Linux / Unix服务器和基于Windows的客户端之间的互操作性。

1初步说明

我有一个新安装的CentOS 7.0服务器,我将在其上安装samba服务器。 当然,您需要有一台Windows机器来检查必须使用CentOS 7.0服务器可以访问的samba服务器。 我的Centos 7.0服务器的主机名为server1.example.com &IP为192.168.0.100

注意:

  • Windows机器必须在同一个工作组上。 要检查Windows机器中的值,请在cmd提示符下运行命令

net config workstation

会是这样的



您的Windows机器必须与CentOS 7.0服务器相同的Workstation域,即在我的情况下为WORKGROUP

  • 要使Windows机器在Windows中可以进行如此进行。 在运行终端并添加您的服务器IP地址的条目

notepad C:\Windows\System32\drivers\etc\hosts

在我的情况下,就是这样,只是保存值。

[...]
192.168.0.100 server1.example.com centos

2匿名Samba分享

首先,我将解释安装Samba与匿名分享的方法。 要安装samba run,

yum install samba samba-client samba-common

它将安装samba与版本4.1.1。

现在要在进行更改之前配置samba编辑文件/etc/samba/smb.conf ,我将把原始文件备份为 /etc/samba/smb.conf.bak

mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

进一步给出这样的条目

vi /etc/samba/smb.conf

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos
security = user
map to guest = bad user
dns proxy = no
#============================ Share Definitions ============================== 
[Anonymous]
path = /samba/anonymous
browsable =yes
writable = yes
guest ok = yes
read only = no

mkdir -p /samba/anonymous
systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service

进一步的CentOS 7.0 Firewall-cmd将阻止samba访问,以摆脱我们将运行:

firewall-cmd --permanent --zone=public --add-service=samba

[root@server1 ~]# firewall-cmd --permanent --zone=public --add-service=samba
success
[root@server1 ~]#

firewall-cmd --reload

[root@server1 ~]# firewall-cmd --reload
success
[root@server1 ~]#

现在您可以访问Windows中的Centos 7.0共享,如下所示,转到运行提示并键入\\ centos

\\centos

从Windows机器只是浏览文件夹,并尝试创建一个文本文件,但你会得到一个权限被拒绝的错误。



检查共享文件夹的权限。

ls -l

drwxr-xr-x. 2 root root 6 Jul 17 13:41 anonymous
[root@server1 samba]#

允许匿名用户授予权限如下:

cd /samba

chmod -R 0755 anonymous/
chown -R nobody:nobody anonymous/

ls -l anonymous/

total 0
drwxr-xr-x. 2 nobody nobody 6 Jul 17 13:41 anonymous
[root@server1 samba]#

此外,我们需要允许SELinux进行samba配置,如下所示:

chcon -t samba_share_t anonymous/

现在匿名用户可以浏览并创建文件夹内容。

您也可以在服务器上检查内容。

ls -l anonymous/

total 0
-rwxr--r--. 1 nobody nobody 0 Jul 17 16:05 anonymous.txt
[root@server1 samba]#

3.安全的Samba服务器

因此,我将创建一个组smbgrp &user srijan以正确的身份验证访问samba服务器。

groupadd smbgrp

useradd srijan -G smbgrp

smbpasswd -a srijan

[root@server1 samba]# smbpasswd -a srijan
New SMB password:<--yoursambapassword
Retype new SMB password:<--yoursambapassword
Added user srijan.
[root@server1 samba]# 
    

现在创建一个名称保护/ samba文件夹中的文件夹,并提供如下权限:

mkdir -p /samba/secured

再次,我们必须允许通过SELinux来聆听:

cd /samba
chmod -R 0777 secured/
chcon -t samba_share_t secured/

再次将配置文件编辑为:

vi /etc/samba/smb.conf

[...]
[secured] path = /samba/secured valid users = @smbgrp guest ok = no writable = yes browsable = yes

systemctl restart smb.service

systemctl restart nmb.service

进一步检查设置如下

testparm

[root@server1 samba]# testparm 
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[Anonymous]"
Processing section "[secured]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions <--ENTER

[global]
	netbios name = CENTOS
	server string = Samba Server %v
	map to guest = Bad User
	dns proxy = No
	idmap config * : backend = tdb

[Anonymous]
	path = /samba/anonymous
	read only = No
	guest ok = Yes

[secured]
	path = /samba/secured
	valid users = @smbgrp
	read only = No
[root@server1 samba]# 

现在在Windows机器上检查文件夹现在具有正确的凭据



你会再次面临权限的问题给用户srijan的写权限:

cd /samba
chown -R srijan:smbgrp secured/


现在samba用户有权写入文件夹。 干杯,你在CentOS 7.0中做了samba服务器:)