实验01:配置Samba共享

 

. 实验目标 

 

    根据公司的信息化建设要求,构建Samba服务器以提供文件资源共享服务。 

 

1.   Samba匿名共享

工作组为Tarena

将目录 /usr/src 共享给所有人

共享名设为 tools

允许所有人访问、无需密码验证

    访问权限为只读

 

2.   Samba用户验证

修改原有的 [tools] 匿名共享设置

不再允许所有人访问

只允许nick读取、tom写入

拒绝其他用户或匿名访问

上传目录的权限为755

上传文件的权限为644

 

3.   Samba账户别名与访问地址控制

把普通帐户nick设置别名为jim

设置只允许192.168.10.20地址访问

 

. 实验前提条件

 

1. 所有实验机在相同网络(vmnet4)

2. DHCP服务器有固定IP

 

. 实验步骤

 

一.Samba匿名共享

 

  实验要求:

 

 工作组为Tarena

将目录 /usr/src 共享给所有人

共享名设为 tools

允许所有人访问、无需密码验证

访问权限为只读

 

(一)IP配置

 

1. 设置ip地址

[root@dhcpser ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes    

HWADDR=00:0c:29:48:71:56  (MAK地址)

IPADDR=192.168.10.253   (ip地址)

NETMASK=255.255.255.0   (子网掩码)

~             

          

2. 设置网关及主机名

[root@dhcpser ~]# vim /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=yes

HOSTNAME=dhcpser.tarena.com  (主机名)

GATEWAY=192.168.10.254    (网关地址)

 

3. 配置搜索域

[root@dhcpser ~]#  vim /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1               localhost.localdomain localhost

::1             localhost6.localdomain6 localhost6

192.168.10.253  dhcpser.tarena.com       dhcpser (搜索域)

 

4. 重启服务

[root@dhcpser ~]# service network restart

[root@dhcpser ~]# chkconfig network on

 

5. 验证 

[root@dhcpser ~]# ifconfig eth0(验证ip地址)

[root@dhcpser ~]# route -n(验证网络)

[root@dhcpser ~]# hostname (验证主机名)

[root@dhcpser ~]# ping dhcpser.tarena.com(验证搜索域)

 

(二)安装软件包

 

     1 检测是否安装samba-client samba samba-common

    [root@dhcpser ~]# rpm -q samba-client samba samba-common

     package samba-client is not installed

     package samba is not installed

     package samba-common is not installed

       放入RHEL5.9 iso镜像

 

2. 建yum库

[root@dhcpser ~]# cd /etc/yum.repos.d/ 

[root@dhcpser yum.repos.d]# cp rhel-debuginfo.repo

 rhel-server.repo

[root@dhcpser yum.repos.d]# vim rhel-server.repo

[rhel-server]

name=Red Hat Enterprise Linux Server

baseurl=file:///misc/cd/Server

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

3. 清yum

root@dhcpser yum.repos.d]# yum clean all

Loaded plugins: product-id, security, subscription-manager

This system is not registered to Red Hat Subscription Management.

You can use subscription-manager to register.

Cleaning up Everything

 

4. 安装

[root@dhcpser yum.repos.d]# yum -y install samba samba-client

 samba-common

 

(三)修改配置文件smb.conf 

 

[root@dhcpser yum.repos.d]# cd

[root@dhcpser ~]# cd /etc/samba/

[root@dhcpser samba]# ls

lmhosts  smb.conf  smbusers

[root@dhcpser samba]# cp smb.conf smb.conf.bak

[root@dhcpser samba]# vim /etc/samba/smb.conf 

...

 74         workgroup = Tarena   //工作组名

 75         server string = Win File Ser  //允许匿名访问共享

...

 89         log file = /var/log/samba/%m.log

...

 91         max log size = 50

...

101         security = share

...

221         load printers = no      //屏蔽共享时看到的打印图标

...

289 [tools]

290         comment = Tools Public  //共享目录的描述

291         path = /usr/src    //指定共享路径

292         public = yes   //所有人都可访问

293         read only = yes      //默认的权限为只读  

 

(四)启动服务

 

[root@dhcpser ~]# testparm 

[root@dhcpser ~]# service smb restart

关闭 SMB 服务:                                            [确定]

关闭 NMB 服务:                                            [确定]

启动 SMB 服务:                                            [确定]

启动 NMB 服务:                                            [确定]

[root@dhcpser ~]# chkconfig smb on

使用netstat 命令可以验证服务进程状态,其中smbd 程序负责监听TCP 协议的139 端口  (SMB 协议)、445端口(CIFS 协议),而nmbd 服务程序负责监听UDP 协议的137-138 端口(NetBIOS协议)。netstat验证操作及输出结果如下所示:

[root@dhcpser ~]# netstat -anptu | grep mbd(查看该端口)

