vsftpd功能介绍

Wesley13
• 阅读 376

用户认证:

匿名用户: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
1年前
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:SQL Mode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。 全局s
Wesley13 Wesley13
1年前
030 SSM综合练习06
**1.权限操作涉及的三张表** (1)用户表信息描述users ![](https://oscimg.oschina.net/oscnet/a4a2b1f943cbc2db1c8ddd613e7ed00a9ae.png) sql语句: CREATE TABLE users ( id VARCHAR2 ( 32 ) DEFAU
Stella981 Stella981
1年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置 1、virsh edit centos7 找到“memory”和“vcpu”标签,将 <name>centos7</name> <uuid>2220a6d1-a36a-4fbb-8523-e078b3dfe795</uuid>
Wesley13 Wesley13
1年前
mysql用户
1\. 学会能按着需求创建一个帐号 2\. 知道连接字符串是什么样 3\. 密码密码怎么恢复 mysql用户权限介绍 mysql用户管理  ![](https://oscimg.oschina.net/oscnet/368d3c1e00a0a9515545c2962660a27a080.png) ![](https://oscimg.oschin
Wesley13 Wesley13
1年前
MySQL查询按照指定规则排序
1.按照指定(单个)字段排序 select * from table_name order id desc; 2.按照指定(多个)字段排序 select * from table_name order id desc,status desc; 3.按照指定字段和规则排序 selec
Stella981 Stella981
1年前
Angular material mat
Icon Icon Name mat-icon code _add\_comment_ add comment icon <mat-icon> add\_comment</mat-icon> _attach\_file_ attach file icon <mat-icon> attach\_file</mat-icon> _attach\
Wesley13 Wesley13
1年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
#### 背景描述 # Time: 2019-01-24T00:08:14.705724+08:00 # User@Host: **[**] @ [**] Id: ** # Schema: sentrymeta Last_errno: 0 Killed: 0 # Query_time: 0.315758 Lock_
3A网络 3A网络
1个月前
理解 virt、res、shr 之间的关系(linux 系统篇)
# 理解 virt、res、shr 之间的关系(linux 系统篇) **前言** 想必在 linux 上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题 —— 你的程序在运行时占用了多少内存(物理内存)? 通常我们可以通过 t
3A网络 3A网络
1个月前
开发一个不需要重写成 Hive QL 的大数据 SQL 引擎
# 开发一个不需要重写成 Hive QL 的大数据 SQL 引擎 学习大数据技术的核心原理,掌握一些高效的思考和思维方式,构建自己的技术知识体系。明白了原理,有时甚至不需要学习,顺着原理就可以推导出各种实现细节。 各种知识表象看杂乱无章,若只是学习
helloworld_34035044 helloworld_34035044
4个月前
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。 uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid() 或 uuid(sep)参数说明:sep 布尔值,生成的uuid中是否包含分隔符'',缺省为