您的位置:首页 > 运维架构 > Linux

RHCE课程-RH253Linux服务器架设笔记三-Samba服务器配置(2) 推荐

2009-03-22 16:39 519 查看
上季我们介绍了samba服务器的安装,常用配置文件,还有匿名登陆的samba服务器
今天我们主要学习基于用户名的访问控制
其实samba的访问控制参数都不是很多,只要是你灵活运用,把samba自带的访问控制,防火墙,文件权限等等结合使用,就能搭建功能强大的samba服务器
上季已经说了share级别的安全,今天我们就讲user级别了,把我们下面的任务规划一下
1.一个公司要求一个公共的交换文件服务器,都可以访问并写入,但是不可以删除和修改其他用户的文件
2、技术部需要一个文件服务器,用于存放常用的软件工具,所有人都可以访问,但是只有技术部的人可以写入
主要就是上面两个功能来开展,我们来分析下
一个samba服务器,要实现上面两个功能
用我们以前学过的知识,你们觉得可以有哪些方案?
用samba服务器实现上面的功能,有两种规划方案
使用域和user级别都可以,但是测试域比较麻烦,还要活动目录,所以我们就使用user级别
有人可能会问为什么不可以使用share级别,如果全局使用share,局部需要用户登陆的话,登陆框是灰色的,不能输入用户名,这个是不是samba服务器设置的一个bug,我也说不清楚,反正我们就尽量不这样设计吧
如果使用user模式,应该需要两个目录,一个是交换目录,一个是技术部的目录,交换目录都可以写入,所以权限要777,但是都可以写入的话,就可以删除别人的文件,所以我们要加个冒险位,限制只有root和文件所有者才能删除,第一个题目完成了
第二个题目就更简单了,所有人可以访问,但是只有技术部的可以写,我们只需要在局部设置write list = @jishubu 就可以了,如果想要更安全的话,还可以设置目录权限是775,让目录属于技术部组
下面我们开始测试吧,建立两个目录,一个是exchange,一个是jishubu,都建立在/下吧,然后改变他们的权限



然后添加用户test1 和添加jishubu组,把test1加入到技术部组,最后把/jishubu的所属组改成技术部



我们还要建立一个公共的用户,提供所有用户登陆samba服务器使用
useradd smbtest



到这里,我们的工作就算完成了,下面我们就开始配置我们的服务器
请大家打开samba服务器的主配置文件
vim /etc/samba/smb.conf
第一步打开selinux,如果你没有打开的话
复制29行的语句,然后在终端里面执行



我们架设服务器的环境是,selinux强制
system-config-selinux修改bool值的
RHEL4的selinux只保护了40多个进程,RHEL5的selinux保护达到了200个进程吧,具体数值记不得了,selinux都是安装了的
setenforce 1,然后getenforce 查看




如果是enforcing 处于强制状态就算打开了
selinux有三种状态



ENFORCING,就是处于保护状态,selinux会禁止危险的动作并记录日志
permissive 是只记录日志
disabled 关闭
用setup设置吧
好了,我们继续,然后设置目录的上下文
复制39行的内容,修改要共享目录的上下文,只复制冒号后面的部分



chcon -t samba_share_t /exchange/
chcon -t samba_share_t /jishubu/




改变上下文都使用使用的chcon -t
设置selinux都是setsebool -P
selinux的相关知识,大家看看吧
RHCE考试,要求一般selinux是处于强制状态的
workgroup 设置工作组
server string 服务器描述
username map 用户名映射,默认没有,等会我们会讲
interfaces 如果服务器有多块网卡,可以设置你想开放的网卡,一般不管,默认都开放
hosts allow 设置可以访问服务器的网段,注释表示不限制



使用user安全模式security = user



其他的全局配置都不管了,直接跳到最后,开始定义共享目录
exchange的定义
[exchange] 共享目录名字
comment 目录描述
path 共享目录的路径
public 所有用户可以访问
writeable 所有用户可以写入
printable 不是打印机
write list 在这个位置是没有意义的



public和valid users 不能同时使用,这样public没效果
如果writables 和write list同时使用,应该是以writable 起作用,但是最好,避免歧义,我们删除write list字段哈~
这样第一个目录就OK了
下面写第二个目录的定义



在samba服务器里表示一个组可以使用@组名 也可以使用 +组名
一个简单samba服务器配置就算完成了,保存退出配置文件
下面我们建立samba用户
建立samba用户的前提是,/etc/passwd文件里要有这个用户名,我们才可以建立成samba用户
我们刚才建立了smbtest和test1两个用户
现在我们把他们建立成samba用户
建立用户的时候要使用 -a 参数,如果改samba用户的密码,就不用加-a参数了



下面我们重新启动服务器,开始测试



开始测试



我们先使用smbtest用户






三个目录都可以看见,smbtest是用户的家目录,这个是自己私有的空间
大家测试下可以进入jishubu和exchange,然后分别往这两个目录写入文件






测试成功,下面换test1用户,看能不能在技术部写入文件
删除刚才的用户登陆缓存



然后使用test1登陆






jishubu目录可以写入



然后我们去删除smbtest用户的文件试试



测试成功



用户写入的文件权限是744
################Michael分割线###################
我们再讲两个小的应用
1、控制用户写入的文件权限为750,也就只有用户自己可以RWX,用户的所有组可以读
2、使用虚拟用户名,提高samba服务器的安全性
分析第一个问题,大家觉得怎么实现?
第一个问题使用
directory mask = 750
create mask = 750
set GID

组合就可以实现
第二个问题就是刚才你们看见的username map = /etc/samba/smbuser 参数
我们来实现



提示一下:
directory mask 和directory mode 功能都一样,当然 create 也是
directory mask 是控制用户创建的目录权限
create mask 是控制用户创建的文件权限
这个参数只在用户是图形界面有效
刚才是1777 现在是3777 添加一个set gid



重启下服务



好了,我们测试下



发现了吗,这个文件的权限和刚才的不一样了,完全是按照我们要求来的



这样就只有自己和所有组可以读取了,其他用户没有任何权限
建立目录也一样






我们测试完成第二个功能
加入这样一行参数username map = ,然后保存退出



vim /etc/samba/smbusers



左边是真正的用户名字,右边是虚拟的名字,你想怎么写,就怎么写,最好是系统里面没有的用户名字



好了,测试
密码是对应ID的密码






####################Michael分割线#######################
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息