tcp        0      0 0.0.0.0:139                 0.0.0.0:*  

                 LISTEN      8097/smbd           

tcp        0      0 0.0.0.0:445                 0.0.0.0:*  

                 LISTEN      8097/smbd           

udp        0      0 192.168.10.253:137          0.0.0.0:*  

                             8100/nmbd           

udp        0      0 0.0.0.0:137                 0.0.0.0:* 

                              8100/nmbd           

udp        0      0 192.168.10.253:138          0.0.0.0:* 

                              8100/nmbd           

udp        0      0 0.0.0.0:138                 0.0.0.0:* 

                           8100/nmbd    

 

. 结果验证

 

一.客户端检测

 

(一).windows上测试

 

1.)浏览服务器192.168.4.5所提供的共享资源

从桌面双击“计算机”以打开资源管理器,然后在地址栏输入访问Samba服务器的

UNC路径(不含共享名),即可以浏览的方式列出对方提供的共享资源,如图-4所示。

本例中只看到192.168.10.253提供了一个名为“tools”的共享,而另一个名为rhel5lib

的共享却看不到(因为browseable=no,效果就是隐藏了)。

UNC路径 \\192.168.10.253

 

    2 访问192.168.4.5提供的tools匿名共享(正常共享)。

通过浏览看到对方提供的tools共享以后,直接双击tools共享文件夹(或者直接访问共  

享资源的UNC路径:\\192.168.4.5\tools),即可打开此共享资源,查看其中的子目录、

文件等资料

 

 3 访问192.168.4.5提供的rhel5lib匿名共享(隐藏共享)。

由于rhel5lib是隐藏共享,因此通过浏览192.168.4.5主机的方式无法看到此共享资源。

只有在客户机明确知道有这个共享的时候,可通过UNC路径直接访问,例如从资源管

理器直接访问地址:\\192.168.4.5\rhel5lib

 

(二). Linux上检测

 

1. 安装samba-client

[root@localhost yum.repos.d]# yum -y install samba-client

 

2. 查看查询共享列表

[root@localhost ~]# smbclient -L 192.168.10.253   //服务器IP地址

Password:   //直接回车

Domain=[TARENA] OS=[Unix] Server=[Samba 3.0.33-3.39.el5_8]

 

        Sharename       Type      Comment

        ---------       ----      -------

        tools           Disk      Tools Public

        IPC$            IPC       IPC Service (Win File Ser)

Domain=[TARENA] OS=[Unix] Server=[Samba 3.0.33-3.39.el5_8]

 

        Server               Comment

        ---------            -------

        DHCPSER              Win File Ser

 

        Workgroup            Master

        ---------            -------

        TARENA               DHCPSER

 

3. 访问共享目录

[root@localhost ~]# smbclient //192.168.10.253/tools

    Password: 

    Domain=[TARENA] OS=[Unix] Server=[Samba 3.0.33-3.39.el5_8]

    Server not using user level security and no password supplied.

    smb: \> 

 

在“smb:\> ”操作环境中,提供了一个类似于ftp 命令程序的环境,通过特定的命令可  以对共享目录进行列表、上传、下载等操作。例如,使用ls 可以查看资源列表、pwd 查看当前路径、get和mget用来下载文件、put和mput用于上传文件

若要查看所有可用的交互指令,可使用“?”或“help”命令

 

4. mount挂载

[root@localhost ~]# mkdir -p /data/smb  //创建挂载点

[root@localhost ~]# mount -t cifs //192.168.10.253/tools

 /data/smb/    //挂载共享资源

Password:      //直接回车匿名访问

[root@localhost ~]# mount | tail -1  //确认挂载结果

//192.168.10.253/tools on /data/smb type cifs (rw,mand)

 

5. 挂载设置固定到/etc/fstab文件

[root@localhost ~]# vim /etc/fstab

//192.168.10.253/tools   /data/smb    cifs   defaults  0  0

 

注:如果服务器的共享资源比较稳定,可以将挂载设置固定到/etc/fstab文件中,以便每次开机后自动挂载,为了免除密码验证,需要添加“username=guest,password=”的挂载参数

 

6. 测试

[root@localhost ~]# grep smb /etc/fstab

//192.168.10.253/tools   /data/smb    cifs   defaults  0  0

 

二.Samba用户验证

 

  实验要求:

 修改原有的 [tools] 匿名共享设置

不再允许所有人访问

只允许nick读取、tom写入

拒绝其他用户或匿名访问

上传目录的权限为755

上传文件的权限为644

 

(一)服务端

 

     1.新建相应账户与samba密码

[root@dhcpser ~]# useradd nick

[root@dhcpser ~]#  useradd tom

[root@dhcpser ~]# echo "redhat" | passwd --stdin nick

Changing password for user nick.

passwd: all authentication tokens updated successfully.

[root@dhcpser ~]# echo "redhat" | passwd --stdin tom

Changing password for user tom.

