美文网首页Network
腾讯云搭建 FTP 文件服务

腾讯云搭建 FTP 文件服务

作者: 刘小白DOER | 来源:发表于2021-05-02 09:53 被阅读0次

        笔者报考了腾讯高级云架构工程师认证,最近一段时间就是死磕云计算的知识,在腾讯实验室以及购买的LAMP云服务器上测试学习。今天就来搭建 FTP 文件服务,平时使用ftp服务基本在内部局域网中,腾讯云搭建 FTP可直接在公网上使用。

        FTP 是一个很实用的文件传输协议,方便在客户端和服务器之间进行文件的传输,vsftpd 是在 Linux 上被广泛使用的 FTP 服务器。本文在腾讯云Ubuntu 16以及CentOS 7两个平台下来测试, 利用vsftpd 来搭建一个 FTP 服务。

        安装vsftpd并开启服务后是可以直接使用的,但是是匿名登陆,也无法区分用户访问,为了保障服务器安全需要限制权限,创建专有的 FTP 登录账户。

        Ubuntu 16

        1、安装 VSFTPD

        sudo apt-get install vsftpd -y

        2、启动 VSFTPD

        sudo netstat -nltp | grep 21,通过 netstat 命令可以看到系统已经监听了21端口。

        安装完成后 VSFTPD 会自动启动,如果没有启动,可以手动开启 VSFTPD 服务:sudo systemctl start vsftpd.service。

        3、配置用户访问目录

        新建用户主目录:sudo mkdir /home/uftp

        创建一个用户 uftp:sudo useradd -d /home/uftp -s /bin/bash uftp

         uftp 用户设置密码:sudo passwd uftp

        删除掉 pam.d 中 vsftpd,因为该配置文件会导致使用用户名登录 ftp 失败:sudo rm /etc/pam.d/vsftpd

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

        为了保障服务器安全,用户 uftp 只能通过 FTP 访问服务器,而不能直接登录服务器:sudo usermod -s /sbin/nologin uftp 

        5、修改 vsftpd 配置文件

        修改 /etc/vsftpd.conf 文件中的配置,直接将如下配置添加到配置文件最下方:

    # 限制用户对主目录以外目录访问

    chroot_local_user=YES

    # 指定一个 userlist 存放允许访问 ftp 的用户列表

    userlist_deny=NO

    userlist_enable=YES

    # 记录允许访问 ftp 用户列表

    userlist_file=/etc/vsftpd.user_list

    # 不配置可能导致莫名的530问题

    seccomp_sandbox=NO

    # 允许文件上传

    write_enable=YES

    # 使用utf8编码

    utf8_filesystem=YES

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

        sudo touch /etc/vsftpd.user_list

        sudo chmod a+w /etc/vsftpd.user_list

        修改 /etc/vsftpd.user_list ,加入刚刚创建的用户:uftp

    7、设置访问权限

        设置主目录访问权限,只读:sudo chmod a-w /home/uftp

        新建公共目录,并设置权限(读写):sudo mkdir /home/uftp/public && sudo chmod 777 -R /home/uftp/public

        重启vsftpd 服务:sudo systemctl restart vsftpd.service

    8、用户主目录/home/uftp/只读,新建一个文件测试。

        sudo touch /home/uftp/welcome.txt

    9、通过 Windows 资源管理器访问

        ftp://uftp:你的密码@<您的 CVM IP 地址>。

        public目录下可以读写,上传和下载,而主目录只能读取。

    CentOS 7

    1、使用yum安装vsftpd 

        yum install vsftpd -y

    2、启动vsftpd 

        systemctl start vsftpd.service

         netstat 命令可以看到系统已经监听了21端口:  netstat -nltp | grep 21

    3、访问 ftp://<您的 CVM IP 地址> 可浏览机器上的 /var/ftp 目录了,此时FTP 服务登陆允许匿名登陆,也无法区分用户访问,需要配置 FTP 访问权限。

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

    vsftpd.conf 为主要配置文件

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

    user_list 配置用户访问控制

        匿名访问让所有人都可以上传文件到服务器上而无需鉴权,而允许切换根目录则可能产生越权访问问题。阻止匿名访问和切换根目录,编辑 /etc/vsftpd/vsftpd.conf:

    # 禁用匿名用户

    anonymous_enable=NO

    # 禁止切换根目录

    chroot_local_user=YES

    最后重启: systemctl restart vsftpd.service

    4、创建 FTP 用户: useradd ftpuser

        为用户 ftpuser 设置密码:echo "Password" | passwd ftpuser --stdin

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

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

        usermod -s /sbin/nologin ftpuser

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

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

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

    创建目录:mkdir -p /data/ftp/pub

    设置访问权限:chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub

    设置为用户的主目录:usermod -d /data/ftp ftpuser

    7、通过 Windows 资源管理器访问

        ftp://uftp:你的密码@<您的 CVM IP 地址>。

        public目录下可以读写,上传和下载,而主目录只能读取。

    相关文章

      网友评论

        本文标题:腾讯云搭建 FTP 文件服务

        本文链接:https://www.haomeiwen.com/subject/djltdltx.html