配置文件

1、/etc/pam.d/vsftpd

vsftpd 的 Pluggable Authentication Modules (PAM)配置文件,主要用来加强vsftpd服务器的用户认证

[root@server ~]# cat /etc/pam.d/vsftpd
#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required pam_shells.so
auth       include  password-auth
account    include  password-auth
session    required     pam_loginuid.so
session    include  password-auth

file 后面接的内容是“限制用户无法使用” vsftpd

2、/etc/vsftpd/ftpusers

所有位于此文件内的用户都不能访问vsftpd服务。为了安全起见,该文件默认已经包括的 root、bin 和 daemon 等系统账号
与PAM模块 配合使用
写入该文件的账号将无法登录FTP

[root@server ~]# cat /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

3、/etc/vsftpd/vsftpd.conf

vsftpd 主配置文件。配置ftp服务器的主要工作文件

4、/etc/vsftpd/user_lsit

该文件包括的用户可能是被拒绝访问vsftpd服务器的,也可能是允许访问的。
取决于vsftpd主配置文件/etc/vsftpd/vsftpd.conf中的“userlist_deny”参数是YES(默认值)还是NO
该文件几乎与ftpusers几乎一模一样,可以看作是vsftpd自定义阻挡访问项目

[root@server ~]# cat /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

5、/vsr/ftp

vsftpd提供服务的文件集散地,它包括一个pub子目录,默认配置下,所有目录都是只读的,只有root用户有写权限

6、/etc/vsftpd/chroot_list

这文件默认不存在,该文件主要功能,将账号用户与 chroot 建立控制关系
相关配置 chroot_local_user、chroot_list_enable、chrootlist_file

配置介绍

1.配置监听地址与控制端口

(1)listen_address

listen_address=xxx.xxx.xxx
listen_port=2121

测试连接
ftp xxx.xxx.xxx 2121

2.配置FTP模式与数据端口

vsftpd的主配置文件中可以决定FTP采用的模式和数据端口
(1)connect_from _port_20
设置以port模式进行数据传输时使用20端口,“YES:使用”,“NO:不使用”
(2)pasv_address
定义vsftpd服务器使用PASV模式时使用的IP地址。默认未设置
(3)pasv_enable
默认 YES,默认允许使用PASV模式,数据流的被动式连接模式。
(4)pasv_min_port
被动模式,数据端口随机 >= minPort,0不限制
(5)pasv_max_port
被动模式,数据端口随机 <= maxPort,0不限制

3.配置ASCII模式

(1)ascii_download_enable
设置是否可用ASCII模式下载。默认为"NO"
(2)ascii_upload_enable
设置是否可用ASCII模式上传。默认为"NO"

5. 配置负载控制

服务器管理员,不希望FTP客户端占用过多带宽,影响服务器的正常运行
(1)anon_max_rate=5 000
匿名用户的最大传输速率,单位是B/s
(2)local_max_rate=20 000
本地用户的最大传输速率,单位是B/s

【例】限制所有用户的下载速度为60KB/s
anon_max_rate=60000
local_max_rate=60000

6. 配置匿名用户

以下选项控制anonymous(匿名用户) 访问vsftpd服务器
(1)anonymous_enable
“YES"表示启用匿名用户,匿名用户配置选项只有该项启用才生效
(2)anon_mkdir_write_enable
“YES”,匿名用户可以在一个具备写权限的目录中创建新目录,默认为NO
(3)anon_root
匿名用户登录后,将它的目录切换到指定目录,默认为设置
(4)anon_upload_enable
“YES”,匿名用户可以向具备写权限的目录中上传文件,默认为NO
(5)anon_world_readable_only
“默认YES”,代表匿名用户只具备下载权限
(6)ftp_username
指定匿名用户与本地的哪个账号相对应,该用户的/home目录即为匿名用户访问FTP服务器时的根目录。默认是"ftp”
(7)no_anon_password
“YES”,匿名用户不用输入密码。默认值为NO
(8)secure_email_list_enable
“YES”(默认为NO)匿名用户只有采用特定的E-mail作为密码才能访问vsftpd服务

