多种用户认证方式配置

第一种:通过系统用户访问

VsFtp在默认情况下允许系统账户(/etc/passwd)使用,使用系统账户登录存在很大的安全问题。

下面两种方法可以一定程度上提高安全性:

1:如只想让用户登录FTP用,而不需要登录到系统,可以在建立用户的同时指定登录Shell为/sbin/nologin

2:通过配置文件,Chroot所有的用户不可以离开自己宿主目录

Chroot_local_user=YES 所有用户登录FTP时不可以离开自己家目录

Chroot_list_enable=YES  指定不能离开自己家目录的用户,只有当Chroot_local_user=YES 时才生效

chroot_list_file 指定不能离开家目录的用户,可以将用户名一个一行写在该文件里

local_root  指定所有用户的根目录  比如chroot_root=/var/ftp/pub

此外,还可以通过设置各种权限保证系统安全,在此就不一一罗列

第二种:通过本地数据文件实现虚拟用户的访问,此种情况主要适用于用户比较少及变化不频繁的情况下适用

1:安装用于生成数据库的软件包db4-utils:

rpm -ivh db4-utils-4.3.28-9.fc6.i386.rpm

2:创建本地映射用户

useradd -d /home/ftpsite virtual

mkdir /home/ftpsite

chown virtual.virtual /home/ftpsite

ls -ld /home/ftpsite

drwxr-sr-x 2 virtual virtual 48 2006-08-18 05:48 /home/ftpsite

3:修改配置文件

anonymous_enable=NO

local_enable=YES

write_enable=NO

guest_enable=YES

guest_username=virtual

4:生成虚拟用户文件,用户密码各一行

tony ----->用户

tonypass ----->密码

etony

etonypass

5:生成虚拟用户数据文件

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

chmod 600 /etc/vsftpd_login.db

6:修改PAM认证文件/etc/pam.d/vsftpd

auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login

account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

7:启动服务,既可以用tony和etony登录FTP

/etc/init.d/vsftpd start|restart

第三种:通过Mysql实现虚拟用户访问

1:修改/etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES  PAM方式此处必须为YES,如果不是将出现错误

guest_enable=YES

guest_username=vsftpd 这两行的意思是采用虚拟用户形式

virtual_use_local_privs=YES 虚拟用户和本地用户权限相同

2:建立数据库和表,授权一个用户

mysql>create table user(name char(20),passwd char(20));

mysql>insert user values('test1',password'(12345)');

mysql>insert user values ('test2',password'(54321)');

mysql>grant select on ftpd.user to ftpd@localhostidentified by '123456';

3:修改PAM认证文件/etc/pam.d/vsftpd

auth required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=2

account required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=2

备注:

1、vsftpd配置参数详细整理

#接受匿名用户

anonymous_enable=YES

#匿名用户login时不询问口令

no_anon_password=YES

#匿名用户主目录

anon_root=(none)

#接受本地用户

local_enable=YES

#本地用户主目录

local_root=(none)

#仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录

check_shell=YES

#若启用此选项,userlist_deny选项才被启动

userlist_enable=YES

#若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录

userlist_deny=NO

#可以上传(全局控制).

write_enable=YES#本地用户上传文件的umask

local_umask=022

#上传文件的权限配合umask使用

#file_open_mode=0666

#匿名用户可以上传

anon_upload_enable=NO

#匿名用户可以建目录

anon_mkdir_write_enable=NO

匿名用户其它的写权利(更改权限?)

anon_other_write_enable=NO

如果设为YES,匿名登入者会被允许下载可阅读的档案。默认值为YES。

anon_world_readable_only=YES

#如果开启,那么所有非匿名登陆的用户名都会被切换成guest_username指定的用户名

#guest_enable=NO

所有匿名上传的文件的所属用户将会被更改成chown_username

chown_uploads=YES

匿名上传文件所属用户名

chown_username=lightwiter

#如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录

chroot_list_enable=YES

#管控是否可用ASCII 模式下载。默认值为NO。

ascii_download_enable=YES#空闲连接超时

idle_session_timeout=600

#数据传输超时

data_connection_timeout=120

#PAVS请求超时

ACCEPT_TIMEOUT=60

#PROT模式连接超时

connect_timeout=60#开启日记功能

xferlog_enable=YES

