FTP服务器的搭建及创建虚拟用户进行认证访问

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

1 安装所需软件包:

yum install vsftpd db4-utils

2 建立虚拟用户映射的系统用户

useradd -d /home/test  -s /sbin/nologin test

chmod 700 /home/test/

3 配置虚拟用户

3.1 建立虚拟用户口令库文件

cd /etc/vsftpd/

vim vusers.txt  (第一行写 用户名,第二行写 密码,保存退出)

-----------------------------------------

test1

passwd1

test2

passwd2

-----------------------------------------

3.2 利用口令库文件生成hash认证文件

db_load -T -t hash -f vusers.txt /etc/vsftpd/vusers.db

chmod 600 /etc/vsftpd/vusers.db

3.3 建立虚拟用户所需的PAM配置文件

vim /etc/pam.d/vusers

---------------------------------------------------------------------

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers

--------------------------------------------------------------------

3.4 对不同虚拟用户创建不同的配置文件,权限不同

mkdir /etc/vsftpd/vusers

mkdir /home/test/{test1,test2}

vim /etc/vsftpd/vusers/test1

--------------------------------------------------------------------

#虚拟用户的家目录

local_root=/home/test/test1

#允许本地用户在服务器执行写入(上传)操作

write_enable=YES

#虚拟用户具有与本地用户一样的权限

virtual_use_local_privs=YES

--------------------------------------------------------------------

vim /etc/vsftpd/vusers/test2

--------------------------------------------------------------------

#虚拟用户的家目录

local_root=/home/test/test1

#设置虚拟用户不具有与本地用户一样的权限

virtual_use_local_privs=no

#允许本地用户在服务器执行写入(上传)操作

write_enable=YES

#开放下载权限

anon_world_readable_only=no

#开放上传权限

anon_upload_enable=yes

--------------------------------------------------------------------

4   配置vsftp主配置文件

vim /etc/vsftpd/vsftp.conf

--------------------------------------------------------------------

#禁止匿名用户登录

anonymous_enable=NO

#允许本地用户登录ftp服务器

local_enable=YES

#设置服务器上本地用户创建文件的权限掩码

local_umask=022

#启用日志文件功能

xferlog_enable=YES

#日志文件存放路径

xferlog_file=/var/log/vsftpd.log

#启用标准的日志格式

xferlog_std_format=YES

#主动模式下,启用默认的20端口进行数据传输

connect_from_port_20=YES

#被动模式

#pasv_enable=yes

#pasv_min_port=4500

#pasv_max_port=5000

#限制用户活动在家目录下

chroot_local_user=YES

#vsftpd以独立的服务方式运行

listen=YES

#启用允许用户访问的列表

userlist_enable=YES

#仅允许用户访问列表文件中的用户登录

#NO为白名单,YES为黑名单

userlist_deny=NO

#允许访问的用户列表存储文件

userlist_file=/etc/vsftpd/user_list

#检查/etc/hosts.allow和/etc/hosts.deny文件来控制主机访问

tcp_wrappers=YES

#最多允许的客户端

max_clients=10

#每个ip最多允许的连接数

max_per_ip=100

#虚拟用户使用PAM认证方式,名称需要和/etc/pam.d/下的名称一致

pam_service_name=vusers

#开启虚拟用户访问权限

guest_enable=yes

#设置虚拟用户的映射的系统用户

guest_username=test

#设置虚拟用户的配置文件目录

user_config_dir=/etc/vsftpd/vusers

----------------------------------------------------------------------

5 编辑允许访问的用户列表

vim /etc/vsftpd/user_list

------------------------------------------------------------------------

test1

test2

------------------------------------------------------------------------

6 启动vsftpd服务并加入开机启动

service vsftpd restart

chkconfig vsftpd on

7 附:virtual_use_local_privs参数

当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;

当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。

当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,

anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。

转载于:https://blog.51cto.com/fuvip/2043477

