配置的思路:使用帐号和密码登录FTP服务器,每个用户只能登录到自己用户名的目录中,可以增删改查文件。 -- 使用VSFTP的虚拟用户和chroot目录的配置。

安装vsftp。使用pam管理vsftp的虚拟用户。

vsftp使用的目录/ftp vsftp使用的本地用户:vsftpd

因为是使用vsftpd的虚拟用户,所以我们需要先在系统中创建一个用户,并且该用户对/ftp目录具有可读可写可执行权限。

在iptables中开放20、21、被动模式端口范围(30000-35000),并加载FTP驱动模块

modprobe ip_nat_ftp

modprobe ip_conntrack_ftp

/etc/vsftpd.conf文件内容

listen=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

# 指定vsftp欢迎信息及日志记录格式和日志文件路径

dirmessage_enable=YES

use_localtime=YES

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

ftpd_banner=Welcome to nixCraft ftp server

connect_from_port_20=YES

chroot_local_user=YES

chroot_list_enable=NO

allow_writeable_chroot=YES

# 使用的本地账户的名称

guest_enable=YES

guest_username=vsftpd

secure_chroot_dir=/var/run/vsftpd/empty

# 指定使用pam.d目录中的哪个文件

pam_service_name=vsftpd

# 启用被动模式、被动模式使用的端口号范围及被动模式使用的公网IP

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=31000

pasv_address=61.139.2.69

#虚拟用户目录

user_config_dir=/etc/vsftpd/user_conf

# vsftp使用ssl key方式

rsa_cert_file=/etc/ssl/private/vsftpd.pem

rsa_private_key_file=/etc/ssl/private/vsftpd.pem

ssl_enable=YES

allow_anon_ssl=NO

force_local_data_ssl=YES

force_local_logins_ssl=YES

ssl_tlsv1=YES

ssl_sslv2=NO

ssl_sslv3=NO

require_ssl_reuse=NO

ssl_ciphers=HIGH

#结合/etc/hosts.allow和/etc/hosts.deny限制ip访问vsftpd服务。

tcp_wrappers=YES

修改/etc/hosts.deny

加入vsftpd : ALL

修改/etc/hosts.allow

加入vsftpd:.admin99.net

vsftpd:192.168.0.

vsftpd:192.168.0.0/255.255.255.0

第一行表示,只有admin99.net这个域里的主机允许访问vsftpd服务,注意admin99.net前面的那个点(.);

/第二行表示,只有192.168.0这个网段的用户允许访问vsftpd服务,注意0后面的点(.);

第三行表示,只有192.168.0这个网段的用户允许访问vsftpd服务,注意这里不能写为192.168.0.0/24。

/etc/pam.d/vsftpd文件内容 ,这个文件就是使用的用户名和密码的txt生成的db数据文件。/etc/vsftpd/user_config这个文件就是.db文件路径

auth sufficient pam_userdb.so db=/etc/vsftpd/user_config

account sufficient pam_userdb.so db=/etc/vsftpd/user_config

虚拟用户配置文件内容/etc/vsftpd/user_conf/username

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_root=/ftp/FTPUser

该配置内容为具有可读可写权限。

创建一个本地系统用户

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

chown vsftpd:vsftpd /ftp

创建文本文件loguser.txt

格式如下:

username

password

于是,我们/home/loguser.txt文件的内容为

cd  /home                     切换到/home目录

sudo  touch  /home/loguser.txt         创建账户和密码文件

sudo  gedit   /home/loguser.txt

然后将下面的账户文件字符粘帖入loguser.txt中,注意一行一行输入。

注意:奇数行为账户名,偶数行为密码。也就是1.3.5.等行为用户名,2.4.6行为密码;

最后一行需要回车(否则建立数据库文件时无法识别最后一行,导致报奇数行错误)。

db1

db100

db2

db200

db3

db300

test

生成数据库

sudo db_load -T -t hash -f /home/loguser.txt /etc/vsftpd_login.db

最后设置一下数据库文件的访问权限

sudo chmod 600 /etc/vsftpd_login.db

在ubuntu下要启动、停止、重启vsftpd,我们必须使用以下命令:

sudo service vsftpd stop

sudo service vsftpd start

sudo service vsftpd restart

vsftp配置ssl

1.生成证书

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

2.在vsftpd.conf配置文件中增加ssl配置项

rsa_cert_file=/etc/ssl/private/vsftpd.pem

rsa_private_key_file=/etc/ssl/private/vsftpd.pem

配置强制使用ssl

ssl_enable=YES

allow_anon_ssl=NO

force_local_data_ssl=YES

force_local_logins_ssl=YES

After this we configure the server to use TLS, which is actually a successor to SSL, and preferred:

ssl_tlsv1=YES

ssl_sslv2=NO

ssl_sslv3=NO

Finally, we will require add some additional options to flesh out our configuration file:

require_ssl_reuse=NO

ssl_ciphers=HIGH

总结:vsftp使用虚拟用户访问主要使用了单用户配置的方式。

使用了pam模块。在使用虚拟用户上传下载文件的时候映射到本地新建的用户。

