Linux操作系统中搭建vsftpd FTP服务器

Linux操作系统下搭建vsftpd FTP服务器

(附本次搭建所用虚拟机及Linux操作系统版本链接)

VMware Workstation Pro 15.5.0虚拟机:
链接:https://pan.baidu.com/s/1wsrzb1EuCPAykwSMGB39rw
提取码:1234
RHEL-7.2 Server.x86_64 Linux操作系统:
链接:https://pan.baidu.com/s/1sacACbx4FknBbUiVEkA45Q
提取码:1234
1.打开进入root用户模式
[admin@localhost 桌面]$ su
密码:
[root@localhost 桌面]# 
2.检查是否安装了vsftpd服务器
[root@localhost 桌面]# rpm -qa|grep vsftpd

若什么也没显示则说明还未安装

3.安装vsftpd软件包(通过光盘进行安装)

第一步:挂载

[root@localhost 桌面]# cd /mnt  **进入mnt目录下**
[root@localhost mnt]# ls
[root@localhost mnt]# mkdir cdrom	**创建挂载点,在mnt目录下创建cdrom目录** **rmdir cdrom是删除目录**
[root@localhost mnt]# ls
cdrom
[root@localhost mnt]# mount /dev/cdrom /mnt/cdrom	**mnt是临时挂载点**
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost mnt]# cd cdrom
[root@localhost cdrom]# ls
addons  images      Packages                 RPM-GPG-KEY-redhat-release
EFI     isolinux    release-notes            TRANS.TBL
EULA    LiveOS      repodata
GPL     media.repo  RPM-GPG-KEY-redhat-beta
[root@localhost cdrom]# cd Packages
[root@localhost Packages]# ls	**找到vsftpd-3.0.2-10.el7.x86_64.rpm这个软件包,将其名称复制下来用于安装。**

第二步:安装软件包

[root@localhost Packages]# rpm -ivh vsftpd-3.0.2-10.el7.x86_64.rpm
警告:vsftpd-3.0.2-10.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
准备中...                          ################################# [100%]
	软件包 vsftpd-3.0.2-10.el7.x86_64 已经安装

因为我已经安装过一次了,所以此处显示的是已经安装

4.关闭防火墙

1.临时关闭一下防火墙

[root@localhost Packages]# systemctl stop firewalld
[root@localhost Packages]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since 五 2021-12-10 22:44:29 CST; 4min 12s ago
  Process: 1047 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 1047 (code=exited, status=0/SUCCESS)

12月 11 06:19:12 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
12月 10 22:26:14 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
12月 10 22:44:28 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon...
12月 10 22:44:29 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon.

显示黑点则表示防火墙已关闭

2.临时关闭selinux防火墙

getenforce命令用来查看selinux的状态,显示Permissive则表示已临时关闭

[root@localhost Packages]# setenforce 0
[root@localhost Packages]# getenforce
Permissive
5.重新启动服务
[root@localhost Packages]# systemctl restart vsftpd

可查看服务是否启动:

[root@localhost Packages]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 五 2021-12-10 23:02:04 CST; 1min 5s ago
  Process: 5729 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 5730 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─5730 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

12月 10 23:02:04 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
12月 10 23:02:04 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.

若小圆点呈绿色,则说明服务已启动

6.添加配置

为Linux操作系统配置一个IP地址使其与物理机处于同一个网段。

1.Window操作系统下win+R快捷键输入cmd

2.使用命令ipconfig查看主机IP地址

3.Linux操作系统下添加新的配置:

  • 进入有线设置—>选择添加配置

Linux操作系统中搭建vsftpd FTP服务器_第1张图片
Linux操作系统中搭建vsftpd FTP服务器_第2张图片

  • Ipv4 地址修改为手动

  • 将IP地址设置为与主机IP地址在同一个网段,网络掩码和网关不变

  • Window操作系统下尝试是否能ping通:使用命令ping+为Linux操作系统配置的IP地址

  • 若无法ping通,将虚拟机的网络适配器设置为桥接模式再尝试

Linux操作系统中搭建vsftpd FTP服务器_第3张图片
将一切都配置好了后进入Windows操作系统下进行测试

7.测试

打开Windows操作系统的文件资源管理器

输入ftp://+配置的Linux操作系统的IP地址

Linux操作系统中搭建vsftpd FTP服务器_第4张图片
Linux操作系统中搭建vsftpd FTP服务器_第5张图片

Linux操作系统中搭建vsftpd FTP服务器_第6张图片

进入后可看见一个叫pub的默认资源共享文件夹,里面是没有文件的,此处的test.txt文件是我先前创建的,我们另外再去创建一个演示一下

  1. pub文件夹位于根目录中var目录下的ftp文件夹中
