在配置安装vsftpd过程中,我遇到了很多坑?查了上百篇博客,才把这些坑一一填满。这里记录是为了方便后来者查阅,我也是个小白。有问题请不要客气,直接喷就是了!

vsftpd 就是very secure FTP  的意思

快速版我会再写一篇博客。这里我们还是来讨论到底怎么才能弄清如何配置ftp?

首先配置ftp服务器中会遇到几个坑?

其实我们只需要清楚几个核心,就可以快速的配置出自己的ftp服务器了

第一个是ftp服务器本身

第二个是用户

第三个是linux主机

第四个是防火墙

第五个是selinux  selinux我这里环境禁用了。我们暂且不谈

那么说回第一个。ftp服务器本身。

如果需要安装ftp服务器。他的主要涉及文件就是

/etc/vsftpd/vsftpd.conf

/etc/pam.d/vsftpd

第一个是主要配置文件。我们的本地和匿名只要用到他就够了。

如果我们需要安装ftp服务器。我们需要先检查linux主机是否安装过ftp服务器

因此   我们使用rpm命令查找ftp

rpm -qa  | grep ftp

如果没有任何返回我们即可安装ftp了 使用yum -y install vsftpd 安装

成功安装以后。我们便可以编辑vsftpd.conf主配置文件了

vsftpd 允许三种不同的方式配置 分别是匿名  本地  虚拟账户

匿名的话是最简单的
     什么都不需要动。

在改动配置文件,请先使用mv  cp 备份文件
     如果你使用vi 打开vsftpd.conf 感觉有点乱,

使用grep "#"  -v  vsftpd.conf_bak  >vsftpd.conf

接下来就直接重启systemctl restart vsftpd 就可以了

不要使用fileZilla连接,filezilla作为小白来讲,filezilla加太多东西了
使用从cmd连接
  其中  ftp ipAdress
  cd changeDirectory  put上传  get  下载
  你在那个地方打开cmd,你的文件就下载在哪里,你的文件上传也是如此, 更直接可以使用绝对路径

如果打不开,就是防火墙开了,或者selinx开启了

基本上匿名是什么都不要改动,开箱即用

如果返回错误需要检查防火墙是否开启。
   
  firewall-cmd --add-service=ftp --permanent //永久开放ftp服务

你还可以尝试使用systemctl stop firewalld 
  
  关闭防火墙之后查看是否可以登录

而本地用户的配置则只需要更改动配置即可

anonymous_enable=NO
            local_enable=YES
            local_root=/var/ftp/pub
            write_enable=YES
            local_umask=022
            file_open_mode=0755
            chroot_local_user=YES
            pam_service_name=vsftpd
            userlist_enable=NO
            userlist_deny=NO

chroot_local_user=YES
            allow_writeable_chroot=YES

其中需要关注的配置项为local_root,local_root限制本地用户登录后的家目录

此外pam_service_name,在本地用户中,会使用pam认证,因此需要保证你的pam文件是正确的

如果出现
              530 login  inCorrect

那么有可能就是pam文件不正确。
            当然也有可能是家目录的权限不正确

可以使用tail -f /var/log/secure 查看错误的日志文件

一般都可以查找出来

其他的可以自行百度

对于虚拟用户的配置
       首先需要安装db文件,他的目的就是用来加密我们的虚拟账户中的账户和密码

因此使用  yum install  db*

之后新建我们虚拟账户文件  
         即:
          一行账户abc
          一行密码123456

对虚拟账户文件进行加密即vuser.list
       使用db加密
         db_load -T -t hash -f vuser.list vuser.db

此时完成加密,生成db文件

对db文件进行保护,因此
         chmod 600 vuser.db
        
       这个时候我们新建ftp的系统账户,而并不是虚拟账户

useradd -d /var/ftp/pub -s /sbin/nologin  tom

-d 指定家目录 -s  限制此账户登录系统,仅用作ftp虚拟账户映射

此时对该家目录需要让其他用户可以访问
      chmod -RF  755 /var/ftp/pub

使用passwd user  更改密码

最后,虚拟账户也使用pam认证
      因此我们需要对pam进行修改
      备份之后,删除原内容后添加上以下两句
        auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser //此句用于检查用户密码,数据库文件不要写后缀.db

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser //此句用于检查用户是否在有效期内,数据库支持虚拟用户的PAM认证文件。

这之后更改主配置文件即vsftpd.conf

anonymous_enable=NO
            local_enable=YES
            write_enable=YES
            guest_enable=YES
            guest_username=tom
            pam_service_name=vsftpd
            user_config_dir=/etc/vsftpd/vuser_list
            pasv_enable=YES

其中我么们需要关注的就是guest_username=tom 
            这个指定的账户表示的就是我们登录虚拟账户以后使用就是tom的家目录
            pam_service_name 表示的是pam认证的文件
            他位于/etc/pam.d/vsfptd下