【例】允许匿名用户上传下载文件
anonymous_enable=YES
anon_root=/var/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES

(9)deny_email_enable
YES,将某些特殊的Email-address 阻挡,不允许哪些匿名登录,配合下面使用
(10)banned_email_file=/etc/vsftpd/banned_emails
设置不可登录vsftpd的email
(11)no_anon_password
是否略过密码或email校验

7. 配置本地用户及目录

vsftpd允许用户以本地用户或者匿名用户登录,并提供了丰富的控制选项
(1)local_enable
是否允许本地用户登录,默认为“YES”,其他配置,需要该项为"YES"
(2)local_root
指定本地用户登录vsftpd服务器时切换到的目录。没有设置默认值
(3)local_umask
设置文件创建的掩码,默认值是“022”,也就是其他用户具有只读属性

【例】只允许本地用户登录192.168.1.30
anonymous_enable=NO
local_enable=YES
local_root=/homeuseradd -s /sbin/nologin user1
useradd -s /sbin/nologin user2
passwd user1
passwd user2

(4) chmod_enable
“YES”以本地用户登录的客户端可以通过“SITE CHMOD”命令来修改文件的权限

(5)chroot_local_user
“YES”,本地用户只能访问到它的/home目录,不能切换到/home目录之外
(6)chroot_list_enable
"YES"是否开启切换目录的例外名单,例外用户在"chroot_list_file"指定的文件中(默认是“/etc/vsftpd/chroot_list”)

【例】限制用户目录只能在本人/home目录内
useradd -s /sbin/nologin user1
useradd -s /sbin/nologin user2chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
user1
user2

8. 配置虚拟用户

基于安全考虑,vsftpd还支持虚拟用户,将非匿名用户统一映射为虚拟用户,统一限制其他用户的访问权限
(1)guest_enable
“YES”(默认NO),所有非匿名用户都映射为一个特定的本地用户。该用户通过“guest_username”命令指定
(2)guest_username
设置虚拟用户映射到本地用户,默认值为“ftp”

9. 配置用户登录控制

vsftpd提供了登录控制选项

(2)cmds_allowed
设置登录vsftpd后,客户端可以执行的命令集合,如果设置了该命令,其他不在列表中的命令都将被拒绝执行

(4)userlist_enable
“YES”时
userlist_deny设置使用/etc/vsftpd/user_list文件来控制用户的访问权限,当userlsit_deny为“NO”时,只有该文件中的用户才能访问vsftpd服务器。
(5)pam_service_name=vsftpd
这个是PAM模块的名称,我们放置在 /etc/pam.d/vsftpd 中的即是这个。

10. 配置目录访问控制

vsftpd 针对目录的访问设置了控制选项
(1)dirlist_enable
设置是否允许用户列目录。默认是YES,允许列目录
(2)dirmessage_enable
设置当用户切换到目录时,是否显示目录切换信息。
YES时,显示“message_file”指定文件中的信息(默认是显示.message文件信息)
(3)message_file
指定显示目录信息,默认是“.message”
切换目录时显示目录下该文件的信息
(4)force_dot_files
设置是否显示以“.”开头的文件,默认值是不显示
(5)hide_ids
隐藏文件的所有组和组信息,匿名用户看到的文件所有者和所有组全部变成ftp

11. 配置文件操作控制

vsftpd 提供了几个用户控制上传,下载的选项
(1)download_enable
设置是否允许下载。默认值是“YES”,允许下载
(2)chown_uploads
"YES"时,所有匿名用户上传的文件,其拥有这都会被设置为
“chown_username”命令指定的用户。默认是 NO
(3)chown_username
设置匿名用户上传的文件的拥有者。默认值“root”
(4)write_enable
"YES"时,FTP客户端登录后允许使用 DELE(删除文件)、RNFR(重命名)和STOR(断点续传)命令

