搭建 FTP 文件服务

一: FTP

1. 安装并启动 FTP 服务

Centos7中默认已经安装了sshd服务(sftp), vsftpd需要手动安装

1.1 安装 VSFTPD

使用 yum安装 vsftpd

yum install vsftpd -y

1、安装并启动FTP服务

1.2 启动 VSFTPD

安装完成后,启动 FTP 服务:

service vsftpd start

启动后,可以看到系统已经监听了 21 端口

netstat -nltp | grep 21

此时,访问 ftp://192.168.5.8 可浏览机器上的 /var/ftp 目录了。
注意:如果不能访问,请查看是否开启了防火墙。若开启了防火墙,请允许ftp服务访问:

# 允许 ftp 服务通过防火墙(永久)
[root@localhost ~]# firewall-cmd --add-service=ftp --permanent  
success
[root@localhost ~]# firewall-cmd  --reload # 重新加载防火墙
success

1.1 安装vsftpd

2. 配置 FTP 权限

使用 yum 安装 vsftpd

2.1 了解 VSFTP 配置

vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:

  • vsftpd.conf 为主要配置文件
  • ftpusers 配置禁止访问 FTP 服务器的用户列表
  • user_list 配置用户访问控制

阅读上述配置以了解更多信息。如果您准备好了,点击下一步开始修改配置来设置权限。

yum install -y vsftpd

2.2 阻止匿名访问和切换根目录

匿名访问和切换根目录都会给服务器带来安全风险,我们把这两个功能关闭。
编辑 /etc/vsftpd/vsftpd.conf,找到下面两处配置并修改:

# 禁用匿名用户
anonymous_enable=NO

# 禁止切换根目录
chroot_local_user=YES

编辑完成后,按 Ctrl + S 保存配置,重新启动 FTP 服务,如:

service vsftpd restart

 

2.3 创建 FTP 用户

创建一个用户 ftpuser :

useradd ftpuser

为用户 ftpuser 设置密码 :

echo "QQQecAYg" | passwd ftpuser --stdin

1.2 启动vsftpd

2.4 限制该用户仅能通过 FTP 访问

限制用户 ftpuser 只能通过 FTP 访问服务器,而不能直接登录服务器:

usermod -s /sbin/nologin ftpuser

安装完成后, 启动vsftpd服务 :

2.5 为用户分配主目录

为用户 ftpuser 创建主目录并约定:
/data/ftp 为主目录, 该目录不可上传文件
/data/ftp/pub 文件只能上传到该目录下

mkdir -p /data/ftp/pub

创建登录欢迎文件:

echo "Welcome to use FTP service." > /data/ftp/welcome.txt

设置访问权限:

chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub

设置为用户的主目录:

usermod -d /data/ftp ftpuser

service vsftpd start

3. 访问ftp

FTP 服务已安装并配置完成,下面我们来使用该 FTP 服务

  • 访问 FTP 服务
    根据您个人的工作环境,选择一种方式来访问已经搭建的 FTP 服务
  • 通过 Windows 资源管理器访问
    Windows 用户可以复制下面的链接,到资源管理器的地址栏访问:

ftp://ftpuser:QQQecAYg@192.168.5.8

  • 通过 FTP 客户端工具访问
    FTP 客户端工具众多,下面推荐两个常用的:
    WinSCP - Windows 下的 FTP 和 SFTP 连接客户端
    FileZilla - 跨平台的 FTP 客户端,支持 Windows 和 Mac

下载和安装 FTP 客户端后,使用下面的凭据进行连接即可:
主机:

192.168.5.8

用户:

ftpuser

密码:

QQQecAYg

如果能够正常连接,那么大功告成,您可以开始使用属于您自己的 FTP 服务器了!
接下来,请上传任意一张图片到您的 FTP 服务器上的pub目录下,然后,就可以在 /data/ftp/pub 中看到了。
注意: 请不要直接上传文件到根目录下,您应该选择上传到 pub目录下。

启动后, 可以看到系统已经监听了 21 端口(Ubuntu下命令为: lsof -i:21)

4. vsftpd出现550Permissiondenied解决办法

  • 方法一 关闭selinux
[root@localhost ftp]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled  # 这里enforcing改成disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

[root@localhost ftp]# setenforce 0
  • 方法二 不关闭SELinux解除CentOS防火墙组件SElinux对vsftpd的拦截
[root@localhost ~]# getsebool -a | grep ftp
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
tftp_anon_write --> off
tftp_home_dir --> off

[root@localhost ~]# setsebool ftpd_full_access on
[root@localhost ~]# systemctl restart vsftpd

上文设置了ftpd_full_access on,再次测试ftp服务正常访问和上传下载了。还有些朋友说ftp_home_dir –> off 也要设置on,我这里没遇到。

netstat -nltp | grep 21

此时, 访问ftp://IPaddr 就可浏览主机上的 /var/ftp目录了

 

2、配置 FTP 权限

2.1 了解 vsftpd 配置

vsftpd 的配置目录为 /etc/vsftpd, 包含下列的配置文件 :

        a. vsftpd.conf 为主要配置文件

        b. ftpusers 配置禁止访问 FTP 服务器的用户列表

        c. user_list 配置用户访问控制

 

2.2 阻止匿名访问和切换根目录

匿名访问和切换目录都会给服务器带来安全风险, 我们把这两个功能关闭.

编辑 /etc/vsftpd/vsftpd.conf, 找到下面两处配置并修改:

 

# 禁用匿名用户  YES 改为NO

anonymous_enable=NO

 

# 禁止切换根目录 删除或#

chroot_local_user=YES

 

编辑完成后保存配置, 重新启动 FTP 服务

service vsftpd restart

 

2.3 创建 FTP 用户

创建一个用户 ftpuser

useradd ftpuser

为用户 ftpuser 设置密码

passwd ftpuser  或  echo "new_password" | passwd ftpuser --stdin

 

2.4 限制该用户仅能通过FTP访问

限制用户 ftpuser 只能通过 FTP 访问服务器, 而不能直接登录服务器

usermod -s /sbin/nologin ftpuser

 

2.5 为用户分配主目录

为用户 ftpuser创建主目录并约定

/data/ftp 为主目录, 该目录不可上传文件

/data/ftp/pub 文件只能上传到该目录下

在/data中创建相关的目录

本文由金沙官网线上发布于操作系统,转载请注明出处:搭建 FTP 文件服务

您可能还会对下面的文章感兴趣: