vsftpd功能介绍

Wesley13
• 阅读 646

用户认证:

匿名用户:ftp,anonymous,对应Linux用户ftp,随便输密码,都能登录

系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow

虚拟用户:特定服务的专用用户,独立的用户/密码文件

nsswitch:networkservice switch名称解析框架

pam:pluggableauthentication module 用户认证

/lib64/security /etc/pam.d/ /etc/pam.conf

vsftpd服务
由vsftpd包提供

不再由xinetd管理

用户认证配置文件:/etc/pam.d/vsftpd

服务脚本:/usr/lib/systemd/system/vsftpd.service

/etc/rc.d/init.d/vsftpd

配置文件:/etc/vsftpd/vsftpd.conf

man 5 vsftpd.conf

格式:option=value

注意:=前后不要有空格

匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp(用户ftp的家目录),不能切根

系统用户共享文件位置:用户家目录,能够切根

虚拟用户共享文件位置:为其映射的系统用户的家目录

ftp服务的常见配置

命令端口
listen_port=21(默认)

可以认为更改命令端口,但是连接ftp服务器时就要指定端口了

主动模式端口
connect_from_port_20=YES 主动模式端口为20

ftp_data_port=20 指定主动模式的端口,可以认为指定主动模式端口

连接到ftp服务器默认传输文件是以被动模式传输的,想要以主动模式传输,敲passive,关闭被动模式就行了,再敲一遍passive就开启了别动模式

!rm 表示删除本机的文件

del表示删除上传的文件,不过要在ftp配置文件中配置才允许

被动模式端口范围
linux客户端默认使用被动模式

windows 客户端默认使用主动模式

pasv_min_port=6000 0为随机分配

pasv_max_port=6010

使用当地时间
use_localtime=YES 使用当地时间(默认为NO,使用GMT)

匿名用户
注意:匿名登录,ftp服务器根目录/var/ftp是不能有写权限的,否则匿名登录失败

anonymous_enable=YES 支持匿名用户 改为no,不支持匿名用户

no_anon_password=YES(默认NO) 匿名用户略过口令检查

anon_world_readable_only(默认YES)只能下载全部读的文件,当我们匿名上传一个文件f1时,这个文件的权限在其他人上是没有读权限的,其所属人和所属组都是ftp,而下载文件是以nobody的身份下载的,只有在其他人上有读权限时才能下载上传的f1文件

anon_upload_enable=YES 匿名上传,注意:文件系统权限,匿名上传文件是以ftp的身份上传的,如果/var/ftp/pub这个目录的其他人上没有wx权限,就不能上传文件,有两种方式能够上传文件,一是修改/var/ftp/pub这个目录其他人上的权限,二是对这个目录设置acl权限setfacl -m u:ftp:rwx /var/ftp/pub/

anon_mkdir_write_enable=YES 可创建文件夹

anon_other_write_enable=YES 可删除和修改上传的文件

anon_umask=077 指定匿名上传umask,默认是077,所以上传的文件权限为600,之所以不能够下载上传的文件就是因为设置上传umask为077,导致匿名上传的文件其他人上没有读权限,当把上传umask设置为033,这样上传的文件权限就为644,其他人上就有了读权限,这样就能下载上传的文件了

指定上传文件的默认的所有者和权限

chown_uploads=YES(默认NO)

chown_username=wang 设置上传文件的所属人为wang

chown_upload_mode=0644设置上传文件的权限为644

Linux系统用户
guest_enable=YES 所有系统用户都映射成guest用户

guest_username=ftp 配合上面选项才生效,指定guest用户

local_enable=YES 是否允许linux用户登录

write_enable-YES 允许linux用户上传文件

local_umask=022 指定系统用户上传文件的默认权限

local_root=/ftproot非匿名用户登录所在目录

禁锢所有系统用户在家目录中
chroot_local_user=YES(默认NO,不禁锢)禁锢系统用户

禁锢或不禁锢特定的系统用户在家目录中,与上面设置功能相反
chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

当chroot_local_user=YES时,则/etc/vsftpd/chroot_list中用户不禁锢

当chroot_local_user=NO时,则/etc/vsftpd/chroot_list中用户禁锢

wu-ftp日志:默认启用
xferlog_enable=YES (默认)启用记录上传下载日志

xferlog_std_format=YES (默认)使用wu-ftp日志格式

xferlog_file=/var/log/xferlog(默认)可自动生成

vsftpd日志:默认不启用
dual_log_enable=YES 使用vsftpd日志格式,默认不启用

vsftpd_log_file=/var/log/vsftpd.log(默认)可自动生成

登录提示信息
ftpd_banner="welcometo mage ftp server"

banner_file=/etc/vsftpd/ftpbanner.txt 优先上面项生效

目录访问提示信息
dirmessage_enable=YES (默认)

message_file=.message(默认)信息存放在指定目录下.message

你要访问哪个目录,就在哪个目录下面建一个.message,里面写着目录访问的提示信息,当你访问这个目录时,就会显示.message里的提示信息

使用pam(Pluggable Authentication Modules)完成用户认证
pam_service_name=vsftpd

pam配置文件:/etc/pam.d/vsftpd

如果/etc/pam.d/vsftpd中是deny,/etc/vsftpd/ftpusers默认文件中用户拒绝登录

是否启用控制用户登录的列表文件
userlist_enable=YES 默认有此设置

userlist_deny=YES(默认值)黑名单,不提示口令,NO为白名单

userlist_file=/etc/vsftpd/users_list此为默认值

/etc/pam.d/ftpusers和/etc/vsftpd/users_list中的用户是不能登陆ftp服务器的,只有同时满足/etc/pam.d/vsftpd中是allow和userlist_deny=no,/etc/pam.d/ftpusers和/etc/vsftpd/users_list中的用户才能登陆ftp服务器

连接限制
max_clients=0 最大并发连接数

max_per_ip=0 每个IP同时发起的最大连接数

vsftpd服务指定用户身份运行
nopriv_user=nobody

传输速率:字节/秒
anon_max_rate=0 匿名用户的最大传输速率

local_max_rate=0 本地用户的最大传输速率

连接时间:秒为单位
connect_timeout=60 主动模式数据连接超时时长

accept_timeout=60 被动模式数据连接超时时长

data_connection_timeout=300 数据连接无数据输超时时长

idle_session_timeout=60 无命令操作超时时长

优先以文本方式传输(默认是以二进制方式传输,文本方式传输会造成数据丢失)
ascii_upload_enable=YES

ascii_download_enable=YES

前期准备

FTP服务器: CentOS6.8
IP地址:192.168.4.69

操作步骤

1、禁用selinux
[root@edu ~]# setenforce 0
[root@edu ~]# getenforce
Permissive
[root@edu ~]# vim /etc/sysconfig/selinux
SELINUX=disabled

2、关闭iptalbes
[root@edu ~]# service iptables stop
[root@edu ~]# chkconfig iptables off

3、安装vsftp,ftp

[root@edu ~]# yum -y install vsftpd ftp
[root@edu ~]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@edu ~]# netstat -tnlp | grep :21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 11806/vsftpd

4、测试匿名用户登录

vsftpd功能介绍

一 搭建FTP服务,要求 ,student1和student2登录ftp后,只能在自己的家目录下,student3不能登录ftp,不允许从192.168.0.0/24以外的其它地方登录

1、 创建三个用户
[root@edu ~]# useradd student1
[root@edu ~]# useradd student2
[root@edu ~]# useradd student3
[root@edu ~]# echo student1 | passwd --stdin student1
[root@edu ~]# echo student2 | passwd --stdin student2
[root@edu ~]# echo student3 | passwd --stdin student3

2、修改vsftpd配置文件
[root@edu ~]# cd /etc/vsftpd
vim vsftpd.conf
chroot_local_user=YES #开启禁锢所有用户在自己目录下
userlist_deny=YES # 开启黑名单

[root@edu ~]# cd /etc/vsftpd
vim user_list # 配置黑名单
student3

3、 重启vsftpd服务
[root@edu vsftpd]# service vsftpd restart
4、 验证结果,student2登录成功,student3失败
vsftpd功能介绍

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
mysql用户
1\.学会能按着需求创建一个帐号2\.知道连接字符串是什么样3\.密码密码怎么恢复mysql用户权限介绍mysql用户管理 !(https://oscimg.oschina.net/oscnet/368d3c1e00a0a9515545c2962660a27a080.png)!(https://oscimg.oschin
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
京东云开发者 京东云开发者
5个月前
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了
Python进阶者 Python进阶者
2个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这