12. 配置新增文件权限设置

vsftpd 服务器可以让我们设置上传过来的文件权限,以进行安全方面设置。
(1)anon_umask
匿名用户新增文件的umask数值。默认值077
(2)file_open_mode
上传文件的权限,与chmod所使用的数值相同。
如果希望上传的文件可以执行,则设置此值为0777。默认值为0666
(3)local_umask
本地用户新增文件时的umask数值(默认值077)。不过,其他大多数的ftp服务器使用的是022,如果用户希望的话,则可以修改为022
(4)use_localtime
是否使用本地时间,默认使用GMT时间,所以ftp内文件的时间默认会比中国晚8h,建议设置为YES

13. 日志设置

vsftpd还可以记录服务器的工作状态,以及上传、下载操作
(3)ftpd_banner
登录后,显示欢迎信息等,如果设置了“banner_file”该命令会被忽略
(1)banner_file
设置客户端登录后,服务器显示在客户端的信息,该信息保存在banner_file指定的文件中

(1)dual_log_enable
如果启用,将生成两个相似的日志文件,/var/log/xferlog 和 /var/logrolate.d/vsftpd.log
前者是 Wu-ftpd 类型的传输日志,可以用于标准工具分析;
后者是vsftpd自己类型的日志。默认值NO
vsftpd_log_file
(2)log_ftp_protocol
是否记录所有的FTP命令信息。默认为NO
(3)syslog_enable
设置为 YES 时会将本来应记录在 /var/logrolate.d、vsftpd.log中的信息转而传给syslogd daemon,由syslogd 的配置文件决定存于什么位置。默认值NO
(4)xferlog_enable
如果启用,将会维护一日志文件,用户详细记录上传和下载操作。在默认情况下,这个日志文件是/var/log/xferlog但是也可以通过配置文件中的vsftpd_log_file选项来指定。默认值NO
(5)xferlog_std_format
如果启用,传输日志文件将以标准xferlog的格式书写,如同Wu-ftpd一样。
此格式的日志文件默认/var/log/xferlog,但是也可以通过xferlog_file选项来设定
(6)xferlog_file
/var/log/xferlog,默认是记录到该文件,可以配置
(7)ftpd_banner
当用户连接进入vsftpd时,在FTP客户端显示说明文字
(8)banner_file
指定某个文本文件作为欢迎信息,需要使用ftp命令行客户端才能看到

4. 配置超时选项

vsftpd中还有超时定义选项,以防客户端无限制的连接在FTP服务器上,占据系统资源
(1)data_connection_timeout
定义数据传输过程中被阻塞的最长时间(秒为单位,默认300),一旦超出连接将被关闭
(2)idle_session_timeout
定义客户端闲置的最长时间(秒为单位,默认值300),超时后连接将强制关闭
(3)connect_timeout
设置客户端尝试连接vsftpd命令通道的超时时间(可设置为60)

14. 配置限制服务器连接数

限制在同一时刻内允许连接服务器的数量是一种非常有效的保护服务器并减少负载的方式之一。主配置文件中常用字段有一下两种
(1)max_clients
设置FTP同一时刻的最大连接数,默认值0,不限制最大连接数
(2)max_per_ip
设置每个IP的最大连接数。默认值0,不限制最大连接数

15. 其他配置

(1)listen
YES表示以 stand alone 方式启动,默认是NO
是否允许监听。
如果设置为YES,则vsftpd将以独立模式运行,由vsftpd自己监听和处理IPv4端口的连接请求

