美文网首页
samba服务配置

samba服务配置

作者: 4a873e424089 | 来源:发表于2018-11-21 20:10 被阅读0次

    samba是一个实现类UNIX操作系统与WINDOWS操作系统之间共享的一种SMB协议的软件。包括的文件共享和打印机共享。

            samba软件主要结构及文件: 

                    /etc/samba/smb.conf                   #samba服务的主要配置文件 

                    /etc/samba/lmhosts                       #samba服务的域名设定,主要设置IP地址对应的域名,类似linux系统的/etc/hosts 

                    /etc/samba/smbusers                    #samba服务设置samba虚拟用户的配置文件 

                    /var/log/samba                         #samab服务存放日志文件 

                    /var/lib/samba/private/{passdb.tdb,secrets.tdb}     #存放samba的用户账号和密码数据库文档 

            Samba安装(yum安装)

    [root@centos7 ~]# yum -y install samba*                    #yum在线安装samba

                    [root@centos7 ~]# rpm -qa | grep samba                    #检查samba安装情况

                        samba-client-3.6.23-41.el6.x86_64

                        samba-winbind-clients-3.6.23-41.el6.x86_64

                        samba-3.6.23-41.el6.x86_64

                        samba4-libs-4.0.0-58.el6.rc4.x86_64

                        samba-common-3.6.23-41.el6.x86_64

                        samba-winbind-3.6.23-41.el6.x86_64 

                    注:Samab服务开启之前需要关闭两个服务,防火墙(如果你熟练使用防火墙可以不关闭,放行smb的端口即可,SAMBA服务TCP端口139,445  UDP端口 137,138);selinux服务

            关闭防火墙: 

                    [root@centos7 ~]# systemctl stop firewalld.service                         #停止防火墙

                    [root@centos7 ~]# systemctl disable firewalld.service                     #禁止firewall开机启动

            关闭selinux:

                    [root@centos7 ~]# vim /etc/selinux/config  #永久关闭selinux

                    set SELINUX=disabled                                   #SELINUX=enforcing改为SELINUX=disabled

                    [root@centos7 ~]# getenforce                      #查看SELinux状态

            注:smb.conf配置文件分为两大类,一个全局配置参数,一个是共享专用配置参数:

            #全局配置参数

                [global]

                workgroup = WORKGROUP        #工作组名称

                server string = Samba Server Version %v    #主机的简要说明

                netbios name = MYSERVER     #主机的netBIOS名称,如果不填写则默认服务器DNS的一部分,workgroup和netbios name名字不要设置成一样 

                interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24      #设置samba服务器监听网卡,可以写网卡名称或IP地址,默认注释

                hosts allow = 127. 192.168.12. 192.168.13.     #设置允许连接到samba服务器的客户端,默认注释

                hosts deny =192.168.12.0/255.255.255.0       #设置不允许连接到samba服务器的客户端,默认注释

                log level =1          #日志文件安全级别,0~10级别,默认0

                log file = /var/log/samba/%m    #产生日志文件的命名,默认以访问者IP地址命名

                max log size = 50     #日志文件最大容量50,默认50,单位为KB,0表示不限制 

                security = share    #设置用户访问samba服务器的验证方式 ,一共四种验证方式。

     1. share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。

                 2. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。

                 3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。

                 4. domain:域安全级别,使用主域控制器(PDC)来完成认证。

                passdb backend = tdbsam     #定义用户后台类型

    1、smbpasswd:使用SMB服务的smbpasswd命令给系统用户设置SMB密码

                    2、tdbsam:创建数据库文件并使用pdbedit建立SMB独立用户,smbpasswd –a username建立samba用户并设置密码,不过建立samba用户必须先建立系统用户,也可以使用pdbedit命令来建立samba用户:

                    pdbedit –a username:新建Samba账户。

                    pdbedit –x username:删除Samba账户。

                    pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。

                    pdbedit –Lv:列出Samba用户列表的详细信息。

    pdbedit –c “[D]” –u username:暂停该Samba用户的账号。

                    pdbedit –c “[]” –u username:恢复该Samba用户的账号。

    3、ldapsam:基于LDAP服务进行账户验证

                  username map = /etc/samba/smbusers   #配合/etc/samba/smbusers文件设置虚拟用户

            #共享文件设置参数

                [share]   #共享专用配置参数

                    comment =  This is share directory      #共享描述

                    path  =  /tmp/share     #共享目录路径

                    browseable  =  yes/no      #设置共享是否可浏览,如果no就表示隐藏,需要通过IP+共享名称进行访问

                    writable  =  yes/no   #设置共享是否具有可写权限

                    read only  =  yes/no   #设置共享是否具有只读权限

                    admin users  =  root  #设置共享的管理员,如果security =share 时,引项无效,多用户中间使用逗号隔开,例如admin users = root,user1,user2

                    valid users  =  username    #设置允许访问共享的用户,例如valid users = user1,user2,@group1,@group2(多用户或组使用逗号隔开,@group表示group用户组)

                    invalid users  =  username     #设置不允许访问共享的用户

                    write list  =  username     #设置在共享具有写入权限的用户,例如例如write list  = user1,user2,@group1,@group2(多用户或组使用逗号隔开,@group表示group用户组)

                    public  =  yes/no     #设置共享是否允许guest账户访问

                    guest  ok  =  yes/no     #功能同public 一样

                    create mask = 0700         #创建的文件权限为700

                    directory mode = 0700        #创建的文件目录为 700  

                一、不需要账号密码访问的共享(security  =  share )

                    [root@centos7 samba]# systemctl start smb.service   #启动samba服务

                    [root@centos7 samba]# ls -ld /tmp/share/       #查看共享文件权限

                    [root@centos7 samba]# chmod 777 /tmp/share/   #分配共享文件最大权限

                    [root@centos7 samba]# testparm     #检查smb.conf配置文件是否有语法错误

                    [root@centos7 samba]# netstat -tlnp | grep mbd      #查看samba端口,TCP端口139,445  UDP端口 137,138

                    [root@centos7 samba]# vim /etc/samba/smb.conf    #设置smb.conf配置文件

                    [global]

                    workgroup = WORKGROUP     #设置主机工作组

                    server string = Samba Server Version %v     #samba服务注释

                    log level = 1    #设置日志文件安全级别为1

                    log file = /var/log/samba/%m      #设置日志文件名称,%m以IP地址为名称

                    max log size = 50     #设置日志文件最大容量50KB,0表示不限制 

                    security = share      #以share验证方式访问

                    passdb backend = tdbsam      #定义用户后台类型 

                    load printers = no       #关闭打印共享功能

                    cups options = raw       #打印机选项 

                    [usershare]

                    comment  =  Home Directories     #共享文件描述

                    path  =  /home/shareuser   #共享路径

                    browseable  =  yes     #共享文件可以浏览

                    writable  =  yes      #共享文件可写

                    ; read only  =  yes    #共享文件可读,不能与writable共用

                    guest ok =  yes    #允许guest用户访问

                    [root@centos7 samba]# systemctl restart smb.service  #重启samba服务

                    注:出现下面提示 WARNING: Ignoring invalid value 'share' for parameter 'security' 

                    解决方法:                

                    samba4较之前的SAMBA 3有一个重大的变化是:security不再支持share,参数需要做调整

                    原来:

                    security=share

                    现在:

                    security=user

                    map to guest =Bad User

                    测试:            

                    Windows系统操作:

                    在win 7系统打开运行输入 \\192.168.42.222访问,不需要输入任何用户和密码 

                    在linux操作需要进行挂载:

                    [root@centos7 ~]# yum -y install samba-client   #在线安装samba-client才能使用smbclient命令

                    [root@centos7 ~]# smbclient -L //192.168.42.222    #查看samba服务器共享目录

                    [root@centos7 ~]# mount -t cifs //192.168.42.222/usershare /mnt/share   #挂载 

                二、需要输入账号和密码访问的共享(security  =  user)

                标注:创建samba用户之前必须先创建系统用户,系统用户和samba用户名一样,但密码可以设置成不一样

                [root@centos7 samba]# useradd test01      #创建系统用户test01

                [root@centos7 samba]# useradd test02      #创建系统用户test02

                [root@centos7 samba]# passwd test01       #设置系统用户test01密码

                [root@centos7 samba]# passwd test01       #设置系统用户test02密码

                [root@centos7 samba]# smbpasswd -a test01    #把系统用户test01添加为samba用户并设置samba用户登录密码

                [root@centos7 samba]# smbpasswd -a test02     #把系统用户test02添加为samba用户并设置samba用户登录密码

                [root@centos7 samba]# pdbedit –L    #查看samba用户

                [root@centos7 samba]# mkdir /home/{smbadmin01,smbuser01}   #home创建两个共享目录

                [root@centos7 samba]# chmod 777 /home/{smbadmin01,smbuser01}   #目录分配最高权限

                [root@centos7 ~]# vim /etc/samba/smb.conf   #设置smb.conf配置文件

                [global]

                workgroup = WORKGROUP                 #设置主机工作组

                server string = Samba Server Version %v      #samba服务注释

                log level = 1         #设置日志文件安全级别为1

                log file = /var/log/samba/%m             #设置日志文件名称,%m以IP地址为名称

                max log size = 50          #设置日志文件最大容量50KB,0表示不限制

                security = user           #以user验证方式访问

                passdb backend = tdbsam            #定义用户后台类型 

                load printers = no          #关闭打印共享功能

                cups options = raw        #打印机选项   贷超APP找上海捌跃网络科技有限公司 17621291122

                [usershare]

                comment  =  Home Directories            #共享文件描述

                path  =  /home/smbuser01              #共享路径

                browseable  =  yes              #共享文件可以浏览

                read only  =  yes             #共享文件可读,不能与writable共用

                valid users  =  test01,test02         #设置允许访问共享用户 

                [adminshare]

                comment  =  Home Directories          #共享文件描述

                path  =  /home/smbadmin01               #共享路径

                browseable  =  yes           #共享文件可以浏览

                writable  =  yes              #共享文件可写

                create  make  =  0664            #设置用户创建文件权限0664

                directory  make  =  0775             #设置用户创建目录权限0775

                write  list   =   test01         #设置允许访问共享具有写入权限的用户 

                [root@centos7 samba]# systemctl restart smb.service         #重启samba服务 

                测试:

                Windows系统操作:

                在win 7系统打开运行输入 \\192.168.42.222访问,输入test01用户和密码 

                在linux操作需要进行挂载:

                [root@centos7 ~]# yum -y install samba-client       #在线安装samba-client才能使用smbclient命令

                [root@centos7 ~]# smbclient -L //192.168.42.222       #查看samba服务器共享目录

                [root@centos7 ~]# mount -t cifs //192.168.42.222/usershare /mnt/share    #挂载 

    三、特殊操作:(samba用户映射,又称作虚拟用户)

          上述操作是创建系统用户再分配对应的samab用户,通过samba用户就能知道你的系统用户,缺乏一定的安全性。不过,samba提供了一种方法,就是把samba用户映射成虚拟用户。比如linux系统创建了一个用户user,samba把user添加为samba用户,samba再把user用户虚拟成user01,user02等用户,一个samba用户可以虚拟成一个或多个虚拟用户。这样就可以保证系统用户安全性。 

                操作跟上述操作一样,只是修改一些地方即可:

                [root@centos7 ~]# vim /etc/samba/smb.conf         #设置smb.conf配置文件

                security = user       #以user验证方式访问

                passdb backend = tdbsam       #定义用户后台类型

                username map = /etc/samba/smbusers     #添加这行配置,开启samba虚拟用户配置功能

                [root@centos7 samba]# vim /etc/samba/smbusers    #添加samba虚拟用户

                # Unix_name = SMB_name1 SMB_name2 ...

                root = administrator admin

                nobody = guest  pcguest  smbguest

                test01 = user01  user02  user03 

                [root@centos7 samba]# systemctl restart smb.service       #重启samba服务 

                测试:

                Windows系统操作:

                在win 7系统打开运行输入 \\192.168.42.222访问,输入user01用户,密码是test01用户密码。

    转自:http://blog.51cto.com/lyz2014/2320042

    相关文章

      网友评论

          本文标题:samba服务配置

          本文链接:https://www.haomeiwen.com/subject/eokhqqtx.html