1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 运维之道 | Samba 文件共享传输服务(匿名用户访问 指定用户访问 共享账号映射访问)

运维之道 | Samba 文件共享传输服务(匿名用户访问 指定用户访问 共享账号映射访问)

时间:2020-02-04 12:09:04

相关推荐

运维之道  |  Samba 文件共享传输服务(匿名用户访问 指定用户访问 共享账号映射访问)

前言

1、Samba 概述

Samba 最先在Linux和Windous两个平台之间架起一座桥梁,正式由于Samba的出现,我们可以在Linux系统和Windows系统之间互相通信,比如拷贝文件、实现不同操作系统之间的资源共享等等,我们可以将其架设成一个功能非常强大的文件共享服务器,也可以将其架设成打印服务器提供本地和远程联机打印。

2、Samba 应用环境
文件和打印机共享:文件和打印机共享是Samba的主要功能,SMB 进程实现资源共享,将文件和打印机发布到网络之中,以供用户可以访问;身份验证和权限设置:smbd服务支持user mode 和domain mode 等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打印机;名称解析:Samaba 通过nmbd 服务可以搭建NBNS(NetBIOS Name Service)服务器,提供名称解析,将计算机的NetBIOS名解析为IP地址;浏览服务:局域网中,Samba 服务器可以成为本地主浏览服务器(LMB),保存可用资源列表,当使用客户端访问Windows网上邻居时,会提供浏览列表,显示共享目录、打印机等资源;

一、Samba 服务器部署

1、samba 服务器安装

[root@localhost ~]# yum install -y samba

2、关闭selinux和防火墙

[root@localhost ~]# systemctl stop firewalld[root@localhost ~]# setenforce 0[root@localhost ~]# getenforce Permissive

3、修改Samba配置文件

[root@localhost ~]# vim /etc/samba/smb.conf# See smb.conf.example for a more detailed config file or# read the smb.conf manpage.# Run 'testparm' to verify the config is correct after# you modified it.[global]///全局配置workgroup = SAMBAsecurity = userpassdb backend = tdbsamprinting = cupsprintcap name = cupsload printers = yescups options = raw[homes]comment = Home Directoriesvalid users = %S, %D%w%Sbrowseable = Noread only = Noinherit acls = Yes[printers]comment = All Printerspath = /var/tmpprintable = Yescreate mask = 0600browseable = No[print$]///共享打印机服务comment = Printer Driverspath = /var/lib/samba/driverswrite list = @printadmin rootforce group = @printadmincreate mask = 0664directory mask = 0775

4、启动samba服务

[root@localhost ~]# systemctl start smb

5、使用Windows客户端访问共享目录

PS:此时没有配置登录用户和密码,尚不能登录

二、企业案例实战

案例一:匿名用户访问

公司现在用一个工作组 VillianTsang,需要部署 samba 服务器作为文件共享服务器,并发布共享目录/share,共享名为public,这个共享目录允许所有公司员工访问
1、创建共享目录,并设置权限

[root@localhost ~]# mkdir /share///创建共享目录[root@localhost ~]# chmod 777 /share///给予/share 777 可读可写可执行权限[root@localhost ~]# touch villian.txt///共享目录写入测试文件

2、修改samba配置文件

[root@localhost ~]# vim /etc/samba/smb.conf[global]///修改全局配置workgroup = VillianTsang///修改工作组map to guest = bad user///支持匿名共享(samba4以上版本)server string = This is VillianTsang directory///修改文件目录描述[public]///在配置文件末尾添加共享目录comment = This is a Shared villiantsang directory///文件目录描述path = /share///共享文件目录绝对路径public = yes///支持匿名访问browsable = yes///可浏览

3、重启samba服务

[root@localhost ~]# systemctl restart smb

4、使用Windows客户端访问共享目录(免密匿名登录)

案例二:指定部门用户访问

创建销售部共享目录。通过用户名和密码共享文件,把/xsb 目录共享出去,只有知道用户名和密码的销售部同事才可以查看这个共享目录,其他部门无法访问

1、修改samba全局配置文件

[global]workgroup = SAMBAsecurity = user///修改为user,需要使用用户名访问passdb backend = smbpasswd///密码文本名smb passwd file = /etc/samba/smbpasswd///密码文本存放位置

2、重启samba服务

[root@localhost ~]# systemctl restart smb

3、查看密码文件是否生成

[root@localhost ~]# ls /etc/samba/lmhosts smb.conf smb.conf.example smbpasswd///smbpassword密码文本自动生成

4、添加销售部用户和组

