vsftp虚拟用户配置总结

原创 2014年07月21日 11:59:24

     工作中用到ftp传输文件,选择比较流行的vsftp,由于vsftp默认用系统用户登录,在外网环境传输数据,存在很大的安全隐患,原因是ftp明文传输,可以轻易抓包得出用户名和密码。如果vsftp用到的系统用户,登录shell设置为/bin/nologin,则vsftp也不能登录(测试过一次,大概是这样)。

      鉴于之前tomcat默认管理页面被利用的惨痛教训,下决心配置vsftp的虚拟用户,杜绝安全隐患。

      以下总结下流程和遇到的几个问题:

vsftp-3.0.2 的虚拟用户配置:

1. 生成虚拟用户的账号和密码

account.txt 奇数行为用户名,偶数行为密码

内容:

virtual_user1

paswd1

virutal_user2

paswd2

生成伯克利DB格式的数据库文件:db_load -T -t hash -f account.txt  /etc/vsftpd/account.db

2. 增加pam认证的支持

# vi /etc/pam.d/ftp 插入如下两行

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

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

注意,64位os,pam相关so存放在/lib64/security/目录下,32位os,pam相关so存放在/lib/security/目录下

源码编译vsftp时,需要安装pam-devel,否则生成的vsftp不支持pam认证。

可以ldd  vsftpd | grep libpam查看是否支持pam认证。

如果想取消虚拟用户功能,需要卸载pam-devel,重新编译vsftp。

本人测试时,编译支持了pam认证,即使注释掉配置文件vsftpd.conf中pam相关配置,也不能使用系统用户登录。

3. 增加虚拟用户配置(必需)

vim /etc/vsftpd/vuser/virtual

内容如下:

local_root=/mnt/virtual_ftpdata

write_enable=YES

download_enable=NO

anon_upload_enable=YES

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

anon_world_readable_only=NO

4.修改vsftpd.conf

增加:

guest_enable=yes           #开启虚拟用户功能

guest_username=root    #系统用户,虚拟用户的根目录对应于系统用户的根目录,不推荐root

pam_service_name=ftp   #此处的名字对应于/etc/pam.d/目录下ftp配置的文件名

user_config_dir=/etc/vsftpd/vuser   #虚拟用户配置目录

5. 重启vsftpd


以上是大致流程和关键节点操作,具体各配置项涵义略去不表,网上教程多,不容易出错,下面总结下本人配置时遇到的几个容易出错,且费时的问题。

1. pam认证支持,需要ldd vsftpd 查看是否有libpam,有则支持,无则不支持。

2. 根据测试结论:vsftpd一旦支持pam,系统用户就不能登录vsftp,如需取消pam,则需要在卸载pam-devel的情况下编译vsftpd。

3. vsftpd的根目录不能有写属性,否则vsftpd报错,chmod -w /mnt/virtual_ftpdata  去掉ftp目录的写属性,建议在去掉写熟悉前建立子目录,在子目录内存放数据。

4. 本人测试时,使用win7自带的ftp客户端命令测试,即使用quote  PASV修改ftp的数据连接方向,也不能建立数据连接,后来测试发现是win7自带的防火墙策略导致,windows server 2003测试则未出现上述问题。这也说明win7的防火墙策略默认是比较严格的。








vsFTP配置总结之虚拟用户及权限管控

1 需求 为了保证系统的安全性,现对系统中vsftpd服务进行调整,主要为禁止OS本地账户直接登录,采用虚拟账户;设置两个虚拟账户,一个用于上传更新(可读可写),一个用于下载(仅读);ftp根目...
  • u011457628
  • u011457628
  • 2014年02月14日 17:47
  • 7087

vsftp虚拟用户权限设置

首先安装vsftp db-4 斯蒂芬个http://hi.baidu.com/phpfool/item/d295fd5f6f960e3d33e0a981 mkdir -p /opt/ftp 创建用户 ...
  • feiniu5566
  • feiniu5566
  • 2013年10月30日 11:55
  • 1168

vsftp虚拟用户配置总结

工作中用到ftp传输文件,选择比较流行的vsftp,
  • hufmanjs
  • hufmanjs
  • 2014年07月21日 11:59
  • 245

vsftp 用户权限设置

vsftp 用户权限设置 指定用户权限
  • shuishen49
  • shuishen49
  • 2018年01月01日 14:37
  • 36

Vsftp虚拟用户配置

1:配置前准备: yum install pam* yum install db4* 首先安装PAM(用于用户认证)和DB4(用于生成虚拟用户的用户名密码的db文件)。 2、安装vsftpd yum...
  • wuliowen
  • wuliowen
  • 2016年05月08日 11:56
  • 7335

centos 6.5下 vsftp 虚拟用户配置

一:基本知识    1:虚拟用户:与系统无关联,不能登入系统,只能访问FTP服务器    2:vsftp的服务进程是vsftpd 3:vsftpd的配置文件是/etc/vsftpd/vsftpd.co...
  • a2500100455
  • a2500100455
  • 2015年08月31日 17:08
  • 5709

vsftp + pgsql 虚拟用户认证

 软件vsftpd /usr/ports/ftp/postgresql /usr/ports/database/pam_pgsql /usr/ports/security创建数据表su pgsqlcr...
  • HOOLOO
  • HOOLOO
  • 2008年02月04日 22:54
  • 804

浅谈linux vsftp虚拟用户配置与工作模式分析

最近公司要用ftp跟网站之间传输数据,综合考虑之后决定要使用虚拟用户,公司前端是一个基于iptables的防火墙,开启了防火墙的ftp侦测模组之后让我们接下来看看具体的配置过程      SFT...
  • u010391029
  • u010391029
  • 2015年06月11日 18:33
  • 1297

vsftp配置虚拟用户

vsftp配置虚拟用户 1、vsftp安装 由于系统是debian7,故直接通过apt-get来安装就行了。 sudo apt-get install vsftpd 2、...
  • CatEatApple
  • CatEatApple
  • 2016年04月06日 16:56
  • 1109

CentOS6.5配置vsftp虚拟用户全程记录

CentOS6.5配置vsftp虚拟用户全程记录一、 检查selinux是否开启,如果开启,请先关闭以便调试二、创建虚拟用户文本文件,添加虚拟用户和密码cd /etc/vsftpd/ touch f...
  • chenpenghuan
  • chenpenghuan
  • 2016年12月06日 12:37
  • 1955
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vsftp虚拟用户配置总结
举报原因:
原因补充:

(最多只允许输入30个字)