云计算百科
云计算领域专业知识百科平台

LINUX - VSFTPD服务器配置详解

0、背景
  • VSFTPD(Very Secure FTP Daemon)是一个用于提供FTP(文件传输协议)服务的服务器软件。它旨在提供一个高效、安全的FTP服务器解决方案,广泛应用于类Unix系统上,包括Linux。以下是 VSFTPD 的一些主要作用和特点:

  • 文件传输:

    提供 FTP、FTPS(FTP Secure)和 SFTP(SSH File Transfer Protocol)等多种传输协议,方便用户在网络上进行文件上传和下载。

    多用户支持:

    它支持多用户环境,允许不同用户使用各自的凭据安全地访问自己的文件目录。

    管理控制:

    系统管理员可以灵活配置用户权限和访问控制,例如限制用户能够访问的目录或文件,确保文件管理的安全性。

    高性能:

    VSFTPD 设计时就考虑了性能与资源的高效利用,适合处理大量并发连接,适合大流量的文件传输需求。

    安全性:

    提供多种安全特性,如 chroot 环境、SSL/TLS 加密和用户隔离,以降低数据泄露风险和未经授权的访问。

    日志管理:

    记录用户活动日志,帮助管理员监控和审计文件传输操作,便于故障排查和安全检测。

  • 使用场景

    网站托管:使用 VSFTPD 来管理网站文件的上传和下载。

    数据备份:设置 VSFTPD 服务器用于备份和恢复重要数据。

    文件分享:在局域网或互联网中方便地共享文件。

1.安装Vsftpd

apt-get install vsftpd

2.启动Vsftpd服务

service vsftpd start

3.新建用户uftp,制定用户主目录和所用shell,并设置密码

useradd -d /home/fa/SliceFileSpace/Queue -s /bin/bash uftp

passwd uftp —>Uniz3D****

4.将目录/home/fa/workspace的所属者和所属组都改为uftp:

sudo chown uftp:uftp /home/fa/SliceFileSpace/Queue

5.新建文件/etc/vsftpd.user_list,用于存放允许访问ftp的用户:

sudo vi /etc/vsftpd.user_list

在其中添加用户uftp,并且保存退出

6.编辑VSFTPD配置文件

vi /etc/vsftpd.conf (修改配置文件中的存储权限)

7.重启vsftpd服务

/etc/init.d/vsftpd restart

8.查看vsftpd状态

systemctl status vsftpd

netstat

9.测试

Windows下打开cmd窗口

ftp [你的linux机器的ip地址]

10.删除用户的方法

  • userdel test //userdel + 用户 即可删除ftp用户

11.格式转换
  • convmv -f GBK -t UTF-8 –notest –nosmart ����.zcode

vsftpd.config配置说明
  • #不允许匿名用户登录FTP服务器

    anonymous_enable=NO

  • #设置匿名用户登录后所在的目录。

    anon_root=/var/ftp/none

  • #匿名用户最大带宽,单位为bps

    anon_max_rate=0

  • #匿名用户的操作权限

    anon_umask=022

  • #不允许匿名用户创建文件夹

    anon_mkdir_write_enable=no

  • #不允许匿名用户删除与重命名

    anon_other_write_enable=no

  • #不允许虚拟用户上传

    anon_upload_enable=no

  • #允许本地用户登录

    local_enable=YES

  • #所有人都没有chroot权限(限制在家目录),但启用例外名单,名单为/etc/vsftpd/chroot_list中写的用户名

    chroot_local_user=YES

    chroot_list_enable=NO

    chroot_list_file=/etc/chroot_list

    allow_writeable_chroot=YES

    write_enable=YES

    local_root=/home/fa/workspace

  • #不限制传输速度

    local_max_rate=0

  • #新建的目录 权限是700,文件的权限时 600

    local_umask=077

  • #当进入某个目录时,发送信息提示给远程用户

    dirmessage_enable=YES

  • #不开启 上传/下载 的日志记录

    xferlog_enable=NO

  • #使用 20 端口来连接 FTP

    connect_from_port_20=YES

  • #是否使用标准的 ftpd xferlog日志格式,该格式日志默认保存在 /var/log/xferlog

    xferlog_std_format=NO

  • #vsftpd 将以独立模式运行并监听 IPv4 的套接字(该指令不能与 listen_ipv6 一起使用)

    listen=YES

    pam_service_name=vsftpd

  • #FTP服务器仅允许user_list中的用户访问

    userlist_enable=YES

    userlist_deny=NO

  • #是否使用tcp_wrappers作为主机访问控制方式。

    tcp_wrappers=YES

12.VSFTP的使用

1、FTP 命令行客户端

您可以使用 ftp 命令行工具来连接到您的 VSFTPD 服务器并进行文件传输。

  • 连接到 FTP 服务器

     bash
     ftp <服务器地址>  

    例如,如果您的服务器在本地,可以使用:

     bash
     ftp localhost  

    输入用户名和密码:根据您在 VSFTPD 中配置的用户名和密码进行登录。

  • 上传文件

    使用 put 命令上传文件:

     bash
     put <本地文件路径>  

    例如,要上传名为 file.txt 的文件:

     bash
     put /path/to/local/file.txt  

    确认上传:确保上传成功,可以使用 ls 命令查看当前目录文件。

    下载文件

    使用 get 命令下载文件:

     bash
     get <服务器文件名>  

    例如,下载服务器上的 file.txt:

     bash
     get file.txt  

    确认下载:在本地文件夹中查看是否有下载的文件。

    2、使用其他 FTP 客户端工具

    除了命令行工具,您还可以使用图形化 FTP 客户端,如 FileZilla、WinSCP 等,这些工具通常提供更友好的用户界 面,易于进行文件上传和下载。

    3、退出 FTP 会话

    完成文件传输后,可以使用 bye 或 quit 命令退出 FTP 会话:

     bash
     bye  

    4、常见问题及注意事项

    防火墙设置:确保您的 Ubuntu 防火墙(如 UFW)允许 FTP 流量。可以使用以下命令开放 21 端口:

     bash
     sudo ufw allow 21/tcp  

    vsftpd 配置:根据需要,您可能需要编辑 /etc/vsftpd.conf 文件,以配置用户权限、匿名访问、文件上传等选项。

    重新启动服务:如果更改了配置文件,请记得重新启动 VSFTPD 服务:

     bash
     sudo service vsftpd restart  

赞(0)
未经允许不得转载:网硕互联帮助中心 » LINUX - VSFTPD服务器配置详解
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!