user_config_dir 这个就是我们虚拟用户的配置文件所在的文件夹
            这是一个存放我们虚拟用户配置文件的文件夹
         
         因此,我们如果要配置我们虚拟账户的权限还需要在这个文件夹中生成和虚拟账户同名的配置文件

配置文件为:abc   文件位置为 /etc/vsftpd/vuser_list/abc

其中配置项为:

local_root=/var/ftp/pub //虚拟账号的家目录

anonymous_enable=NO

local_umask=022

anon_upload_enable=YES //上传权限

anon_mkdir_write_enable //创建文件和目录的权限

anon_other_write_enable //删除文件和目录的权限

anon_world_readable_only=YES //当文件的“其他人”有读权限的时候可以下载

download_enable=YES //下载权限

之后重启vsftpd,基本就可以实现了。
      参考文档:
       https://www.sohu.com/a/280848734_100155594
       https://blog.51cto.com/yuanbin/108262
       https://www.cnblogs.com/asker009/p/10254477.html
       https://www.cnblogs.com/songchunmin/p/7789735.html
       https://www.cnblogs.com/rongkang/p/10005775.html

vsftp配置详解篇相关推荐

  1. VSFTP配置详解+虚拟用户的支持

         FTP 搭建 第一部分:理论 一. FTP服务器的基本原理 1. 基本概念:ftp是文件传输协议,(file transport portocol) 2. 数据传输模式:主动模式和被动模式  ...

  2. Nginx配置详解篇

    找出nginx的配置文件nginx.config whereid nginx nginx的配置文件如下: ########### 每个指令必须有分号结束.################# #user ...

  3. Linux vsftp配置详解

    一.vsftpd说明: LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red HatEnterprise Linux中默认安装的是vsftpd. 访问F ...

  4. spring之旅第四篇-注解配置详解

    spring之旅第四篇-注解配置详解 一.引言 最近因为找工作,导致很长时间没有更新,找工作的时候你会明白浪费的时间后面都是要还的,现在的每一点努力,将来也会给你回报的,但行好事,莫问前程!努力总不会 ...

  5. 深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)

    上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, ...

  6. mybatis 同名方法_MyBatis(四):xml配置详解

    目录 1.我们将 数据库的配置语句写在 db.properties 文件中 2.在 mybatis-configuration.xml 中加载db.properties文件并读取 通过源码我们可以分析 ...

  7. logback节点配置详解

    logback节点配置详解 一:根节点 <configuration></configuration> 属性 : debug : 默认为false ,设置为true时,将打印出 ...

  8. PM配置详解之一:企业结构

    1.维护计划工厂 功能说明 在公司结构中定义维护工厂(通常已经作为后勤工厂存在)和维护计划工厂(简称计划工厂). 维护工厂:设备所安装的位置,如某机组安装在合营公司,那么合营公司就是此机组的维护工厂, ...

  9. lvs keepalived 安装配置详解【转】

    lvs keepalived 安装配置详解 张映 发表于 2012-06-20 分类目录: 服务器相关 前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较 ...

最新文章

  1. 16 分频 32 分频是啥意思_Verilog中任意分频的实现
  2. 每次都觉得很神奇的JS
  3. android编译产生的apk或so不安装 .
  4. 【Tools】MarkDown教程(一)-MarkDown简介
  5. python编的俄罗斯方块游戏_python编写俄罗斯方块
  6. Haar特征与积分图—概念解析
  7. 某个网页一直不停刷新_利用浏览器做网页长截图
  8. Kubernetes 上对应用程序进行故障排除的 6 个技巧
  9. arpspoof渗透工具使用方法详解+实战
  10. 二叉树的前中后序遍历
  11. 使用echarts实现半圆饼图
  12. IDEA使用有道翻译插件
  13. java截取文件名后缀
  14. 详谈Scrum和看板的区别
  15. Recurrent Neural Network(循环神经网络)
  16. python DataFrame数据合并 merge()、concat()方法
  17. 汽车电子行业开发者的内功心法:汽车软件开发V模型
  18. 四象限法推导lm曲线_怎样提出研究问题?四象限法
  19. 用户密码的加密解密操作(前端加密,后端解密)
  20. Cloudreve搭建私人云盘

热门文章

  1. recycleview多条目展示
  2. Docker搭建持续集成平台jira
  3. Spring为什么需要使用三级缓存?
  4. 树莓派基础实验11:U型光电传感器实验
  5. 一个40岁老程序员的学习之路,在别人为“中年危机”而忧愁时,你可以淡然处之
  6. Hadoop源代码分析(完整图文版) part 1
  7. .net高级技术(class0515)
  8. 付宇泽20190919-5 代码规范,结对要求
  9. 拦截器重定义及user系统的安全问题
  10. 一扩四(​FE8.1)USB转接和一扩七(FE2.1)USB原理图和PCB分享