拓扑园

  • O&M
    • Universal部署
    • PHP+VUE+Laravel相关
  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • Oracle基础知识
    • LLL的Oracle培训(分类)
    • LLL的docker培训(分类)
    • 标准化文档系列--(分类)
    • Oracle核心经典分析(分类)
    • 图灵小队----(分类并包含以下文章)
    • --MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • --PG安装配置于RHEL/9X系列-运行环境最优配置
    • --自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • --图灵小队—Oracle/PostgreSQL下创建一个用户测试表(自行定义数据行)
    • --图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • --图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • --图灵小队-Oracle常用性能查询SQL语句(文章)
    • --图灵小队-Oracle数据库上线前检查(文章)
    • --图灵小队-Oracle常用SQL语句(文章)
    • --图灵小队—Linux/Oracle脚本/MySQL合集(持续更新)
    • --图灵小队-Oracle技巧记录(文章)
    • ADG
    • RAC
    • ASM
    • OGG
    • RMAN
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
  • MySQL
    • MySQL数据库规范
    • MySQL项目案例
    • MySQL安装配置
    • MYSQL集群项目
    • MySQL常见处理
    • MySQL-Sysbench专题
    • MySQL-Percona Toolkit专题
  • Linux
    • Shell编程
    • kubernetes
    • docker
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 新框架系统集合
    • 工作文档
    • EBS数据文件扩容
    • VMware虚拟化
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • K-Studing
    • D8-Python学习
    • Oracle/MySQl等面试题
    • LG-MySQL
    • LG-Docker/K8S
    • LG-PostgreSQL
    • LG-ORACLE_BBED
    • LG-ORACLE
    • LG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
天高任鸟飞
Oracle/MySQL数据库恢复/数据迁移/生产规范报告技术交流:TEL:18562510581(微信同号);加微信入群
  1. 首页
  2. Linux
  3. 正文

Linux vsftpd高级部署及配置--虚拟用户配置、SSL配置

2020年5月8日 828点热度 0人点赞 0条评论

目录

  • 一、创建虚拟用户模式
  • 二、FTP的SSL配置[即FTPS(FTP over SSL),与SFTP(SSH FTP)不同]

(转)https://www.cnblogs.com/halberd-lee/p/11734363.html

(转)https://blog.51cto.com/aceruser/647241

一、创建虚拟用户模式

vsftpd服务器同时支持匿名用户、本地用户和虚拟用户三类用户账号,使用虚拟用户账号可以提供集中管理的FTP根目录,方便了管理员的管理,同时将用于FTP登录的用户名、密码与系统用户账号区别开,进一步增强了FTP服务器的安全性。

下面我们就来实现这个vsftp的虚拟用户登录的功能。

1、建立虚拟ftp的帐号和密码数据文件
     vim /etc/vsftpd/vusers.list
     admin
     123
     john
     456   (奇数行为帐号,偶数行为密码)
   保存退出。
   因为我们要使用哈希对列表进行转换,以便能过被vsftp服务所识别,所以安装这个提供哈希转换的软件包 db4-utils
   yum install db4-utils
   对创建的帐号和密码文件进行哈希转换
   db_load -T -t hash -f  vusers.list vusers.db
   为了数据的安全修改文件的权限
   chmod 600 /etc/vsftpd/vusers.*   

2、创建ftp根目录及虚拟用户映射的系统用户
   mkdir /var/ftproot  虚拟用户登录ftp进入的目录
   useradd -d /var/ftproot -s /sbin/nologin virtual 创建虚拟用户在主机上的映射用户
   chmod 755 /var/ftproot
3、建立支持虚拟用户的PAM认证文件
   vi /etc/pam.d/vsftp.vu 内容如下:
   #%PAM-1.0
   auth required pam_userdb.so db=/etc/vsftpd/vusers
   account required pam_userdb.so db=/etc/vsftpd/vusers
4、在vsftpd.conf文件中添加支持配置
   vim /etc/vsftpd/vsftpd.conf
   anonymous_enable=no     拒绝匿名用户登录
   local_enable=YES                开启虚拟用可以登录的前提
   write_enable=YES               开启ftp的写权限
   anon_umask=022
   guest_enable=YES              允许虚拟用户登录
   guest_username=virtual    指定虚拟用户的映射用户名
   pam_service_name=vsftpd.vu          指定我们的认证文件 
   user_config_dir=/etc/vsftpd/user_conf
  chroot_list_file=/etc/vsftpd/chroot_list
5、chroot_list中加入admin用户
6、#执行以下命令
[root@localhost ~]# mkdir /etc/vsftpd/user_conf
[root@localhost ~]# cd /etc/vsftpd/user_conf
[root@localhost ~]# vi /etc/vsftpd/user_conf/admin
#加入以下内容 拥有所有权限
local_root=/var/ftproot
#如果不能读写操作 可能是目录权限不够需要设置权限 试试看 [root@localhost ~]# chmod 777 /var/ftproot

6、配置完成,重启服务进行测试
   service vsftp resart

问题报错::
响应: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
分析:
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
问题解决:
方法一:要修复这个错误,可以用命令chmod a-w /var/ftproot去除用户主目录的写权限
方法二:你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES  

最终配置

# Example config file /etc/vsftpd/vsftpd.conf
anonymous_enable=no
local_enable=yes

write_enable=YES
#
# Uncomment this to enable any form of FTP write command.
local_umask=022

anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
# ASCII mangling is a horrible feature of the protocol.
ascii_upload_enable=YES
ascii_download_enable=YES

chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

#vsftp,4中的文件名一致
pam_service_name=vsftp.vu
userlist_enable=YES
tcp_wrappers=YES

#vsftp user, 新增 vsftpuser, useradd 添加用户 
guest_enable=YES
#vsftpuser即5中新建的用户名 
guest_username=virtual
virtual_use_local_privs=NO
file_open_mode=0777
anon_umask=0222
reverse_lookup_enable=no  #vsftp的配置文件默认开启了DNS反向解析,登录会很慢,设置no即可
allow_writeable_chroot=YES

#用户配置目录,不通的用户对应不通的文件. 文件名为用户名,和6中一致
user_config_dir=/etc/vsftpd/user_conf/

allow_writeable_chroot=YES

 

二、FTP的SSL配置[即FTPS(FTP over SSL),与SFTP(SSH FTP)不同]

[root@localhost ~]# cd /etc/pki/tls/certs/
[root@localhost ~]# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem
[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf
ssl_enable=YES(开启vsftpd对ssl协议的支持)
ssl_sslv2=YES(支持SSL v2 protocol)
ssl_sslv3=YES(支持SSL v3 protocol)
ssl_tlsv1=YES(支持TSL v1)
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem(证书的路径)

ssl_enable=YES
ssl_sslv2=YES
ssl_sslv3=YES
ssl_tlsv1=YES

这样重启vsftpd 就可以用客户端来尝试进行SSL加密连接了 。

相关参数说明:

使用Filezilla客户端就可以实现ssl ftp登录

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2020年5月9日

admin

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号