#使用标准格式

xferlog_std_format=YES

#当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.

#log_ftp_protocol=NO

#允许使用pasv模式

pasv_enable=YES

#关闭安全检查,小心呀.

#pasv_promiscuous+NO

#允许使用port模式

#port_enable=YES

#关闭安全检查

#prot_promiscuous

#开启tcp_wrappers支持

tcp_wrappers=YES

#定义PAM 所使用的名称,预设为vsftpd。

pam_service_name=vsftpd

#当服务器运行于最底层时使用的用户名

nopriv_user=nobody

#使vsftpd在pasv命令回复时跳转到指定的IP地址.(服务器联接跳转?)

pasv_address=(none)

#是否能使用ls -R命令以防止浪费大量的服务器资源

#ls_recurse_enable=YES

#是否使用单进程模式

#one_process_model

#绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式

listen=YES

#当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。

text_userdb_names=NO

#显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果

use_localtime=NO

#测试平台优化

#use_sendfile=YES

#login时显示欢迎信息.如果设置了banner_file则此设置无效

ftpd_banner=欢迎来到

FTP 网站.

#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容

dirmessage_enable=YES

#显示会话状态信息,关!

#setproctitle_enable=YES

#定义不能更改用户主目录的文件

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

#定义限制/允许用户登录的文件

userlist_file=/etc/vsftpd/vsftpd.user_list

#定义登录信息文件的位置

banner_file=/etc/vsftpd/banner

#禁止使用的匿名用户登陆时作为密码的电子邮件地址

banned_email_file=/etc/vsftpd.banned_emails

#日志文件位置

xferlog_file=/var/log/vsftpd.log

#目录信息文件

message_file=.message

#定义用户配置文件的目录

user_config_dir=/etc/vsftpd/userconf

#定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录来说的.

local_root=webdisk   此项设置每个用户登陆后其根目录为/home/username/webdisk

#匿名用户登陆后的根目录

anon_root=/var/ftp

#可接受的最大client数目

max_clients=100

#每个ip的最大client数目

max_per_ip=5

#使用标准的20端口来连接ftp

connect_from_port_20=YES

#绑定到某个IP,其它IP不能访问

listen_address=192.168.0.2

#绑定到某个端口

#listen_port=2121

#数据传输端口

#ftp_data_port=2020

#pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。

pasv_max_port=0

#pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。

pasv_min_port=0

#匿名用户的传输比率(b/s)

anon_max_rate=51200

#本地用户的传输比率(b/s)

local_max_rate=5120000

附: FTP 数字代码的意义 110 重新启动标记应答。 120 服务在多久时间内ready。 125 数据链路埠开启,准备传送。 150 文件状态正常,开启数据连接端口。 200 命令执行成功。 202 命令执行失败。 211 系统状态或是系统求助响应。 212 目录的状态。 213 文件的状态。 214 求助的讯息。 215 名称系统类型。 220 新的联机服务ready。 221 服务的控制连接埠关闭,可以注销。 225 数据连结开启,但无传输动作。 226 关闭数据连接端口,请求的文件操作成功。 227 进入passive mode。 230 使用者登入。 250 请求的文件操作完成。 257 显示目前的路径名称。 331 用户名称正确,需要密码。 332 登入时需要账号信息。 350 请求的操作需要进一部的命令。 421 无法提供服务,关闭控制连结。 425 无法开启数据链路。 426 关闭联机,终止传输。 450 请求的操作未执行。 451 命令终止:有本地的错误。 452 未执行命令:磁盘空间不足。 500 格式错误,无法识别命令。 501 参数语法错误。 502 命令执行失败。 503 命令顺序错误。 504 命令所接的参数不正确。 530 未登入。 532 储存文件需要账户登入。 550 未执行请求的操作。 551 请求的命令终止,类型未知。 552 请求的文件终止,储存位溢出。 553 未执行请求的的命令,名称不正确。

