一、实验目的
1、了解FTP和SMB;
2、掌握通过vsftpd发布访问FTP服务;
3、掌握使用Samba实现面向全终端的文件共享服务。
二、实验学时
2学时
三、实验类型
综合性
四、实验需求
1、硬件
每人配备计算机1台。
2、软件
安装Edge、Firefox、Chrome等最新版本浏览器,安装Mobaxterm软件。
3、网络
本地主机能够访问教学云计算平台,虚拟机按照配置指南配置网络。
4、工具
无。
五、实验任务
1、完成vsftpd的在线安装与配置;
2、完成vsftpd服务的管理;
3、完成通过vsftpd发布访问FTP服务;
4、完成Samba的安装;
5、完成全终端的文件共享服务。
六、实验环境
1、本实验需要VM 2台。
2、本实验VM配置信息如下表所示。
注意:虚拟机名称、主机名称均需要参考实验课提供的配置指南进行配置。
3、本实验拓扑图。
无
4、本实验操作演示视频。
本实验操作演示视频为视频集的第6集:www.bilibili.com/video/BV1iH…
七、实验内容及步骤
1、实现面向互联网的FTP文件服务
1.1 场景描述
创建一个允许用户通过互联网连接的文件共享服务器,并进行文件的上传和下载操作。
1.2 需求描述
(1)支持用户通过互联网进行远程连接。
(2)允许用户进行文件的上传和下载操作。
1.3 解决方案
(1)使用专业的FTP服务器软件vsftpd。
(2)在服务器上配置防火墙,开启FTP服务所需的端口。
(3)配置匿名访问选项,允许匿名用户访问。
1.4 具体步骤
(1)使用yum install命令在线安装vsftpd服务。
# 在线安装vsftpd服务
[root@Lab-06-Task-01 ~]# yum install -y vsftpd
(2)使用systemctl命令启动vsftpd服务,设置为开机自启动并查看服务状态。
# 启动vsftpd服务
[root@Lab-06-Task-01 ~]# systemctl start vsftpd
# 设置vsftpd服务为开机自启动
[root@Lab-06-Task-01 ~]# systemctl enable vsftpd
# 查看vsftpd服务状态
[root@Lab-06-Task-01 ~]# systemctl status vsftpd
(3)使用firewall-cmd命令添加防火墙规则,允许所有客户端可以访问ftp服务,重新载入防火墙规则使其生效,并将SELinux设置为permissive模式。
# 允许所有客户端可以访问ftp服务
[root@Lab-06-Task-01 ~]# firewall-cmd --zone=public --add-service=ftp --permanent
# 重新载入防火墙规则使其生效
[root@Lab-06-Task-01 ~]# firewall-cmd --reload
# 将SELinux设置为permissive模式
[root@Lab-06-Task-02 ~]# setenforce 0
(4)使用mkdir创建共享目录/var/ftp/share,设置目录权限为777,并修改目录的所有者和所属组为ftp。
# 创建共享目录,设置目录权限为777,并修改目录的所有者和所属组为ftp并设置用户密码
[root@Lab-06-Task-02 ~]# mkdir -p /var/ftp/share
[root@Lab-06-Task-02 ~]# chmod 777 -R /var/ftp/share
[root@Lab-06-Task-02 ~]# chown ftp:ftp /var/ftp/share
[root@Lab-06-Task-02 ~]# passwd ftp
(5)使用cp命令备份vsftpd服务的配置文件vsftpd.conf。
# 备份vsftpd服务的配置文件vsftpd.conf
[root@Lab-06-Task-01 ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak1
(6)使用vi命令修改vsftpd.conf配置文件发布FTP服务。
# 修改vsftpd.conf配置文件发布FTP服务
[root@Lab-06-Task-01 ~]# vi /etc/vsftpd/vsftpd.conf
# --------------------vsftpd.conf文件--------------------
# 允许匿名用户登录
anonymous_enable=YES
# 允许所有登录拥有写权限
write_enable=YES
# 允许匿名用户上传文件
anon_upload_enable=YES
# 允许匿名用户创建目录
anon_mkdir_write_enable=YES
# 允许匿名用户删除、重命名等
anon_other_write_enable=YES
# 权限掩码,匿名用户上传文档时预设的权限掩码
local_umask=022
# --------------------vsftpd.conf文件--------------------
(7)使用systemctl restart命令重启vsftpd服务使其配置生效。
# 重启vsftpd服务使配置生效
[root@Lab-06-Task-01 ~]# systemctl restart vsftpd
1.5 服务测试
1.5.1 安装FTP客户端FileZilla
(1)从FileZilla的官方网站(www.filezilla.cn)获取FTP客户端可执行程序进行安装。
(2)安装完成后,启动FileZilla客户端,在左上角的“主机”输入框中输入“172.31.0.161”,用户名密码留空,端口默认,点击“快速连接”,如图6-1所示。
1.5.2 上传文件测试
(1)在Window本地客户端创建名为“upload.txt”的文件。
(2)在FTP客户端将“upload.txt”文件上传到FTP服务器的/share目录下,如图6-2所示。
1.5.3下载文件测试
(1)使用ssh远程终端进入到FTP服务器的/var/ftp/pub目录下,创建“download.txt”文件。
# 进入到FTP服务器的/var/ftp/pub目录下
[root@Lab-06-Task-01 ~]# cd /var/ftp/pub
# 创建“download.txt”文件
[root@Lab-06-Task-01 pub]# touch download.txt
(2)在FTP客户端,将FTP服务/pub目录下的“download.txt”文件下载到Windows本地客户端,如图6-3所示。
1.5.4 创建、删除和重命名文件测试
(1)在FTP服务/share目录下创建“file1”文件,创建“dir1”目录。
(2)使用FTP客户端删除FTP服务/share目录下的“file1”文件,将“dir1”目录重命名为“dir2”,如图6-4、6-5所示。
2、实现团队内部的SMB文件共享服务
2.1 场景描述
某团队为提高信息化应用水平,提高数据共享和资源服务水平,现需要构建内部网络存储,并能够全面支持移动终端等智能设备,实现灵活的资源共享。
2.2 需求描述
(1)建设内部文件共享服务;
(2)支持全终端智能设备。
2.3 解决方案
(1)通过Samba建设网络存储服务;
(2)仅允许团队内部网络访问;
(3)支持多操作系统、支持多终端。
2.4 具体步骤
(1)使用yum install命令在线安装Samba软件。
# 在线安装Samba服务
[root@Lab-06-Task-02 ~]# yum install -y samba samba-client
(2)使用systemctl启动Samba服务,设置为开机自启动,并查看服务状态。
# 在线安装Samba服务
[root@Lab-06-Task-02 ~]# yum install -y samba samba-client
# 启动Samba服务
[root@Lab-06-Task-02 ~]# systemctl start smb nmb
# 设置Samba服务为开机自启动
[root@Lab-06-Task-02 ~]# systemctl enable smb nmb
# 查看Samba服务状态
[root@Lab-06-Task-02 ~]# systemctl status smb nmb
(3)使用firewall-cmd命令添加防火墙规则,允许所有客户端可以访问Samba服务,并重新载入防火墙规则使其生效,并将SELinux设置为permissive模式。
# 允许所有客户端可以访问Samba服务
[root@Lab-06-Task-02 ~]# firewall-cmd --zone=public --add-service=samba --permanent
# 重新载入防火墙规则使其生效
[root@Lab-06-Task-02 ~]# firewall-cmd --reload
# 将SELinux设置为permissive模式
[root@Lab-06-Task-02 ~]# setenforce 0
(4)使用mkdir命令创建文件共享目录/srv/smbfile/smbshare、/srv/smbfile/smbwork和/srv/smbfile/smbpublic,并分别设置目录权限为777。
# 创建共享服务目录,并设置目录权限为777
[root@Lab-06-Task-02 ~]# mkdir -p /srv/smbfile/smbshare
[root@Lab-06-Task-02 ~]# mkdir -p /srv/smbfile/smbwork
[root@Lab-06-Task-02 ~]# mkdir -p /srv/smbfile/smbpublic
[root@Lab-06-Task-02 ~]# chmod 777 -R /srv/smbfile/smbshare
[root@Lab-06-Task-02 ~]# chmod 777 -R /srv/smbfile/smbwork
[root@Lab-06-Task-02 ~]# chmod 777 -R /srv/smbfile/smbpublic
(5)使用useradd命令创建用户smbshareuser和smbworkuser,并使用smbpasswd命令分别设置用户smbshareuser和smbworkuser的密码为smbshareuser@pwd、smbworkuser@pwd。
# 创建用户smbshareuser、smbworkuser
# 设置smbshareuser用户密码为smbshareuser@pwd,设置smbworkuser用户密码为smbworkuser@pwd
[root@Lab-06-Task-02 ~]# useradd smbshareuser -s /sbin/nologin
[root@Lab-06-Task-02 ~]# useradd smbworkuser -s /sbin/nologin
[root@Lab-06-Task-02 ~]# smbpasswd -a smbshareuser
[root@Lab-06-Task-02 ~]# smbpasswd -a smbworkuser
(6)使用cp命令备份Samba服务配置文件,并使用vi命令修改Samba服务配置文件,修改完成后使用systemctl reload命令重新载入配置文件使其生效。
# 备份Samba服务配置文件smb.conf
[root@Lab-06-Task-02 ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak1
# 修改Samba服务配置文件
[root@Lab-06-Task-02 ~]# vi /etc/samba/smb.conf
# --------------------smb.conf文件--------------------
[global]
workgroup = Lab06
server string = Welcome to samba server version %v
netbios name = Lab06
# 日志文件的存储位置以及日志文件名称
log file = /var/log/samba/samba-log.%m
# 日志文件的最大容量
max log size = 10240
security = user
interfaces = ens33
# 用户后台类型
passdb backend = tdbsam
# 限制访问范围
hosts allow = 172.31.0.0/24
# 限制最大连接数10
max connections = 10
[smbpublic]
comment = workgroup public share disk
path = /srv/smbfile/smbpublic
# 该共享的管理者
admin users = smbworkuser
public = yes
browseable = yes
readonly = yes
guest ok = yes
[smbshare]
comment = workgroup open share disk
path = /srv/smbfile/smbshare
admin users = smbshareuser
public = no
browseable = yes
# 允许访问该共享的用户
valid users = smbshareuser,smbworkuser
readonly = no
writable = yes
# 允许写入该共享的用户
write list = smbshareuser,smbworkuser
# 新建文件的掩码
create mask = 0777
# 新建目录的掩码
directory mask = 0777
# 强制创建文件权限
force directory mode = 0777
# 强制创建目录权限
force create mode = 0777
[smbwork]
comment = workgroup work share disk
path = /srv/smbfile/smbwork
admin users = smbworkuser
public = no
browseable = yes
valid users = smbshareuser,smbworkuser
readonly = no
read list = smbshareuser
writable = yes
write list = smbworkuser
create mask = 0777
directory mask = 0777
force directory mode = 0777
force create mode = 0777
# --------------------smb.conf文件--------------------
# 重新载入配置文件使其生效
[root@Lab-06-Task-02 ~]# systemctl reload smb nmb
2.5 服务测试
在主机Lab-06-Task-02上(Samba服务器端)分别在/srv/smbfile/smbpublic、/srv/smbfile/smbshare、/srv/smbfile/smbwork目录下创建samba.txt文件,并编辑文件内容“Samba Server.”。
# 创建文件并写入内容“Samba Server.”
[root@Lab-06-Task-01 ~]# echo "Samba Server." > /srv/smbfile/smbpublic/samba.txt
[root@Lab-06-Task-01 ~]# echo "Samba Server." > /srv/smbfile/smbshare/samba.txt
[root@Lab-06-Task-01 ~]# echo "Samba Server." > /srv/smbfile/smbwork/samba.txt
在Linux上进行测试,以openEuler为例,访问文件共享服务。
(1)在测试主机Lab-06-Task-01上创建资源目录。
# 创建资源目录
[root@Lab-06-Task-01 ~]# mkdir -p /srv/smbshare
[root@Lab-06-Task-01 ~]# mkdir -p /srv/smbwork
[root@Lab-06-Task-01 ~]# mkdir -p /srv/smbpublic
(2)挂载Samba服务的共享目录到创建的资源目录。
# 挂载共享目录
[root@Lab-06-Task-01 smbshare]# mount -t cifs -o username=smbshareuser,password='smbshareuser@pwd' //172.31.0.162/smbshare /srv/smbshare
[root@Lab-06-Task-01 smbshare]# mount -t cifs -o username=smbworkuser,password='smbworkuser@pwd' //172.31.0.162/smbwork /srv/smbwork
[root@Lab-06-Task-01 smbshare]# mount -t cifs -o username=smbshareuser,password='smbshareuser@pwd' //172.31.0.162/smbpublic /srv/smbpublic
(3)查看资源目录中的文件内容。
# 查看文件
[root@Lab-06-Task-01 ~]# cat /srv/smbpublic/samba.txt
Samba Server.
[root@Lab-06-Task-01 ~]# cat /srv/smbshare/samba.txt
Samba Server.
[root@Lab-06-Task-01 ~]# cat /srv/smbwork/samba.txt
Samba Server.
八、实验考核
实验考核分为【实验智能考】和【实验线上考】两个部分。
实验智能考:通过AI智能体、实验操作日志智能分析等措施,由AI智能对实验学习过程进行综合评分。
实验线上考:每个实验设置10道客观题。通过线上考核平台(如课堂派)进行作答。
实验智能考的成绩占本实验成绩的30%,实验线上考的成绩占本实验成绩的70%。
1、实验智能考
实验4-6为openEuler的服务器部署,学生通过教学云计算平台的统一运维平台和堡垒机,在提供的云计算平台上进行实验,并提交最终实验成果的URL地址,通过AI和大数据技术对学生操作命令进行实验过程和成果的综合考核,最终由人工智能评定最终成绩。
2、实验线上考
本实验线上考共10题,其中单选5题、多选1题、判断2题、填空2题。