vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

流程概要

  1. 关闭防火墙及selinux
  2. 安装vsftpd
  3. 创建vsftpd的映射账户
  4. 创建虚拟用户目录及配置文件
  5. 创建数据库认证文件
  6. 修改pam认证
  7. 修改vsftpd配置文件

    1.关闭防火墙及selinux

    1.1关闭系统防火墙

    # 停止防火墙
    systemctl stop firewalld.service
    # 关闭防火墙
    systemctl disable firewalld.service

    1.2关闭selinux

    查询是否开启了selinux

    sestatus

    显示enabled就说明SELinux是开着的,我们需要关掉。

    临时关闭

    setenforce 0

    永久关闭

    vi /etc/selinux/config

    将SELINUX=enforcing改为SELINUX=disabled

    修改后保存退出,然后重启Linux系统,重启命令:reboot或init 0

    2.安装vsftpd

    2.1检查ftp

    此命令检查是否安装过vsftpd

    rpm -qa |grep vsftpd

    如果有安装过其他ftp,怕影响的可以执行下面

    rpm -qa |grep ftp

    查询到后执行下方命令卸载

    yum remove vsftpd -y

    vsftpd是查询到ftp的比喻,如果是其他ftp请修改成其他ftp的包名。

    2.2安装vsftpd

    yum install vsftpd -y

    3.创建映射账户

    useradd vsftpd -d /vsftpd -s /bin/false

    /bin/false禁止此账户登录系统

    4.创建虚拟用户及配置文件

    4.1创建虚拟用户

    vi /etc/vsftpd/vftpusers

    创建一个虚拟用户配置文件,文件名为vftpusers,里面填虚拟用户的用户名及密码,奇数行为用户名,偶数行为密码,例如:

    admin
    admin

    创建了一个用户名和密码都为admin的用户,本文将以虚拟用户admin举例

    4.2创建虚拟用户目录

    mkdir -p /vsftpd/admin

    admin可替换为创建虚拟用户文件vftpusers时填写的用户名

    有几个用户就创建几个,创建完成后执行下方命令将虚拟用户的目录所有者改为vsftpd这个账户

    chown -R vsftpd:vsftpd /vsftpd

    4.3创建虚拟用户配置文件

    创建一个文件夹存放虚拟用户的配置文件

    mkdir /etc/vsftpd/userconf

    创建虚拟用户的配置文件

    touch /etc/vsftpd/userconf/admin

    编辑此配置文件

    vi /etc/vsftpd/userconf/admin

    添加如下代码,其中admin为4.2步骤中创建的文件夹

    local_root=/vsftpd/admin
    write_enable=YES
    anon_umask=022
    anon_world_readable_only=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES

    注意:不能有多余的空格

    配置对应含义如下

    # 设置登录后禁锢的目录  xxx可修改为/etc/vsftpd/vftpusers内设置的用户且创建了虚拟用户目录。
    local_root=/vsftpd/xxx
    # 开放写权限
    write_enable=YES
    # 掩码
    anon_umask=022
    # 开放下载权限
    anon_world_readable_only=YES
    # 开放上传权限
    anon_upload_enable=YES
    # 开放创建目录的权限
    anon_mkdir_write_enable=YES
    # 开放删除和重命名的权限
    anon_other_write_enable=YES

    5.生成数据库认证文件

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

    6.pam认证

    cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
    vi /etc/pam.d/vsftpd

    注释里面所有的内容,在最后添加以下内容

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

    7.修改vsftpd配置文件

    vi /etc/vsftpd/vsftpd.conf

    配置文件(可直接替换)

    #是否允许匿名登录
    anonymous_enable=NO
    #是否允许本地登录
    local_enable=YES
    #是否允许任何更改文件系统的FTP命令
    write_enable=YES
    #掩码
    local_umask=022
    #如果设置为YES,则允许匿名用户在特定条件下上载文件。
    #anon_upload_enable=YES
    #如果设置为YES,则允许匿名用户在特定条件下创建新目录
    #anon_mkdir_write_enable=YES
    #FTP服务器的用户首次进入新目录时可以显示消息
    dirmessage_enable=YES
    #如果启用,将维护一个日志文件,详细说明上载和下载。
    xferlog_enable=YES
    #这可以控制PORT样式数据连接是否在服务器计算机上使用端口20(ftp-data)。
    connect_from_port_20=YES
    #如果启用,则所有匿名上载的文件的所有权都将更改为设置chown_username中指定的用户。
    #chown_uploads=YES
    #这是获得匿名上传文件所有权的用户的名称。
    #chown_username=whoever
    #编写wu-ftpd样式传输日志的文件的名称。
    #xferlog_file=/var/log/xferlog
    #传输日志文件将以标准xferlog格式写入,如wu-ftpd所使用。
    xferlog_std_format=YES
    #超时(以秒为单位),即远程客户端在FTP命令之间可能花费的最长时间。
    #idle_session_timeout=600
    #超时(以秒为单位),大致是我们允许数据传输停止而没有进度的最长时间。
    #data_connection_timeout=120
    #这是vsftpd在完全没有特权的情况下使用的用户名。
    #nopriv_user=ftpsecure
    #启用后,将启用称为“异步ABOR”的特殊FTP命令。
    #async_abor_enable=YES
    #启用后,上传时将遵循ASCII模式数据传输。
    ascii_upload_enable=YES
    #启用后,下载时将遵循ASCII模式数据传输。
    ascii_download_enable=YES
    #欢迎信息
    #ftpd_banner=Welcome to blah FTP service.
    #如果激活,您可能会提供一个匿名密码电子邮件响应列表,导致登录被拒绝。
    #deny_email_enable=YES
    #此选项是包含不允许的匿名电子邮件密码列表的文件的名称。
    #banned_email_file=/etc/vsftpd/banned_emails
    #禁止用户访问除主目录以外的目录
    chroot_local_user=YES
    #是否启用例外名单
    #chroot_list_enable=YES
    #默认名单目录文件
    #chroot_list_file=/etc/vsftpd/chroot_list
    #如果启用,vsftpd将以独立模式运行。
    listen=YES
    #与listen参数一样,除了vsftpd将侦听IPv6套接字而不是IPv4套接字。此参数和listen参数是互斥的。
    #listen_ipv6=YES
    #此字符串是vsftpd将使用的PAM服务的名称。
    pam_service_name=vsftpd
    #如果启用,vsftpd将从userlist_file给出的文件名加载用户名列表。
    userlist_enable=YES
    #如果启用,并且vsftpd是使用tcp_wrappers支持编译的,则传入连接将通过tcp_wrappers访问控制提供。
    tcp_wrappers=YES
    #开启虚拟用户
    guest_enable=YES
    #主虚拟用户名
    guest_username=vsftpd
    #虚拟用户配置
    user_config_dir=/etc/vsftpd/userconf
    allow_writeable_chroot=YES

    修改内容(可自行根据内容修改)

    # 修改
    anonymous_enable=NO
    listen=YES
    # 取消注释
    ascii_upload_enable=YES
    ascii_download_enable=YES
    chroot_local_user=YES
    # 注释
    listen_ipv6=YES
    # 添加
    guest_enable=YES
    guest_username=vsftpd
    user_config_dir=/etc/vsftpd/userconf
    allow_writeable_chroot=YES

    8.常用vsftpd命令

    # 开机自启动
    systemctl enable vsftpd
    # 启动vsftpd
    systemctl start vsftpd
    # 重启vsftpd
    systemctl restart vsftpd
    # 停止vsftpd
    systemctl stop vsftpd
    # 关闭vsftpd
    systemctl disable vsftpd

    9.如果同一个ftp账号想访问多个不同目录,可以使用挂载实现

    mount --bind /opt/software/ /home/ftp1
    mount --bind /usr/local/openresty/nginx/html /vsftpd/admin/文件服务器/**原型库
    mount --bind /mnt/ /home/ftp1

基于vsftpd搭建项目文件服务器的更多相关文章

  1. Linux下基于vsftpd搭建ftp服务器

    1.先用检查是否已经安装rpm -qa| grep vsftpd2.然后再进行在线安装vsftpd这个服务yum install vsftpd -y3.修改vi /etc/vsftpd/vsftpd. ...

  2. windows环境下基于nginx搭建rtmp服务器

    基于nginx搭建rtmp服务器需要引入rtmp模块,引入之后需重新编译nginx linux环境几个命令行就能实现编译,笔者未尝试,网上有很多教程. windows环境还需要安装一系列的编译环境,例 ...

  3. 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器

    最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...

  4. 【腾讯云服务器】基于centos7搭建ftp服务器(vsftpd)

    该博客分为三部分设置,1.ftp服务器搭建.2.防火墙设置  3.腾讯云安全组 一.ftp服务器搭建 1.1  安装vsftpd yum install vsftpd -y 1.2 启动vsftpd服 ...

  5. 基于openssl搭建https服务器

    1. 搭建web环境 我这里使用源码编译安装方式安装httpd.详情可以参加我的一篇博客http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_1 ...

  6. Nginx+vsftpd搭建图片服务器

    安装Nginx 参考:http://www.cnblogs.com/idefav2010/p/nginx-concat.html Nginx配置文件 location ~ .*\.(gif|jpg|j ...

  7. 基于Docker搭建GitLab服务器

    运行环境:CentOS 7.4 一.安装Docker Docker安装可以参照runoob教程(http://www.runoob.com/docker/centos-docker-install.h ...

  8. ubuntu VSFTPD搭建FTP服务器 提示530错误

    配置完 vsftpd ,发现不能登录,提示 530 错误.解决方法如下: sudo rm /etc/pam.d/vsftpd 注:因为 ubuntu 启用了 PAM,所在用到 vsftp 时需要用到 ...

  9. 基于licode搭建webrtc服务器

    0. 前言 licode官网文档安装教程十分简单, 但是实际搭建过程是很艰辛的. 官方文档没有提示说会遇到什么样的问题, 实际过程中可能遇到各种各样的问题, 在解决的时候费时费力, 我就总结一下自己在 ...

  10. 基于 BaGet 搭建 Nuget 服务器

    1 前言 1.1 BaGet 介绍 BaGet 是一个轻量级的,开源的,跨平台的 Nuget 和 symbol 服务器. 1.2 环境介绍 操作系统:CentOS 7 使用 Docker 安装 2 安 ...

随机推荐

  1. 网络安全—SSL安全访问应用

    文章目录 网络拓扑 部署CA服务器颁发证书 开启Web服务 安装IIS服务 修改Web默认网页 申请Web证书 前提准备 申请文件生成 申请web证书 开始安装web证书 客户机访问web默认网站 使 ...

  2. 线程中使用for循环的add或remove方法的两种方案

    简介 (Introduction): 背景 在使用线程中添加list的元素时,使用add或remove就会产生异常. 分析 该list每当删除/添加一个元素时,集合的size方法的值都会减小1,这将直 ...

  3. 现代农业|AIRIOT智慧农业管理解决方案

    ​ 智慧农业是现代化技术在农业领域的应用和成果,其中物联网技术在促生产.保产量和降本增效方面起到了至关重要的作用.运用传感技术和软件平台系统对农业生产进行智能化平台化管理,解决掉传统农业问题的诸多痛点 ...

  4. 前端使用 Konva 实现可视化设计器(11)- 对齐效果

    这一章补充一个效果,在多选的情况下,对目标进行对齐.基于多选整体区域对齐的基础上,还支持基于其中一个节点进行对齐. 请大家动动小手,给我一个免费的 Star 吧~ 大家如果发现了 Bug,欢迎来提 I ...

  5. 开源Blazor UI组件库精选:让你的Blazor项目焕然一新!

    今天给大家推荐一些开源.美观的Blazor UI组件库,这些优秀的开源框架和项目不仅能够帮助开发者们提高开发效率,还能够为他们的项目带来更加丰富的用户体验. 注:排名不分先后,都是十分优秀的开源框架和 ...

  6. 【终极指南】使用Python可视化分析文本情感倾向

    本文分享自华为云社区<Python理解文本情感倾向的终极指南>,作者: 柠檬味拥抱. 情感分析是一种通过自然语言处理技术来识别.提取和量化文本中的情感倾向的方法.Python在这一领域有着 ...

  7. 如何在Windows上一键部署PaddleOCR的WebAPI服务

    PaddleOCR旨在打造一套丰富.领先.且实用的OCR工具库,助力开发者训练出更好的模型,并应用落地. 官方​开源项目地址:PaddlePaddle/PaddleOCR: Awesome multi ...

  8. nginx日志缓存open_log_file_cache

    nginx日志缓存,提升磁盘性能 将多个日志进行积累,达到一定量级后写入到磁盘,可以减少磁盘旋转,从而降低磁盘i/o,提升nginx能效 语法: access_log path access_log ...

  9. golang import 导入的四种方式

    1 标准导入: import "package_name" 2 导入别名: import ( alias "package_name" ) 3 匿名导入: _ ...

  10. 打开 gpedit.msc 组策略时弹出错误提示,"找不到资源 string.Advanced_EnableSSL3Fallback ”。

    原因是升级到 IE9 或者 IE 11 语言包没有及时更新. 解决方案一:用360再打补丁. 方案二:未尝试. https://www.microsoft.com/en-us/download/con ...