在CentOS 7上构建RAID5、LVM和SAMBA服务器(5)——架设SAMBA服务器
6. 架设SAMBA服务器
6.1. 预备
本节的任务是配置SAMBA服务,共享/home/shared目录,使指定的Windows用户可以远程访问该共享。
首先要在CentOS上运行yum命令安装SAMBA服务:
yum install samba
安装之后,执行systemctl命令来启动smb和nmb两个samba的守护进程。
图37 启动SAMBA
6.2. 修改smb.conf文件
修改/etc/smb.conf文件,包括:
- 修改hosts allow属性,设置可访问的远程计算机的IP地址段。本例是允许本机、192.168.0网段(物理网络IP网段)、192.168.40网段(虚拟机网段):
hosts allow = 127. 192.168.0. 192.168.40.
- 修改SAMBA服务器的NETBIOS名,设置为MYSMBSVR:
netbios name = MYSMBSVR
- 修改共享工作组名,设置为WORKGROUP:
workgroup = WORKGROUP
- 由于本例的SAMBA服务器是作为独立服务器运行,因此设置security属性为user,使用用户身份认证:
security = user passdb backend = tdbsam
- 添加允许访问SAMBA服务的用户
pdbedit –a kingfox
图38 添加SAMBA用户
注意:pdbedit添加的用户必须是系统中已经存在的用户,否则系统会拒绝添加该用户:
图39 添加SAMBA用户失败
- 在/home目录下创建可被共享的目录,命名为shared,然后修改/etc/samba/smb.conf中的[public]节,取消这一节的所有注释,设置path属性的值为/home/shared。
- smb.conf的配置如下所示:
图40 smb.conf主要设定
- 保存smb.conf。接下来可以用testparm命令检查刚才的设置是否有误:
图41 用testparm检验cmb.conf
6.3. 调整防火墙
开放防火墙中的samba、samba-client相关服务和端口:
图42 设定防火墙
亦可用命令:
firewall-cmd --permanent --zone=public --add-service=samba
和
firewall-cmd --reload
完成对防火墙的调整。第一个命令将samba服务加入到防火墙public区的永久生效策略中,第二个命令是重新加载防火墙策略,以使第一条命令生效。
至此,samba服务已完成设定,用systemctl restart smb命令重启smb和nmb服务即可。
6.4. 配置SAMBA服务为自动启动
systemctl enable smb nmb
图43 配置SAMBA服务为自动启动
至此,SAMBA服务配置完毕。
6.5. 调整SELinux策略
如果不关闭SELinux,则客户端能浏览到共享文件夹,但无法对其进行写操作。使用命令setenforce permissive关闭SELinux。这个命令执行之后,在遇到可以行为时,SELinux会发出一系列警告,但不会真正按照策略去阻止。
但是setenforce命令只能临时有效,系统重启之后,SELinux会被自动开启。为了永久关闭SELinnux,需要编辑/etc/selinux/config文件,内容修改如下:
图44 关闭SELinux
但是关闭SELinux会导致安全性降低,并不是可取的办法,应该通过调整各种策略来实现使SELinux放行访问SAMBA的行为。
现在恢复SELinux的原始设置,然后执行命令:
chcon -t samba_share_t shared/ -R
chcon命令用于改变文件或目录的SELinux安全标签,在执行这个命令之前,/home/shared目录的安全标签是root_t(这是root用户创建的),执行这个命令之后,用ls –Zd shared命令可以看到,/home/shared目录的SELinux安全标签变成了samba_share_t,这样就既确保了系统的安全,亦开放了SAMBA的访问通道。
如果执行setsebool -Psamba_enable_home_dirs on命令,还将打开用户的home目录的访问权限。
6.6. 测试samba服务
首先向/home/shared目录下复制一些文件。
1)在linux环境下测试:
在终端中执行命令:
smbclient //localhost/public –U kingfox
输入kingfox用户的密码之后,过几秒钟,正常情况下,会出现smb:\>提示符,说明SAMBA服务已经可以被连接上。
在smb:\>提示符下执行ls命令,可以看到列出了/home/shared目录下的文件清单:
图45 连接SAMBA
这个测试既可以在SAMBA服务器本机执行,亦可以在另一台Linux终端上执行,效果是一样的。
2)在Windows环境下测试:
在资源管理器中打开“网上邻居”,耐心等几秒钟,会发现网上邻居或“网络”文件夹里出现前面设定的SAMBA服务器名称MYSMBSVR:
图46 Windows 7的“网络”文件夹
双击MYSMBSVR后可看到里面的共享文件夹:
图47 浏览共享文件夹
双击public目录可看到其中的文件,并对文件进行读写操作。由于刚才是用kingfox用户登录的,所以还能访问kingfox在CentOS虚拟机上的home目录的内容。