(2)nopriv_user=ftpsecure
我们的 vsftpd 默认以 ftpsecure 作为此服务执行者的权限。
(3)async_abor_enable=YES
是否识别异步ABOR请求。
如果FTP client会下达“async ABOR”这个指令时,这个设定才需要启用
而一般此设定并不安全,所以通常将其取消
(4)ls_recurse_enable
是否允许递归查询。默认为关闭,以防止远程用户造成过量的I/O
(5)listen_ipv6
设定是否支持IPV6。如要同时监听IPv4和IPv6端口,
则必须运行两套vsftpd,采用两套配置文件
同时确保其中有一个监听选项是被注释掉的
(6)tcp_wrappers
是否使用tcp_wrappers作为主机访问控制方式。
tcp_wrappers可以实现linux系统中网络服务的基于主机地址的访问控制
在/etc目录中的hosts.allow和hosts.deny两个文件用于设置tcp_wrappers的访问控制
前者设置允许访问记录,后者设置拒绝访问记录。
如想限制某些主机对FTP服务器192.168.57.2的匿名访问,编缉/etc/hosts.allow文件,如在下面增加两行命令:
vsftpd:192.168.57.1:DENY 和vsftpd:192.168.57.9:DENY
表明限制IP为192.168.57.1/192.168.57.9主机访问IP为192.168.57.2的FTP服务器
此时FTP服务器虽可以PING通,但无法连接

(3)tcp_wrapper
支持TCP Wrappers 的防火墙机制(即可以利用 /etc/hosts.allow 或 /etc/hosts.deny 来作为基础防火墙),所以设置YES

(4)allow_writeable_chroot

https://os.51cto.com/art/201008/222036.htm

https://www.cnblogs.com/hhuai/archive/2011/02/12/1952647.html

自己练习,非线上环境的配置

# 地址 + 端口
# listen_address=106.14.41.60
listen_port=21# FTP模式
# 被动模式
connect_from_port_20=NO
pasv_enable=YES
pasv_address=106.14.41.60
pasv_min_port=65500
pasv_max_port=65535# 主动模式
# connect_from_port_20=YES
# pasv_enable=NO
# ASCII模式
# ascii会将文件中的例如回车符转为本机格式的回车
ascii_download_enable=NO
ascii_upload_enable=NO# 配置负载
# anon_max_rate=60000
# 本地用户 700KB/s
local_max_rate=700000
# 本地用户
local_enable=YES
local_root=/opt/data
chmod_enable=NO
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list# 用户登录配置
############
pam_service_name=vsftpd
# 不设置白名单
userlist_enable=NO
# 目录访问控制
dirlist_enable=YES
dirmessage_enable=NO
force_dot_files=YES
hide_ids=NO
# 文件操作配置
download_enable=YES
write_enable=YES
# 新增文件权限关系
local_umask=022
file_open_mode=0777
use_localtime=YES# 日志控制
ftpd_banner=Hello ftpd!
dual_log_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
vsftpd_log_file=/var/log/vsftpd.log# 超时
data_connection_timeout=300
idle_session_timeout=300
connect_timeout=60
# 连接数
max_clients=0
max_per_ip=0
# 其他配置
listen=YES
async_abor_enable=NO
ls_recurse_enable=NO
listen_ipv6=NO
tcp_wrappers=NO
allow_writeable_chroot=YES