vsftp账号_关于VsFtp用户登录的几种认证方式相关推荐

  1. oracle用户登录的3种认证方式

    url:http://www.cnblogs.com/ivictor/p/4213823.html Oracle对于普通账户和超级管理员(指sysdba和sysoper)的认证机制不一样,前者是通过数 ...

  2. 魔方APP项目-06-用户注册,完成短信验证码的校验、基于Celery实现短信异步发送、用户登录,jwt登陆认证、服务端提供用户登录的API接口

    一.用户注册- 1.完成短信验证码的校验 application.utils.language.message,代码: class ErrorMessage():ok = "ok" ...

  3. 微信公众号与用户互动的8种交流方式

    说到微信公众号是现在大家在熟悉不过的了,每个人都会关注那么几个公众号,而现在公众号不管是企业.机构.个人都在运用的一个平台,企业用来传播自己的品牌以及产品的营销,机构.个人注册公众号也是这样一个理,在 ...

  4. vsftp账号_Linux下vsftp的重新安装和配置虚拟用户

    Linux下vsftp的重新安装和配置虚拟用户 上一篇 / 下一篇  2007-05-30 18:00:18 / 个人分类:Linux 重新安装和配置虚拟用户 以下都是在root用户下进行的 #tar ...

  5. linux+用户的shell,linux更换用户_更改linux用户登录shell的方法

    摘要 腾兴网为您分享:更改linux用户登录shell的方法,幸福钱庄,小学英语,我和你,万科物业等软件知识,以及光大app,视频解码包,dns修改软件,天天小说阅读器,微信跳一跳,企业管家,蚂蚁邦, ...

  6. linux怎么登陆另外一个账号,linux – 当其他用户登录时,如何在Debian xfc...

    我想阻止用户在其他用户登录时开始关机或重启.用户可以是TTY用户(Ctrl Alt F3)或来自客户端主机的ssh用户. 在OpenBSD中,我将polkit org.xfce.session.pol ...

  7. ad域帐号登录提示无法处理请求_面试官:说一下单点登录的几种实现方式

    Java面试笔试面经.Java技术每天学习一点 Java面试 关注不迷路 作者:张永恒 来源:https://www.cnblogs.com/yonghengzh/p/13712729.html 在 ...

  8. Django框架(十八)—— auth框架:用户登录、注册、认证

    auth模块 一.什么是author模块 Auth模块是Django自带的用户认证模块,可以实现包括用户注册.用户登录.用户认证.注销.修改密码等功能.默认使用 auth_user 表来存储用户数据. ...

  9. 前端把cookie写在父域里_单点登录的三种实现方式

    前言 在 B/S 系统中,登录功能通常都是基于 Cookie 来实现的.当用户登录成功后,一般会将登录状态记录到 Session 中,或者是给用户签发一个 Token,无论哪一种方式,都需要在客户端保 ...

最新文章

  1. 去掉[]中的英文(正则表达式)C#
  2. pytorch 函数clamp
  3. ECMAScript5 ES5
  4. mysql t-sql,将T-SQL转换为MySQL
  5. NOIP2018比赛总结
  6. 超大规模智能模型相关工作总结:编程实现框架、算法模型、微调技术和应用...
  7. 【剑指offer】面试题43:1~n整数中1出现的次数
  8. 大数据导入Excel
  9. 服务器虚拟化的毕业设计,虚拟化技术毕业论文题目精选
  10. 自己动手制作植物大战僵尸简单修改器
  11. 物体移动时按下Shift键加快速度
  12. 30多岁了,年薪多少才不会焦虑?
  13. Nouveau源码分析(三):NVIDIA设备初始化之nouveau_drm_probe
  14. 抖音直播间弹幕rpc学习
  15. 华科_图形学笔记_05_初探造型技术_02
  16. 搜狗浏览器的高速模式果然很流畅
  17. 叭叭一下Servlet的虚拟路径的映射
  18. 论文解读《STALLION:一个基于堆叠的原核赖氨酸乙酰化位点预测的集成学习框架》
  19. 1:基本初等函数的性质
  20. 【C刷题记录】地月折纸——对数使用

热门文章

  1. 关系数据库(数据库原理)
  2. “人”之为人:道德+技能+创新
  3. 内蒙古大学孙涛计算机学院,孙涛(博士)
  4. pycharm快捷键查看函数参数
  5. 讲讲期货的那点事——主力、交割和主力换月
  6. python基础学习DAY5——转自金角大王
  7. 原码 补码 反码 移码
  8. 红枣的尺寸外观缺陷视觉检测是如何进行的
  9. Ec/Io____C/I
  10. 文本文档的后缀名怎么显示和隐藏