passwd: all authentication tokens updated successfully.

[root@dhcpser ~]# pdbedit -a nick

new password:   //为共享用户nick设置口令

retype new password:  //重复输入所设置的口令

Unix username:        nick

NT username:          

Account Flags:        [U          ]

User SID: 

            S-1-5-21-2619881084-3148751359-2625704057-1000

Primary Group SID:

    S-1-5-21-2619881084-3148751359-2625704057-513

Full Name:            

Home Directory:       \\dhcpser\nick

HomeDir Drive:        

Logon Script:         

Profile Path:         \\dhcpser\nick\profile

Domain:               DHCPSER

Account desc:         

Workstations:         

Munged dial:          

Logon time:           0

Logoff time:          never

Kickoff time:         never

Password last set:    一, 15 9月 2014 01:56:49 CST

Password can change:  一, 15 9月 2014 01:56:49 CST

Password must change: never

Last bad password   : 0

Bad password count  : 0

Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

[root@dhcpser ~]# pdbedit -a tom

new password:  //为共享用户tom设置口令

retype new password://重复输入所设置的口令

Unix username:        tom

NT username:          

Account Flags:        [U          ]

User SID:

             S-1-5-21-2619881084-3148751359-2625704057-1001

Primary Group SID:

    S-1-5-21-2619881084-3148751359-2625704057-513

Full Name:            

Home Directory:       \\dhcpser\tom

HomeDir Drive:        

Logon Script:         

Profile Path:         \\dhcpser\tom\profile

Domain:               DHCPSER

Account desc:         

Workstations:         

Munged dial:          

Logon time:           0

Logoff time:          never

Kickoff time:         never

Password last set:    一, 15 9月 2014 01:57:03 CST

Password can change:  一, 15 9月 2014 01:57:03 CST

Password must change: never

Last bad password   : 0

Bad password count  : 0

Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

 

    2. 修改主配置文件

[root@dhcpser ~]# vim /etc/samba/smb.conf 

    ...

101         security = user   //安全等级提高为user

...

289 [tools]

290         comment = Tools Public

291         path = /usr/src

292         public = no     //不再对所有人公开

293         valid users = nick,tom    //合法的共享用户

294         write list = tom    //允许有写入权限的用户

295         read only = yes   

296         directory mask = 0755//所建目录的默认权限

297         create mask = 0644  //所建文件的默认权限

...

 

 

    3. 共享目录的访问权限

 

[root@dhcpser ~]# setfacl -m u:tom:rwx /usr/src/

 

   4. 重启smb服务

[root@dhcpser ~]# service smb restart

关闭 SMB 服务:                                            [确定]

关闭 NMB 服务:                                            [确定]

启动 SMB 服务:                                            [确定]

启动 NMB 服务:                                            [确定]

 

 (二).客户端测试

     1.用户nick可只读访问,而用户tom可写入

[root@localhost ~]# smbclient -U nick //192.168.10.253/tools 

Password: 

Domain=[DHCPSER] OS=[Unix] Server=[Samba 3.0.33-3.39.el5_8]

smb: \> ls

0:40:56 2013

  ..                                  D        0  Wed Jul 10 17:15:29 2013

  kernels                             D        0  Thu Oct  1 22:58:39 2009

  debug                               D        0  Thu Oct  1 22:58:39 2009

  vmware-tools-distrib                D        0  Thu Nov  1 08:28:29 2012

 

                38751 blocks of size 524288. 29243 blocks available

smb: \> 

 

     2.挂载

[root@localhost ~]# mount -o username=nick //192.168.10.10/tools /data/smb

 

三.Samba账户别名与访问地址控制

 

实验要求:

 把普通帐户nick设置别名为jim

  设置只允许192.168.10.20地址访问

 

(一)服务端

 

1. 修改Samba用户别名文件

[root@dhcpser ~]# vim /etc/samba/smbusers

# Unix_name = SMB_name1 SMB_name2 ...

root = administrator admin

nobody = guest pcguest smbguest

nick = jim

 

2、修改主配置文件

...

 76         username map = /etc/samba/smbusers

...

289 [tools]

290         comment = Tools Public

291         path = /usr/src

292         public = no

293         valid users = nick,tom

294         write list = tom

295         read only = yes

296         directory mask = 0755

297         create mask = 0644

298         hosts allow = 192.168.10.200

 

3.重启服务

[root@dhcpser ~]# service smb restart

关闭 SMB 服务:                                            [确定]

关闭 NMB 服务:                                            [确定]

启动 SMB 服务:                                            [确定]

启动 NMB 服务:                                            [确定]

 

. 结论验证

 

客户端

[root@dhcpser ~]#  smbclient  -U  tom  //192.168.10.253/tools

Password: 

Domain=[DHCPSER] OS=[Unix] Server=[Samba 3.0.33-3.39.el5_8]

smb: \> ls