[root@localhost Packages]# cd /var
[root@localhost var]# ls
account  adm  cache  crash  db  empty  ftp  games  gopher  kerberos  lib  local  lock  log  mail  nis  opt  preserve  run  spool  tmp  www  yp
[root@localhost var]# cd ftp
[root@localhost ftp]# ls
pub

2.进入pub目录下可看见之前显示的那个test.txt文件,通过vi再创建一个test1.txt文件并输入内容,使用cat命令可查看到我在里面输入了123456这个数据,关于vi编译器的一些操作可参考我另一篇博客中的介绍:Linux操作系统下搭建Samba跨平台资源共享服务

[root@localhost ftp]# cd pub
[root@localhost pub]# ls
test.txt
[root@localhost pub]# vi test1.txt
[root@localhost pub]# ls
test1.txt  test.txt
[root@localhost pub]# cat test1.txt
123456

3.再次去文件资源管理器中访问可看到多了一个文件

在这里插入图片描述

这样我们就可以进行资源的下载了,但是还不能进行资源的上传以及创建,进行这些操作会提示没有相关权限,还需要去配置一些配置。

Linux操作系统中搭建vsftpd FTP服务器_第7张图片

8.配置基于匿名用户访问的FTP配置
  1. 配置vsftpd.conf主配置文件
[root@localhost pub]# cd /etc
[root@localhost etc]# ls

Linux操作系统中搭建vsftpd FTP服务器_第8张图片
vsftpd.conf就是主配置文件了

[root@localhost etc]# cd vsftpd
[root@localhost vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
anon_upload_enable=YES		**29行取消#号,表示允许匿名用户上传文件**
anon_mkdir_write_enable=YES		**33行取消#号,表示允许匿名用户创建对象**

结尾自添:

anon_other_write_enable=YES		**是否允许匿名用户有创建目录的写入权限**
anon_umask=022		**表示匿名用户上传文件默认权限掩码值**
anon_max_rate=50000		**设置匿名用户的最大传输速度,单位为bytes/sec**

修改完毕,保存退出。

2.设置ftp用户的上传目录并修改目录权限

[root@localhost vsftpd]# ll -d /var/ftp/pub		**显示目录属性**
drwxr-xr-x. 2 root root 37 12月 10 23:18 /var/ftp/pub
[root@localhost vsftpd]# chown ftp /var/ftp/pub		**修改目录属性**
[root@localhost vsftpd]# ll -d /var/ftp/pub		**显示修改后目录属性**
drwxr-xr-x. 2 ftp root 37 12月 10 23:18 /var/ftp/pub

3.修改seLinux,使seLinux支持匿名用户上传

使用getsebool -a|grep ftp 命令可以找到ftp的bool值,其中第二行:ftpd_anon_write --> off的当前值为off,需改为on。

[root@localhost vsftpd]# getsebool -a|grep ftp
ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off

使用命令setsebool -P 进行修改,再次查看可以看到已经修改为on了。

[root@localhost vsftpd]# setsebool -P ftpd_anon_write on
[root@localhost vsftpd]# getsebool -a|grep ftp
ftp_home_dir --> off
ftpd_anon_write --> on
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off

4.修改上下文

[root@localhost vsftpd]# ll -Zd /var/ftp/pub
drwxr-xr-x. ftp root system_u:object_r:public_content_t:s0 /var/ftp/pub
[root@localhost vsftpd]# chcon -t public_content_rw_t /var/ftp/pub
[root@localhost vsftpd]# ll -Zd /var/ftp/pub
drwxr-xr-x. ftp root system_u:object_r:public_content_rw_t:s0 /var/ftp/pub

5.使用reboot命令重新启动Liunx操作系统

[root@localhost vsftpd]#reboot

6.重启Linux操作系统后重新关闭防火墙和开启服务

[admin@localhost 桌面]$ su
密码:
[root@localhost 桌面]# systemctl stop firewalld
[root@localhost 桌面]# setenforce 0
[root@localhost 桌面]# getenforce
Permissive
[root@localhost 桌面]# systemctl restart vsftpd

7.测试

将Windows操作系统中的资源拖入pub文件夹中,可看到没有再出现权限不足的提示了,并成功的进行了资源的上传,并且可以在pub文件夹中创建文件。

Linux操作系统中搭建vsftpd FTP服务器_第9张图片

9.运行vsftpd服务器

下次只需要重新启动该服务即可,不必重新搭建。

在服务器终端先进入root用户模式再通过命令:

systemctl stop firewalld	关闭防火墙
setenforce 0
getenforce
systemctl restart vsftpd	重启服务

之后在客户端进行正常操作即可。

你可能感兴趣的:(笔记,服务器,linux,运维)