FTP服务器的搭建及创建虚拟用户进行认证访问相关推荐

  1. vsftpd创建虚拟用户,解决本地用户不安全问题,增强服务器安全性

    转载来源 : vsftpd创建虚拟用户,解决本地用户不安全问题,增强服务器安全性 : 摘要: 前面两篇介绍VSFTPd服务器的匿名用户和本地用户访问,基本满足文件的上传下载任务,今天给大家说说虚拟用户 ...

  2. ftp账号密码登入和虚拟用户创建以及登入

    用户密码登入ftp服务 1. 首先修改配置文件 vi /etc/vsftpd/vsftpd.conf 2. 修改配置文件 Vi /etc/vsftpd/ftpusers Vi /etc/vsftpd/ ...

  3. linux中ftp服务器的搭建和配置

    linux中的ftp服务的搭建及配置 1 ftp概述 2 ftp服务的搭建 2.1 ftp的客户端 2.2 FTP的服务端 2.2.1 服务端软件vsftpd的下载 2.2.2 vsftp的环境配置 ...

  4. FTP服务器的搭建与配置

    一.FTP服务器简介 FTP(File Transfer Protocol):文件传输协议,是一个客户机/服务器系统.使用FTP的用户需要经过验证后才能登录 FTP:文件传输协议,工作模式[客户端/服 ...

  5. 操作:FTP服务器的搭建

    实验目的: 掌握FTP服务器的配置方法. 掌握FTP配置基于虚拟用户的服务器搭建方法 实验要求: 以学号和姓名为虚拟用户的FTP服务器搭建 实现利用不同虚拟用户登录FTP服务器 实现不同用户的权限控制 ...

  6. lede更改软件源_Linux的上传和下载——Ubuntu中软件的安装和ftp服务器的搭建

    [Linux操作系统]Linux的上传和下载--Ubuntu中软件的安装和ftp服务器的搭建 学习完Linux终端命令以后,我们现在要考虑的是怎么实现Linux中文件的上传和下载,这就是我们本篇博客要 ...

  7. FTP服务器的搭建与安全配置

    FTP可以说是Internet上使用非常广泛的一种通讯协议了.它工作在OSI模型的第7层,是TCP/IP的一种具体应用.FTP采用基于TCP的可靠连接:监听21端口来等待控制连接请求,当连接建立后,采 ...

  8. linux下ftp服务器的搭建

    http://www.cublog.cn/u3/93926/showart_1874130.html RHEL4中ftp服务器的搭建 首先修改配置文件使主机获得永久ip地址 # vi /etc/sys ...

  9. FTP服务器构建与维护,ftp服务器的搭建与三种访问途径

    FTP服务器的搭建与三种访问途径 FTP服务介绍 FTP服务(File Transfer Protocol,文件传输协议)是典型的C/S结构 的应用层协议,需要由服务端软件,客户端软件两部分共同实 现 ...

最新文章

  1. Android环境搭建和Android HelloWorld—Android开发环境搭建
  2. Windows下用C语言获取进程cpu使用率,内存使用,IO情况
  3. python将图像转换为8位单通道_【图像处理】OpenCV系列三十五--- equalizeHist函数详解...
  4. rancher添加私有仓库_CocoaPods搭建私有库
  5. win10电脑pppoe拨号模块损坏_电脑维修免费在线咨询
  6. 基于visual Studio2013解决C语言竞赛题之0502最小数替换
  7. 数据库-索引-普通索引-唯一索引
  8. 一个内存增长问题的分析和处理(二)——valgrind工具的用法
  9. web后端语言_web前端学习路线图_快速入门web前端学习路线图
  10. 虚拟内存和swap分区的关系
  11. [About Design] 各类素材网站
  12. 如何去掉图片上的logo
  13. CAD删除全部文字(网页版)
  14. 厦门大学计算机专业录取分数线2019,2019厦门大学各省录取分数线是多少
  15. ME21N/ME22N/ME23N屏幕增强BADI ME_GUI_PO_CUST
  16. “贵州与您相约”英文网站8月18日正式上线;大华股份助力长兴打造景区数字化管理样板 | 全球旅报...
  17. 十七点学完安全知识超级详细了解进程和病毒知识 转载
  18. 华为认证是自学还是报班合适
  19. 人工智能的前世今生,别被满大街的人工智能所迷惑
  20. 达人评测 i5 12500h和r7 6800h 选哪个好

热门文章

  1. 西门子s7 计算机通讯,PLC与计算机通讯连接
  2. 计算机任务类别 搜索服务,服务删除后仍要求启动 计划任务里找不到 该怎么办...
  3. c语言 冒泡排序算法,排序算法_冒泡排序改进(c语言实现)
  4. linux qt 系统时间,QT在linux环境下读取和设置系统时间
  5. 鸿蒙系统下载地址_华为鸿蒙代码全开源,老规矩:先跑个Hello World....
  6. php fastdfs扩展,php如何安装fastdfs扩展
  7. mysql数据表中取几列_MySQL查询数据表中数据记录(包括多表查询)
  8. Reflect对象的设计目的有这样几个
  9. mysql 索引 insert_mysql优化:定期删数据 + 批量insert + 字符串加索引为什么很傻
  10. 表达式必须具有与对应表达式相同的数据类型_跟光磊学Java开发-运算符和表达式...