[root@localhost ~]# groupadd xsb///创建销售部组[root@localhost ~]# useradd -g xsb zhangshan -M -s /sbin/nologin ///创建销售部张三用户 [root@localhost ~]# useradd -g xsb wangwu -M -s /sbin/nologin ///创建销售部王五用户[root@localhost ~]# id wangwu///查看用户的id信息uid=1005(wangwu) gid=1004(xsb) 组=1004(xsb)[root@localhost ~]# id zhangshanuid=1004(zhangshan) gid=1004(xsb) 组=1004(xsb)

5、添加销售部的samba账号
添加用户和密码

[root@localhost ~]# smbpasswd -a zhangshan///将销售部张三用户添加至samba中,并设置密码New SMB password:Retype new SMB password:Added user zhangshan.[root@localhost ~]# smbpasswd -a wangwuNew SMB password:Retype new SMB password:Added user wangwu.

查看密码文本是否生成内容

[root@localhost ~]# cat /etc/samba/smbpasswd zhangshan:1004:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:32ED87BDB5FDC5E9CBA88547376818D4:[U ]:LCT-5E42242C:wangwu:1005:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:32ED87BDB5FDC5E9CBA88547376818D4:[U]:LCT-5E422437:

6、创建销售部共享目录,并设置权限

[root@localhost ~]# mkdir /xsb[root@localhost ~]# chmod 777 /xsb[root@localhost ~]# vim xsb.txthello world

7、修改配置文件,指定共享目录,设置访问权限

[xsb]comment = This is xsb directorypath = /xsbvalid users = @xsb

8、重启samba服务

[root@localhost ~]# systemctl restart smb

9、使用Windows客户端访问共享目录(使用销售部用户+密码访问)

案例三:禁止部门某些用户访问

PS1、隐藏共享目录

browseable = no

这样用户访问共享目录后看不到对目录,需要写入目录的绝对URL进行访问

PS2、控制访问源

hosts allow = 192.168.182.:允许192.168.182.0/24这个网段的IP访问

hosts deny = 192.168.182.12:禁止192.168.182.12这个IP访问

hosts allow 字段定义允许访问的客户端(同时设置的时候,允许级别高于禁止级别)hosts deny 字段定义禁止访问的客户端EXCPT + IP (除了某IP,常用策略)

例:同案例二方案,同时设置禁止192.168.1.0/24网段的IP访问

1、修改samba全局配置文件

[xsb]comment = This is xsb directorypath = /xsbvalid users = @xsbwritable = yes///允许写入write list = zhangshan ///写入权限用户 hosts deny = 192.168.182.///禁止网段192.168.182.用户访问browseable = no///隐藏共享目录,需要输入绝对路径才能访问

2、重启samba服务

[root@localhost ~]# systemctl restart smb

3、使用Windows客户端访问共享目录

三、账号映射

samba的用户账号信息是保存在smbpasswd文件中,而且可以访问samba服务器的账号也必须对应一个同名的系统账号。基于这一点,对于黑客而言,只要知道samba服务器的账号,就等于知道了Linux系统账号,只要破解其samba账号密码加以利用就可以攻击samba服务器。基于这样一点,我们可以利用用户账号映射功能来解决。

1、修改samba全局配置文件

[root@localhost ~]# vim /etc/samba/smb.confusername map = /etc/samba/smbusers///在全局配置中加入这一行

2、配置samba共享配置文件

[root@localhost ~]# vim /etc/samba/smb.conf[xsb]comment = This is xsb directorypath = /xsb///共享目录valid users = @xsb///允许用户(销售部)writable = yes///允许写入信息write list = @xsb///写入用户清单(同上)public = no///否公开共享目录

3、创建smbusers文本

[root@localhost ~]# vim /etc/samba/smbusersvillian = zhangshan lisi wangwu zhaoliu///将villian用户的账号映射给张三、李四、王五、赵六

4、创建villian用户账号,给予映射

[root@localhost ~]# smbpasswd -a villianNew SMB password:Retype new SMB password:

5、重启samba服务

[root@localhost ~]# systemctl restart smb

6、使用Windows客户端访问共享目录

拓展1:pdbedit 命令说明

pdbedit命令用于管理Samba服务的帐户信息数据库,格式为:"pdbedit [选项] 帐户"

第一次把用户信息写入到数据库时需要使用-a参数,以后修改用户密码、删除用户等等操作就不再需要了。

pdbedit -L :查看samba用户pdbedit -a -u user:添加samba用户pdbedit -r -u user:修改samba用户信息pdbedit -x -u user:删除samba用户samba服务数据库的密码也可以用 smbpasswd 命令 操作smbpasswd -a user:添加一个samba用户smbpasswd -d user:禁用一个samba用户smbpasswd -e user:恢复一个samba用户smbpasswd -x user:删除一个samba用户

拓展2:清除登录缓存信息

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。