本指南介绍如何在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服务器:)