《rhce253-Samba服务器及客户端的配置.doc》由会员分享,可在线阅读,更多相关《rhce253-Samba服务器及客户端的配置.doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、今天我们要架设的samba服务器,功能主要就是类unix机器与windows机器的文件共享,也可以是共享打印机,samba软件整合了SMB协议及Netbios协议,使其运行在TCP/IP上 SMB协议:Server Message Block(服务信息块),可看作是局域网上的共享文夹打印机的一种协议。SAMBA服务有两个进程 smbd:SMB服务器 nmbd:netbios名称服务器 玩过windows的应该都知道netbios吧,这个我就不多说了,但是一般linux上面的这个功能都没用,因为netbios不稳定,还不如直接用DNS 下面介绍下SAMBA服务器的特点1、在网络上共享目录,就好像
2、一台文件服务器一样 2、在网络上共享打印机 3、决定共享目录的访问权限,可以让一个人、某些人、组和所有人访问 4、决定打印机的访问权限,可以让一个人、某些人、组和所有人使用 可以看出,安装和配置好了Samba服务器后,Linux就可以使用Windows网络中的文件和打印服务器了。 smb用的脚本文件 /etc/rc.d/init.d/smb所以我们启动samba服务器的时候使用 service smb restartnmbd 使用的端口是 137和138smbd使用的端口是139和445,所以一般禁止samba服务我们控制139和445端口 139端口也是属于netbios ,但是最好禁止的时
3、候把139端口也禁用了 所需的RPM包:samba 图形化软件:samba-swat samba是可以通过图形界面配置的 我们今天只讲修改配置文件配置 但是提示大家注意一点 如果使用图形界面配置,从新启动服务器后,配置文件内被注释的行就会被删除,图形界面配置的软件是这样设计的 配置文件是 /etc/samba/smb.confsamba服务的主配置文件/etc/samba/smb.conf主要由两部分组成 Global Settings 全局参数设置该设置都是与Samba 服务整体运行环境有关的选项,它的设置项目是针对所有共享资源的 Share Definitions 共享目录该设置针对的是共
4、享目录个别的设置,只对当前的共享资源起作用 samba服务器与用户的家目录相关,所以设计到selinux,这个大家要注意下面大家先安装samba服务器 大家打开配置文件吧 vim /etc/samba/smb.conf配置文件有288行,我把重要的给大家说说设置Samba服务器所属的群组名称或Windows的域名 workgroup = MYGROUP server string 是服务器的描述设置可访问Samba 服务器的主机、子网或域 hosts allow = 默认是注释了的,意思是允许所有访问,请大家仔细看这个选项,他的表达方式比较特殊,只需要写出网络位然后以点结束,主机位省略127.
5、0.0.0 只写 127. 192.168.12.0 写成 192.168.12. 切记 还有全局的hosts allow 可以在局部使用,但是hosts deny 参数只能在全局使用设置是否允许打印配置文件中的所有打印机开机时自动加载 。 load printers = yes设置Samba 服务启动时,将自动加载的打印机配置文件 printcap name = /etc/printcap 设置guest 账号名 guest account = pcguest 指定Samba 服务器使用的安全等级 security = user我们今天只介绍share级别和user级别 其他的三个安全级别有
6、兴趣的可以自己去研究下 share就是不用密码访问,user 级别就是使用用户密码验证 使用加密口令 encrypt password = yes/no设置Linux 用户到Windows 的用户映射。 username map=/etc/samba/smbusers全局常用的设置基本就这些,应该可以满足你企业的通常使用 可以把一个linux的sambaID映射成一个虚拟机的用户名,在windows登陆samba服务器使用虚拟机的用户名,这样就提高了服务器的安全性 这个参数默认是没有的,需要自己添加,但是smbusers文件是存在的 下面介绍下共享目录的一些设置,其实这个文件和windows的
7、.ini配置文件写法很象 每一个共享目录都由 目录名 开始,这个目录名字是client看到的名字 comment 是共享目录的描述 path 就是真正的共享目录位置了 public 是否可以匿名访问 writable 可以访问的用户是否有写入权限,要与文件权限配合使用 write list 允许写入权限的用户列表 如果printables = yes 那么这个目录就被认为是一个打印机,所以一般我们设置成 printables = no ,这样能理解吗? 还有一些常用的,但是配置文件没有写入的语句我给大家说说 valid users= 允许访问的用户列表,前提是public设置成no 刚才的wr
8、ite list 要生效的话,writeable 也设置成no 注意valid users = ,users有个s 不要忘记了,少一个字符这句就没有意义了invalid users = 不允许访问的用户,就算你上面允许他了,但是加入这句,这个用户也会被拒绝。一般用在允许所有,而禁止某几个用户的时候使用 create mode = 640 很有用的参数,用户创建的文件默认权限 directory mode = 750 用户常见的目录的默认权限但是这两个参数只在client使用的是图形界面有效果,如果client使用的命令登陆,那么这两句就没有效果了,所以测试的时候注意了,用mount 挂载的测试
9、不出效果最后就是samba 的ID设置 创建samba用户,主要两步 1、useradd redhat 2、smbpasswd -a redhat 1、是在系统建立一个redhat用户,一般我们不设置密码,把shell改成/sbin/nologin 2、是把刚才创建的用户变成samba用户-a 是新建的意思,如果修改密码就不用加-a 记住只有安全级别是user 这里的用户才会生效 下面具体配置samba服务器我们第一个要是实现的功能是共享/public目录让所有人访问,所有人可以写入文件,但是不可以删除或修改其他用户的文件 要求看懂了吗?这就是一个公司的交换文件服务器 1、新建public目录
10、让所有用户有写入权限 2、让用户不能删除其他用户的文件,所以我们要使用一个冒险位3、设置selinux复制29行,然后运行 setsebool -P samba_enable_home_dirs on然后复制39行后面部分,把path修改成我们要改变目录,用来修改上下文 chcon -t samba_share_t /public4、修改配置文件修改安全级别为share修改共享目录描述OK后,重新启动服务器selinux要开启哈,使用setenforce 命令设置,也可以使用 setup命令5、测试smbclient -L 192.168.0.188 密码直接回车这样就能看到我们服务器的相关信
11、息 smbclient命令还可以这样用:smbclient /192.168.0.188/public 这样链接上去就像一个ftp服务器,输入问号,可以查看能使用的命令,和FTP的操作差不多 下面我们来挂载 mkdir /mnt/smb mount -t cifs /192.168.0.188/public /mnt/smb/记住-t cifs 这是samba的文件系统格式这样挂载要跟具体的目录哈,表达方式和windows下很相似,不带参数也可以哈,-t auto 也可以,这个是自动识别的,但是新手,建议多多了解net use r:192.168.0.188#Michael分割线#还有不清楚的
12、可以参考RHEL5企业级Linux服务攻略-第2季 Samba服务全攻略,下次RHCE课程讲解user级别哈#Michael分割线#上季我们介绍了samba服务器的安装,常用配置文件,还有匿名登陆的samba服务器 今天我们主要学习基于用户名的访问控制 其实samba的访问控制参数都不是很多,只要是你灵活运用,把samba自带的访问控制,防火墙,文件权限等等结合使用,就能搭建功能强大的samba服务器 上季已经说了share级别的安全,今天我们就讲user级别了,把我们下面的任务规划一下 1.一个公司要求一个公共的交换文件服务器,都可以访问并写入,但是不可以删除和修改其他用户的文件 2、技术部
13、需要一个文件服务器,用于存放常用的软件工具,所有人都可以访问,但是只有技术部的人可以写入主要就是上面两个功能来开展,我们来分析下 一个samba服务器,要实现上面两个功能 用我们以前学过的知识,你们觉得可以有哪些方案? 用samba服务器实现上面的功能,有两种规划方案 使用域和user级别都可以,但是测试域比较麻烦,还要活动目录,所以我们就使用user级别 有人可能会问为什么不可以使用share级别,如果全局使用share,局部需要用户登陆的话,登陆框是灰色的,不能输入用户名,这个是不是samba服务器设置的一个bug,我也说不清楚,反正我们就尽量不这样设计吧 如果使用user模式,应该需要两
14、个目录,一个是交换目录,一个是技术部的目录,交换目录都可以写入,所以权限要777,但是都可以写入的话,就可以删除别人的文件,所以我们要加个冒险位,限制只有root和文件所有者才能删除,第一个题目完成了 第二个题目就更简单了,所有人可以访问,但是只有技术部的可以写,我们只需要在局部设置write list = jishubu 就可以了,如果想要更安全的话,还可以设置目录权限是775,让目录属于技术部组 下面我们开始测试吧,建立两个目录,一个是exchange,一个是jishubu,都建立在/下吧,然后改变他们的权限 然后添加用户test1 和添加jishubu组,把test1加入到技术部组,最后
15、把/jishubu的所属组改成技术部 我们还要建立一个公共的用户,提供所有用户登陆samba服务器使用 useradd smbtest到这里,我们的工作就算完成了,下面我们就开始配置我们的服务器 请大家打开samba服务器的主配置文件 vim /etc/samba/smb.conf第一步打开selinux,如果你没有打开的话 复制29行的语句,然后在终端里面执行 我们架设服务器的环境是,selinux强制 system-config-selinux修改bool值的 RHEL4的selinux只保护了40多个进程,RHEL5的selinux保护达到了200个进程吧,具体数值记不得了,selinu
16、x都是安装了的 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都
17、是setsebool -P selinux的相关知识,大家看看吧 RHCE考试,要求一般selinux是处于强制状态的workgroup 设置工作组 server string 服务器描述 username map 用户名映射,默认没有,等会我们会讲 interfaces 如果服务器有多块网卡,可以设置你想开放的网卡,一般不管,默认都开放 hosts allow 设置可以访问服务器的网段,注释表示不限制 使用user安全模式security = user 其他的全局配置都不管了,直接跳到最后,开始定义共享目录 exchange的定义exchange 共享目录名字 comment 目录描述 pa
18、th 共享目录的路径public 所有用户可以访问 writeable 所有用户可以写入 printable 不是打印机 write list 在这个位置是没有意义的public和valid users 不能同时使用,这样public没效果 如果writables 和write list同时使用,应该是以writable 起作用,但是最好,避免歧义,我们删除write list字段哈这样第一个目录就OK了 下面写第二个目录的定义在samba服务器里表示一个组可以使用组名 也可以使用 +组名 一个简单samba服务器配置就算完成了,保存退出配置文件 下面我们建立samba用户 建立samba用户
19、的前提是,/etc/passwd文件里要有这个用户名,我们才可以建立成samba用户 我们刚才建立了smbtest和test1两个用户 现在我们把他们建立成samba用户 建立用户的时候要使用 -a 参数,如果改samba用户的密码,就不用加-a参数了下面我们重新启动服务器,开始测试 开始测试我们先使用smbtest用户三个目录都可以看见,smbtest是用户的家目录,这个是自己私有的空间 大家测试下可以进入jishubu和exchange,然后分别往这两个目录写入文件测试成功,下面换test1用户,看能不能在技术部写入文件 删除刚才的用户登陆缓存然后使用test1登陆 jishubu目录可以
20、写入然后我们去删除smbtest用户的文件试试 测试成功 用户写入的文件权限是744 #Michael分割线#我们再讲两个小的应用1、控制用户写入的文件权限为750,也就只有用户自己可以RWX,用户的所有组可以读 2、使用虚拟用户名,提高samba服务器的安全性分析第一个问题,大家觉得怎么实现?第一个问题使用 directory mask = 750 create mask = 750 set GID 组合就可以实现第二个问题就是刚才你们看见的username map = /etc/samba/smbuser 参数我们来实现 提示一下: directory mask 和directory mo
21、de 功能都一样,当然 create 也是directory mask 是控制用户创建的目录权限 create mask 是控制用户创建的文件权限这个参数只在用户是图形界面有效刚才是1777 现在是3777 添加一个set gid 重启下服务好了,我们测试下发现了吗,这个文件的权限和刚才的不一样了,完全是按照我们要求来的 这样就只有自己和所有组可以读取了,其他用户没有任何权限建立目录也一样 我们测试完成第二个功能 加入这样一行参数username map = ,然后保存退出 vim /etc/samba/smbusers左边是真正的用户名字,右边是虚拟的名字,你想怎么写,就怎么写,最好是系统里面没有的用户名字 好了,测试 密码是对应ID的密码 #Michael分割线#