openEuler-实验06:实现文件服务
棒棒堂智能运维
编辑于 2024年07月26日 19:38
收录于文集
共9篇

一、实验目的

1、了解FTP和SMB;

2、掌握通过vsftpd发布访问FTP服务;

3、掌握使用Samba实现面向全终端的文件共享服务。

二、实验学时

2学时

三、实验类型

综合性

四、实验需求

1、硬件

每人配备计算机1台。

2、软件

安装VMware WorkStation Pro或Oracle VM VirtualBox软件,安装Mobaxterm软件。

3、网络

本地主机与虚拟机能够访问互联网,虚拟机网络不使用DHCP服务。

4、工具

无。

五、实验任务

1、完成vsftpd的在线安装与配置;

2、完成vsftpd服务的管理;

3、完成通过vsftpd发布访问FTP服务;

4、完成Samba的安装;

5、完成全终端的文件共享服务。

六、实验环境

1、本实验需要VM 2台。

2、本实验VM配置信息如下表所示。

3、本实验拓扑图。

4、本实验操作演示视频。

本实验操作演示视频为视频集的第6集:网页链接​

七、实验内容及步骤

1、实现面向互联网的FTP文件服务

1.1 场景描述

创建一个允许用户通过互联网连接的文件共享服务器,并进行文件的上传和下载操作。

1.2 需求描述

(1)支持用户通过互联网进行远程连接。

(2)允许用户进行文件的上传和下载操作。

1.3 解决方案

(1)使用专业的FTP服务器软件vsftpd。

(2)在服务器上配置防火墙,开启FTP服务所需的端口。

(3)配置匿名访问选项,允许匿名用户访问。

1.4 具体步骤

(1)使用yum install命令在线安装vsftpd服务。

代码块
JavaScript
自动换行
复制代码
# 在线安装vsftpd服务
[root@Lab-06-Task-01 ~]# yum install -y vsftpd
复制成功

(2)使用systemctl命令启动vsftpd服务,设置为开机自启动并查看服务状态。

代码块
JavaScript
自动换行
复制代码
# 启动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模式。

代码块
JavaScript
自动换行
复制代码
# 允许所有客户端可以访问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。

代码块
JavaScript
自动换行
复制代码
# 创建共享目录,设置目录权限为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。

代码块
JavaScript
自动换行
复制代码
# 备份vsftpd服务的配置文件vsftpd.conf
[root@Lab-06-Task-01 ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak1
复制成功

(6)使用vi命令修改vsftpd.conf配置文件发布FTP服务。

代码块
JavaScript
自动换行
复制代码
# 修改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服务使其配置生效。

代码块
JavaScript
自动换行
复制代码
# 重启vsftpd服务使配置生效
[root@Lab-06-Task-01 ~]# systemctl restart vsftpd
复制成功

1.5 服务测试

1.5.1 安装FTP客户端FileZilla

(1)从FileZilla的官方网站(https://www.filezilla.cn)获取FTP客户端可执行程序进行安装。

(2)安装完成后,启动FileZilla客户端,在左上角的“主机”输入框中输入“172.31.0.161”,用户名密码留空,端口默认,点击“快速连接”,如图6-1所示。

图 6-1 连接FTP服务

1.5.2 上传文件测试

(1)在Window本地客户端创建名为“upload.txt”的文件。

(2)在FTP客户端将“upload.txt”文件上传到FTP服务器的/share目录下,如图6-2所示。

图 6-2 上传文件

1.5.3下载文件测试

(1)使用ssh远程终端进入到FTP服务器的/var/ftp/pub目录下,创建“download.txt”文件。

代码块
JavaScript
自动换行
复制代码
# 进入到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所示。

图6-3 下载文件

1.5.4 创建、删除和重命名文件测试

(1)在FTP服务/share目录下创建“file1”文件,创建“dir1”目录。

(2)使用FTP客户端删除FTP服务/share目录下的“file1”文件,将“dir1”目录重命名为“dir2”,如图6-4、6-5所示。

图 6-4 删除文件

图 6-5 重命名目录

2、实现团队内部的SMB文件共享服务

2.1 场景描述

某团队为提高信息化应用水平,提高数据共享和资源服务水平,现需要构建内部网络存储,并能够全面支持移动终端等智能设备,实现灵活的资源共享。

2.2 需求描述

(1)建设内部文件共享服务;

(2)支持全终端智能设备。

2.3 解决方案

(1)通过Samba建设网络存储服务;

(2)仅允许团队内部网络访问;

(3)支持多操作系统、支持多终端。

2.4 具体步骤

(1)使用yum install命令在线安装Samba软件。

代码块
JavaScript
自动换行
复制代码
# 在线安装Samba服务
[root@Lab-06-Task-02 ~]# yum install -y samba samba-client
复制成功

(2)使用systemctl启动Samba服务,设置为开机自启动,并查看服务状态。

代码块
JavaScript
自动换行
复制代码
# 在线安装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模式。

代码块
JavaScript
自动换行
复制代码
# 允许所有客户端可以访问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。

代码块
JavaScript
自动换行
复制代码
# 创建共享服务目录,并设置目录权限为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。

代码块
JavaScript
自动换行
复制代码
# 创建用户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命令重新载入配置文件使其生效。

代码块
JavaScript
自动换行
复制代码
# 备份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.”。

代码块
JavaScript
自动换行
复制代码
# 创建文件并写入内容“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上创建资源目录。

代码块
JavaScript
自动换行
复制代码
# 创建资源目录
[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服务的共享目录到创建的资源目录。

代码块
JavaScript
自动换行
复制代码
# 挂载共享目录
[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)查看资源目录中的文件内容。

代码块
JavaScript
自动换行
复制代码
# 查看文件
[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.
复制成功

八、实验考核

实验考核分为【实验随堂查】和【实验线上考】两个部分。

实验随堂查:每个实验设置2-5考核点。完成实验任务后,任课教师随机选择一个考核点,学生现场进行演示和汇报讲解。

实验线上考:每个实验设置10道客观题。通过线上考核平台(如课堂派)进行作答。

1、实验随堂查

本实验随堂查设置3个考核点,具体如下:

考核点1:实现本地文件上传FTP服务器

考核点2:实现FTP服务器中文件的删除和重命名

考核点3:在Lab-06-Task-01上访问Samba服务的共享目录

2、实验线上考

本实验线上考共10题,其中单选3题、多选2题、判断3题、填空2题。