引入:
最近audit别的团队时候发现使用了samba用于跨平台的文件共享,刚好我手里刚申请了一台CentOS机器,所以我就想搭建一个samba服务器玩玩,我看到51cto上已经出了一个专题:
专门讲解samba的有关知识,收益匪浅,掌握基本原理后,小实践了一把,还是很顺利的,20分钟就KO了。
实践:
Part 1: 基本安装
首先还是用yum install来安装samba.
这里会自动解析依赖关系。
一路选择Y,最后samba及其依赖包都被安装了:
现在我们就启动samba:
确认samba服务已经开启:
Part2: 配置samba服务器
vi /etc/samba/smb.conf
首先配置[global]部分,它给出了全局设定
workgroup是配置在某个工作组中,如果局域网访问最好让所有机器在同一个工作组
hosts allow 配置了哪些主机是可以访问这个samba服务器的,因为我只想本地或者局域网访问,而局域网的ip地址前缀都是192.168。
最终配置如下:
下面配置[homes]部分,它主要是对于samba用户通过什么规则,约束来访问自己的主目录
browseable设为yes,writable设为yes 表明登录的samba用户既可以读也可以写自己的主目录
共享打印机服务我们暂时不用所以不配置了。
下面配置[netlogon]部分:
因为默认samba用户只能访问自己目录,为了让多个用户共享访问某个目录,我们配置[public]部分:
下面,我们用testparm命令来测试我们的配置是否正确:
这里出现了 “Loaded services file OK ”字样,说明我们配置完全正确。
我们重启samba让其生效。
Part 3: 关闭CentOS防火墙
当我在我自己desktop(装的windows XP) 尝试去访问samba服务器时候,提示以下问题:
很简单,这个问题我们经常遇到,因为我们拿到的是新装的CentOS系统,而默认防火墙是开着的,所以我们将其关闭即可:
这次可以访问这个机器了,但是提示输入用户/密码:
Part 4: 创建samba账号和密码用于访问:
查看相关文章得知,访问samba服务器的账户必须是一个samba服务器所在的操作系统管理的某账户。为此,添加一个系统账户(假设我们创建名字叫samba):
我们为这个新建的系统账户,将其作为samba服务器账户,为其创建samba密码(假设我们这里设的密码是samba_password):
直到显示"Added user samba"才算成功。
重启samba服务器,再从windows系统登录(samba/samba_password)这台samba服务器,果然成功了:
Part 5: 关闭centos对于安全管理的限制
在我们成功登录到192.168.71.43之后,当我们访问samba目录时候,我们被拒绝了:
这就奇怪了,我们明明在smb.conf中的[homes]模块配置了browsable=yes,还配置了valid user,为什么不让我们访问呢?这个困扰了我一段时间,后来找到原因了,原来centos下面有个selinux模块,它增加了centos的访问安全控制:
此文件中默认的SELINUX被设置为enforcing,表明默认启用安全控制,所以阻止了 windows系统访问这个centos系统的文件资源,我们将其设为disabled来禁用这个安全管理,如下:
保存后重新启动centos系统,再通过windows访问。这次我们终于成功的用samba用户名登录,并且可以访问samba服务器上对应的samba目录(home directory)中的资源了:
总结:
samba服务器的安装配置还是比较简单的,希望这文章对大家有借鉴作用,但是很多复杂功能,我还没涉及,不过51CTO的那个专题的确不错,强力推荐一看。