本文转自ting2junshui51CTO博客,原文链接: http://blog.51cto.com/ting2junshui/1843958,如需转载请自行联系原作者

vsftp 使用虚拟用户相关推荐

  1. vsftp建立虚拟用户不同目录分配不同权限操作步骤详解

    这篇文章主要介绍了vsftp建立虚拟用户不同目录分配不同权限操作步骤详解,大家参考设置自己的FTP服务器吧vsftpd服务器同时支持匿名用户.本地用户和虚拟用户三类用户账号,使用虚拟用户账号可以提供集 ...

  2. 让Vsftp支持虚拟用户

    让Vsftp支持虚拟用户                   --转载 http://blog.chinaunix.net/uid-317994-id-2133014.html          很早 ...

  3. centos5.8 安装配置vsftp虚拟用户

    vsftp因为公司时不时要用,也不是经常弄ftp,不常用就老是忘记有些东西,所以就在网上查些资料和自己遇到的一些问题结合起来写一个文档,以后需要使用ftp的时候搭建比较方便,使用虚拟用户不用担心用户登 ...

  4. VSFTPD的虚拟用户管理配置

    上一节我们通过系统用户完成了VSFTPD的部署,现在DB工具实现虚拟用户的管理.文章只是自己工作中的使用说明如有写作错误,欢迎大家指出错误.... 三.虚拟用户 需求:建立user1.user2两个用 ...

  5. centos创建vsftpd虚拟用户

    CentOS Vsftpd服务器(虚拟用户建立) 一.安装vsftpd服务相关组件 需要安装组件vsftpd pam db4 db4-utils [root@CentOS /]# yum -y ins ...

  6. Vsftp与PAM虚拟用户

    Vsftp与PAM虚拟用户 使用yum 安装vsftp yum install vsftpd pam pam-* db4 db4-* 创建一个保存用户及密码的文件 cd /etc/vsftpd/ to ...

  7. vsftp虚拟用户无法上传文件,解决办法

    vsftp虚拟用户无法上传文件,解决办法 1.打开/etc/vsftpd 目录中的vsftpd.conf文件,查找:guest_username=xxx,这里指的是vsftpd虚拟用户对应的实 际系统 ...

  8. centos安装vsftp后的虚拟用户设置

    2019独角兽企业重金招聘Python工程师标准>>> 安装好vsftpd之后,有的时候需要配置虚拟用户,可以先写一个login.txt,奇数行为用户名,偶数为用户名密码,例如: u ...

  9. 使用vsftp虚拟用户实现安全访问控制

    一.ftp连接方式 1.命令连接 ftp在与用户交互时,首先打开的是TCP的21号端口,建立命令连接,这个连接会始终存在,直到用户输入bye的那一刻,才断开命令连接. 2.数据连接 1)主动连接 主动 ...

最新文章

  1. 10分钟掌握RocketMQ的核心知识
  2. 用R语言把数据玩出花样
  3. Python3 property属性
  4. 修改UBOOT和LINUX调试串口(TI达芬奇芯片--DM6467)
  5. volatile、static
  6. wx.checkjsapi是写在config里面吗_用Python写一个程序,解密游戏内抽奖的秘密
  7. c语言数据结构插入算法说明,C语言数据结构插入算法
  8. srsLTE源码学习:NAS非接入层、PDCP分组数据汇聚协议、PDU 协议数据单元 头文件
  9. sql:命名管道管道程序_学习SQL:命名约定
  10. java生成sm4算法的对称密钥_技术分享丨这是一篇简单的小科普——什么是对称加密算法?(下)...
  11. ES6 走马观花(ECMAScript2015 新特性)
  12. 算法洗脑系列(8篇)——第四篇 枚举思想
  13. 网易云音乐歌词下载 C#
  14. 天然气压缩因子计算软件_天然气压缩机组安全阀的设置
  15. java 字符串中提取数字_java从字符串中提取数字的简单实例
  16. 计算机清理垃圾代码,你也可以写代码系列,一键清除系统垃圾文件的代码(超简单)-清除垃圾文件...
  17. 从转载阿里开源项目 Egg.js 技术文档引发的“版权纠纷”,看宽松的 MIT 许可该如何用?
  18. 计算机启动修复怎么还原,电脑开机出现系统恢复选项该怎么办
  19. 仓库设计之ER图箭头讲解
  20. 植物大战僵尸中文年度版

热门文章

  1. 第四:Pytest框架之命令行参数(二)
  2. 第一:MySQL安装和配置(超详细)
  3. python同花顺交易接口_开启量化第一步!同花顺iFinD数据接口免费版简易操作教程...
  4. Node.js运行模式与应用组成部分
  5. [Ext JS 4] 实战之 ComboBox 和 DateField (消失之解决办法)
  6. Ext3 -- Form 实例。 用来migrate file 数据到DB用的
  7. tomcat内存优化
  8. 自己的php网站没有referer,缺少php – $_SERVER [‘HTTP_REFERER’]
  9. php curl post上传图片,php curl上传图片问题
  10. K-th Number