CentOS7搭设FTP服务器

作者: zeamonk | 来源:发表于2018-12-02 10:09 被阅读4次

FTP主要用于文件传输,在Linux上一般用vsftpd来实现,通过搭设FTP服务器,可以实现文件的共享,至少比坑爹的某度网盘强多了。

搭设FTP服务器有三种可选的认证方式:匿名认证、本地用户认证、虚拟用户认证,安全性:匿名认证<本地用户认证<虚拟用户认证,配置复杂度:匿名认证<本地<虚拟用户认证。

Linux中文件都有对应的所有者,虚拟用户认证指的是,创建一个或多个FTP用户,并将这些FTP用户与Linux本地的某个用户(如vftpuser)进行映射,这样完成映射的用户在对FTP目录进行操作时等同于用户vftpuser进行操作。此外,虚拟用户认证模式可以允许对多个FTP分别进行配置,非常灵活方便。从灵活性与安全性两个方面考虑,本文选择使用虚拟用户认证模式。
OK,准备开工!

一、基本环境

服务器:CentOS7.5
客户机:Ubuntu Mate18.10
FTP服务端:vsftpd
FTP客户端:FileZilla(可选)

二、基本流程

为了看起来更简洁,仅列出搭设基本流程及相关命令。

  1. 安装vsftpd

    yum install vsftpd
    
  2. 创建虚拟用户
    用你喜欢的任何编辑器创建并编辑/etc/vsftpd/vuser.list文件,内容如下:

     lilei
     lileipasswd
     hanmeimei
     hmmpasswd
    

    口令认证文件奇数行为用户名,偶数行为对应的密码

  3. 创建口令认证数据库

    db_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db
    chmod 600 /etc/vsftpd/vuser.db
    

    -T:转换

    -t:指定hash算法

    -f:指定用户名

  4. 编辑PAM认证文件

    创建并编辑 /etc/pam.d/vsftpd.vu,内容如下:

    auth            required    pam_userdb.so db=/etc/vsftpd/vuser
    account     required    pam_userdb.so db=/etc/vsftpd/vuser
    

    db指定口令认证数据库,不含后缀名

  5. 建立本地用户

    useradd -d /home/vftpuser -s /sbin/nologin vftpuser
    chmod 755 /home/vftpuser
    

    -d:指定用户主目录

    -s:指定用户登录shell,/sbin/nologin表示禁止用户通过shell登录,提高安全性

  6. 映射FTP用户到vftpuser

    编辑/etc/vsftpd/vsftpd.conf,修改下列行:

    pam_service_name=vsftpd.vu    # 指定pam认证文件
    guest_enable=YES                            # 启用映射
    guest_username=vftpuser            # 指定映射的本地用户
    user_config_dir=/etc/vsftpd/vusers_dir        # 指定FTP用户配置文件位置,如果不需要对每个用户进行分别配置,可将此行注释掉
    
  7. 为每个用户进行单独配置

    创建/etc/vsftpd/vuser_dir,针对每个FTP用户创建同名配置文件,此处以lilei为例。创建并编辑/etc/vsftpd/vuser_dir/lilei,内容如下:

    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    local_root=/var/www/html
    

    默认根目录为映射用户的家目录,可通过local_root指定某个用户的根目录,注意需要将此目录所有者改为vftpuser

  8. 重启vsftpd

    systemctl start vsftpd
    

三、注意事项

  • vsftpd加入开机启动,防止服务器重启后无法访问;
  • 如果FTP服务器无法访问,注意检查防火墙与SElinux设置;
  • 生成口令认证数据库后,及时将list文件删除,防止密码泄露。

欢迎关注公众号


Java和Python

相关文章

  • CentOS7搭设FTP服务器

    FTP主要用于文件传输,在Linux上一般用vsftpd来实现,通过搭设FTP服务器,可以实现文件的共享,至少比坑...

  • ftp服务器的搭建-linux

    一、前言 企业中linux搭建ftp服务器还是很实用的,所以本文针对centos7和centos6搭建ftp服务器...

  • FTP客户端(FileZilla)连接服务器问题集|FTP

    服务器环境:CentOS7 场景:安装WDCP进行服务器管理,新建站点和FTP账户后,使用ftp客户端登录碰到的问...

  • 部署网络半自动系统安装服务器

    前提:已有一个ftp服务器,里面共享着centos6/7的镜像,有三台机器 A:ftp服务器(centos7):i...

  • linux搭建ftp

    Centos7 命令使用总结 java完成ftp传输(将文件上传至静态资源服务器) ftp一些概念了解 Linux...

  • linux搭建ftp

    Centos7 命令使用总结 java完成ftp传输(将文件上传至静态资源服务器) ftp一些概念了解 Linux...

  • ftp 搭建过程中遇到的问题

    系统 centos7 问题一 、ftp 用户家目录权限问题 原服务器已经搭好ftp服务,使用用户密码验证登入。登入...

  • 基于 CentOS 搭建 FTP 文件服务

    本文测试环境 1、CentOS7 2、测试服务器IP 192.168.1.170 1、安装并启动 FTP 服务 1...

  • Google Cloud 搭建ftp服务

    开放防火墙: 21端口 流程如下: Centos7安装搭建FTP服务器(最简便方法) PASV被动模式 https...

  • 第一篇文章

    1、连接FTP服务器 /// /// 连接FTP服务器 /// /// FTP连接地址 /// 指定FTP连接成功...

网友评论

    本文标题:CentOS7搭设FTP服务器

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