zoukankan      html  css  js  c++  java
  • Linux操作篇之配置vSFTP

    在Linux系统中,比较常用的是vsftp(Very Secure FTP),使用的协议是FTP协议。虽然vsftp是解决了ftp传输的一些的安全性问题,但在实际的传输过程中依然使用的明文传输方式。

    一、vsftp两种连接方式。

    1、控制连接:使用端口21,也成为命令信道,主要是用于建立连接、认证过程。这个端口是一直处于监听的状态。

    2、数据连接:使用端口20(或在某些模式下,指定的端口范围中的任意端口),也称为数据信道,主要用于文件数据的传输。这个端口只有在进行文件传输时才会打开。

    二、vsftp两种连接模式。

    1、被动模式

    2、主动模式

    三、vsftp的两种传输模式

    1、Binary模式:这一模式下,不对数据进行任何处理。适用于可执行文件、压缩文件及图片等。

    2、ASCII模式:这一模式下,自动适应目标操作系统的一些不同的地方,如回车,结束符等。适用于文本文件。

    四、三种登录验证方式(我这里测试将SELinux与防火墙关闭)

    1、匿名用户登录

    当安装完成并且正常启动vsftp服务后,自动设置的便是匿名用户登录;账户名:ftp或anonymous;无密码;登录的目录/var/ftp/;默认的权限是可读取(下载)不可写入(上传)。

    步骤:

      (a)配置文件(/etc/vsftpd/vsftpd.conf)。

      anonymous_enable=YES  #开启匿名模式

      anon_umask=022  #匿名用户上传文件的权限掩码

      anon_root=/var/ftp  #匿名用户的活动的根目录

      anon_upload_enable=YES  #允许匿名用户上传

      anon_mkdir_write_enable=YES  #允许匿名用户新建目录

      anon_othet_write_enable=YES  #开放其他的写入权限(重命名、覆盖、删除)

      anon_max_rate=0  #上传或下载时的速率(0代表不限速,单位bytes/s)

      (b)需要写入的目录的其他用户具有写权限。

      

      缺点:文件目录杂乱无章、容易造成文件修改或者丢失的情况

    2、本地用户登录

    为了解决上面的缺点,可以使用本地用户登录的模式进行配置,这样每个用户都有自己的账号、密码、活动目录等信息,这样可以杜绝上面的一些问题。

    账号存放(/etc/passwd);密码存放(/etc/shadow);活动目录:用户的家目录且只有对应的用户有此目录的7权限(drwx------);

    步骤:

      (a)创建用户使用(useradd -r -s /sbin/nologin  name),来建立无法登录shell的用户

      (b)修改主配置文件(/etc/vsftpd/vsftpd.conf)

      local_enable=YES  #启用本地用户模式

      local_umask=022  #设置本地用户上传文件目录的权限掩码

      local_root=/var/ftp  #设置本地用户的FTP根目录

      chroot_local_user=YES  #用户活动目录最高执行到根目录

      local_max_rate=0  #限制传输速度

      ftpd_banner=Hello  #登录时的欢迎信息

      userlist_enable=YES & userlist_deny=YES  #设置黑名单(禁止/etc/vsftpd/ftpusers中的用户登录,若没有需手动建立,一个用户名占一行)

      userlist_enable=YES & userlist_deny=NO  #设置白名单(仅允许/etc/vsftpd/ftpusers中的用户登录,若没有需手动建立,一个用户名占一行)

      缺点:由于账号、密码都存在于系统账户、密码的存储位置,当出现大量用户时,极易出现问题。

    3、虚拟用户登录

    为了解决上面的缺点,虚拟用户模式是将用户名、密码等信息存在于数据库文件中(/etc/vsftpd/vsftpd.db,需手动建立)。

    步骤:

      (a)建立存放用户名与密码的数据库文件

      首先建立一文件(vsftpduser),内容是账户名、密码,按照一行用户名一行密码的形式排列,单行用户名,双数行为密码。

      使用(db_load -T -t hash -f  vsftpduser  vsftpd.db),其中   -T是指将普通文件转化为数据库文件;-t是使用hash加密方式;-f 是源文件;vsftpd.db是加密后的数据库文件

      chmod 600 vsftpd.db(将vsftpd.db权限设置为600,保障文件安全)

      (b)创建一本地用户,其作用是将此本地用户的家目录做为虚拟用户的活动目录。(可指定其家目录位置)

      useradd  -d /var/vsftproot -s /sbin/nologin zhangsan

      让虚拟用户对映射的家目录具有读写权限

      chomd o+r /var/vsftproot

      chmod o+w /var/vsftproot

      由于只是使用此用户的家目录,并不需要登录,所以不需要设置密码。

      (c)虽然前面已创建了数据库文件,但是vsftpd服务并不会调用这个文件,所以需要修改配置文件(/etc/pam.d/vsftpd),使其调用之前的数据库文件。

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

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

      (d)修改主配置文件,使其支持并开启虚拟用户模式

      guest_enable=YES  #启用虚拟用户模式

      guest_username=zhangsan  #填写新建的作为映射的用户名(我上面新建的是zhangsan用户)

      user_config_dir=/etc/vsftpd/config  #这个目录内存放的是每个虚拟用户的相关配置文件。

      注:用于vsftpd默认本身是不支持虚拟用户的,所以/etc/vsftpd/config中的配置文件内的参数使用的是匿名用户的参数,文件名使用虚拟用户名命名即可。

    五、更改为被动模式

    pasv_enable=YES  #开启被动模式

    pasv_min_port=30000  #设置端口范围最小为30000

    pasv_max_port=40000  #设置端口范围最大为40000

  • 相关阅读:
    js没有重载
    零基础学习hadoop到上手工作线路指导(初级篇)
    hadoop1.x和2.x的一些主要区别
    LIBCURL教程
    钩子函数大全(2)
    Visual Studio快捷键
    Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发MapReduce的demo
    Hadoop2.7.1安装与配置
    超详细单机版搭建hadoop环境图文解析
    Windows下运行Hadoop
  • 原文地址:https://www.cnblogs.com/641055499-mozai/p/13281830.html
Copyright © 2011-2022 走看看