实验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