ftp ---- 文件结构(配置简单整理)相关推荐

  1. python对文件重命名快捷键_Pycharm快捷键配置详细整理

    1.主题 毫无疑问Pycharm是一个具有强大快捷键系统的IDE,这就意味着你在Pycharm中的任何操作,例如打开一个文件.切换编辑区域等,都可以通过快捷键来实现.使用快捷键不仅能提高操作速度,看起 ...

  2. 如何对CentOS FTP服务配置 - 51CTO.COM

    如何对CentOS FTP服务配置 - 51CTO.COM 根据很多人对CentOS FTP服务的不解,我觉得应该对CentOS FTP服务做出一定的解释. 1.安装 一般在CentOS上都自动安装了 ...

  3. Android Camera简单整理(一)-Camera Android架构(基于Q)

    Camera整体架构简单整理 一.Android Camera整体架构简述 1.1 Android Camera 基本分层 1.2 Android Camera工作大体流程 二. Camera App ...

  4. Vue 之 vue-seamless-scroll 实现简单自动无缝滚动,且添加对应点击事件的简单整理

    Vue 之 vue-seamless-scroll 实现简单自动无缝滚动,且添加对应点击事件的简单整理 目录 Vue 之 vue-seamless-scroll 实现简单自动无缝滚动,且添加对应点击事 ...

  5. 关于腾讯云服务器使用FTP详细配置教程

    腾讯云服务器介绍 关于腾讯云服务器使用感受 作为开发者使用过程中遇到的问题 如何上传文件到云服务器上 配置的WAMP环境无法远程连接MySQL数据库 腾讯云服务器FTP Server环境搭建 如何上传 ...

  6. win2003系统安装以及服务器ftp的配置

    一.安装win2003系统 1.制作启动盘 2. 将win 2003系统镜像文件拷贝到大白菜U盘中 3. 戴尔电脑重装系统通过F12启动热键选择启动项,选择USB选项按回车键进入大白菜启动主菜单,再选 ...

  7. Windows服务器安全策略配置——简单实用!

    Windows服务器安全策略配置--简单实用! Windows服务器安全策略怎么做?不要觉得这是一个非常深奥遥不可及的问题,其实也是从各个方面去加固系统的安全性而已,它没有一个定论. 我是艾西今天和你 ...

  8. Vue 之 echarts 图表数据可视化常用的一些图表/动态图表/3D图表的简单整理

    Vue 之 echarts 图表数据可视化常用的一些图表/动态图表/3D图表的简单整理 目录 Vue 之 echarts 图表数据可视化常用的一些图表/动态图表/3D图表的简单整理 一.简单介绍 二. ...

  9. DreamWeaver 的FTP站点配置

    一.前言       对于一些经常会在异地服务器上进行远程编程工作的程序员来说,有时候会不得已在非人性化工具下编写复杂程序.在编写过程中,系统工具不会给你任何提示和帮助,直到运行时你才知道程序有错误, ...

最新文章

  1. 【ACM】Uva 1152 (4 Values whose Sum is 0) 二分查找lower_bound() 和upper_bound()的使用
  2. 利用深度学习(Keras)进行癫痫分类-Python案例
  3. C++是不是类型安全的?
  4. 高性能线程间队列 DISRUPTOR 简介
  5. 任给十进制整数,请从低位到高位……
  6. 测试AtomicInteger与普通int值在多线程下的递增操作
  7. Eclipse启动tomcat项目乱码而终端启动tomcat正常的解决办法
  8. hashmap的负载因子为什么是0.75而不是其他值或者1
  9. Python面试必备!最全面的重点知识汇总,建议收藏!
  10. 分享32个高质量的自学网站
  11. 如何开发一个App(Android)
  12. java软尾山地车评测_GT Sensor X Pro 软尾山地自行车测评
  13. 计算机或信息化的专业职称,信息系统项目管理师是高级职称吗?
  14. B2B、C2C、B2C是什么意思
  15. 计算机的配件知识,最基本的入门知识:电脑由哪些部件组成?
  16. Attrbute value muster
  17. 【UEFI基础】Protocol介绍
  18. 第二百四十一节,Bootstrap进度条媒体对象和 Well 组件
  19. conda install -y 参数
  20. c语言程序设计实践课程,《C语言程序设计》实践课程标准.doc

热门文章

  1. 【报告分享】砥砺前行 智启新章:2019-2020中国银行业发展回顾与展望.pdf(附下载链接)...
  2. 问题:anaconda: command not found 解决方案
  3. 第十五章 面向对象程序设计
  4. 美团 大规模商品知识图谱的构建与应用
  5. 啥?!BM25 比语义向量检索效果好?
  6. Greenplum 行存、列存,堆表、AO表的原理和选择
  7. commands out of sync mysql,MySQL-python: Commands out of sync
  8. python可以神奇的做什么_可以用 Python 编程语言做哪些神奇好玩的事情?
  9. XML 文档结构必须从头至尾包含在同一个实体内
  10. win10开机,内存占用过高