前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >配置VSFTP文件服务器

配置VSFTP文件服务器

作者头像
微软技术分享
发布2022-12-28 16:26:45
6.1K0
发布2022-12-28 16:26:45
举报
文章被收录于专栏:Linux 系统运维技术实践

FTP 文件传输协议.用于互联网上的控制文件的双向传输,使用FTP来传输时,其实是具有一定程度的危险性,因为数据在因特网上面是完全没有受到保护的明文传输方式,VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,从名称定义上基本可以看出,这是为了解决ftp传输安全性问题的.

VSFTP的特点:

1.vsftp程序的运行者一般是普通用户,降低了相对应进程的权限,提高了安全性. 2.任何需要执行较高权限的指令都需要上层程序许可. 3.ftp所需要使用的绝大多数命令都被整合到了vsftp中,基本不需要系统额外提供命令. 4.拥有chroot功能,可以改变用户的根目录,限制用户只能在自己的家目录.

VSFTP的连接类型:

控制连接(持续连接)-> TCP21(命令信道)-> 用户收发FTP命令 数据连接(按需连接)-> TCP20(数据信道)-> 用于上传下载数据

VSFTP的工作模式:

主动模式与被动模式注意事项

1.很多防火墙在设置的时候都是不允许接受外部发起的连接,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高位端口. 2.而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP20无法和内部网络的客户端建立一个新的连接,造成无法工作.

VSFTP的传输模式:

ASCII传输方式 1.假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式. 2.但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件.在拷贝任何非文本文件之前,用binary命令告诉ftp逐字拷贝

二进制传输模式(Binary模式) 1.在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位对应的.即使目的地机器上包含位序列的文件是没意义的.例如QQ.exe以二进制方式传送可执行文件到Linux系统,在对方系统上,此文件不能执行.

以上就是全部的常用内容啦,基本上面试也就问这些东西.

配置匿名FTP服务器

作用:任意用户,输入FTP服务器IP都可以访问,只需输入用户名ftp即可访问.

代码语言:javascript
复制
[匿名配置常用参数]

	anonymous_enable=YES		#启用匿名访问
	anon_umask=022			#匿名用户所上传文件的权限掩码
	anon_root=/var/ftp		#匿名用户的FTP根目录
	anon_upload_enable=YES		#允许上传文件
	anon_mkdir_write_enable=YES	#允许创建目录
	anon_other_write_enable=YES	#开放其他写入权
	anon_max_rate=0			#限制最大传输速率

1.安装VSFTP服务器.

代码语言:javascript
复制
[root@localhost ~]# yum install -y vsftpd

2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

pasv_enable=YES							#开启被动模式
pasv_min_port=10000						#被动模式最小端口
pasv_max_port=15000						#被动模式最大端口

anonymous_enable=YES						#允许匿名用户访问
anon_upload_enable=YES						#允许匿名用户上传
anon_mkdir_write_enable=YES					#允许匿名用户建立目录
anon_other_write_enable=YES					#开放其他人写入权限
anon_umask=022							#设置匿名用户umask
anon_root=/ghost						#匿名用户ftp根目录

local_enable=YES						#允许本地用户登录
write_enable=YES						#允许本地用户上传
local_umask=022							#本地用户上传umask值
xferlog_enable=YES						#激活记录日志
connect_from_port_20=YES					#主动模式传输接口
xferlog_std_format=YES						#使用标准ftp日志的格式

listen=YES							#允许被侦听
pam_service_name=vsftpd						#ftp采用pam默认用户名密码验证
userlist_enable=YES						#用户登陆限制
tcp_wrappers=YES						#网络访问限制机制


#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]

3.启动FTP服务,并设置开机自动启动.

代码语言:javascript
复制
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd

配置本地用户FTP服务器

作用:只有正确输入用户名和密码才能访问数据.

代码语言:javascript
复制
[本地配置常用参数]

	local_enable=YES				#是否启用本地系统用户
	local_umask=022					#本地用户所上传文件的权限掩码
	local_root=/var/ftp				#设置本地用户的FTP根目录
	chroot_local_user=YES				#是否将用户禁锢在主目录
	local_max_rate=0				#限制最大传输速率
	ftpd_banner=Welcome to blah FTP service		#用户登录时显示的欢迎信息
	banner_file=/目录				#弹出一个说明,可以做哪些操作
	userlist_enable=YES &userlist_deny=YES 	#禁止/etc/vsftpd/user_list文件中出现的用户名登录FTP
	userlist_enable=YES & userlist_deny=NO 	#仅允许/etc/vsftpd/user_list文件中出现的用户名登录FTP

1.安装VSFTP服务器.

代码语言:javascript
复制
[root@localhost ~]# yum install -y vsftpd

2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

pasv_enable=YES							#开启被动模式
pasv_min_port=10000						#被动模式最小端口
pasv_max_port=15000						#被动模式最大端口

anonymous_enable=NO						#允许匿名用户登陆
chroot_local_user=YES						#把用户禁锢在家目录
local_enable=YES						#本地用户允许登陆
local_root=/ghost						#指定本地用户的ftp根目录
write_enable=YES						#允许本地用户上传
local_umask=022							#本地用户上传umask值
xferlog_enable=YES						#激活记录日志
xferlog_std_format=YES						#使用标准ftp日志的格式

listen=YES							#允许被侦听
pam_service_name=vsftpd						#ftp采用pam默认用户名密码验证
userlist_enable=YES						#用户登陆限制
tcp_wrappers=YES						#网络访问限制机制

#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]

3.创建用户并指定其家目录,创建用于存储数据的目录.

代码语言:javascript
复制
[root@localhost ~]# useradd -s /sbin/nologin -d /ghost/lyshark  lyshark
[root@localhost ~]# passwd  lyshark

4.启动FTP服务,并设置开机自动启动.

代码语言:javascript
复制
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd

配置匿名与本地混合FTP

作用:匿名用户可以查看共享数据,登陆后有自己的存储池.

1.安装VSFTP服务器

代码语言:javascript
复制
[root@localhost ~]# yum install -y vsftpd

2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

pasv_enable=YES							#开启被动模式
pasv_min_port=10000						#被动模式最小端口
pasv_max_port=15000						#被动模式最大端口
anonymous_enable=YES						#允许匿名用户登陆
anon_umask=022							#设置匿名用户umask
anon_root=/var/ftp						#匿名用户ftp根目录
anon_upload_enable=YES						#允许匿名用户上传
anon_mkdir_write_enable=YES					#允许匿名用户建立目录
anon_other_write_enable=YES					#开放其他人写入权限
anon_max_rate=0							#限制最大传输速率

local_enable=YES						#允许本地用户登录
local_root=/ghost						#指定本地用户的ftp根目录
chroot_local_user=YES						#把用户禁锢在家目录
write_enable=YES						#允许本地用户上传
local_umask=022							#本地用户上传umask值
xferlog_enable=YES						#激活记录日志
xferlog_std_format=YES						#使用标准ftp日志的格式
listen=YES							#允许被侦听
pam_service_name=vsftpd						#ftp采用pam默认用户名密码验证
userlist_enable=YES						#用户登陆限制
tcp_wrappers=YES						#网络访问限制机制

#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]

3.创建用户并指定其家目录,创建用于存储数据的目录.

代码语言:javascript
复制
[root@localhost ~]# useradd -s /sbin/nologin -d /ghost/lyshark  lyshark
[root@localhost ~]# passwd  lyshark

4.启动FTP服务,并设置开机自动启动.

代码语言:javascript
复制
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd

配置虚拟用户FTP服务器

作用:有时候创建本地用户过多,严重影响系统效率,所有我们要使用虚拟用户模式.

代码语言:javascript
复制
[虚拟配置常用参数]

	anon_world_readable_only=NO 		#允许查看和上传下载文件
	anon_upload_enable=YES			#允许上传文件
	anon_world_readable_only=NO		#允许查看和上传下载文件
	anon_mkdir_write_enable=YES		#允许创建目录
	anon_world_readable_only=NO		#允许查看和上传下载文件
	anon_other_write_enable=YES		#允许重名和删除文件

1.安装相应软件包,libdb-utls是数据库包.

代码语言:javascript
复制
写入相应账号以及密码yum install -y libdb-utils
写入相应账号以及密码yum install -y vsftpd

2.配置vlogin文件,vlogin文件名称可自定义,写入相应账号以及密码.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd/vlogin

Lyshark			#奇数行写账号
123456			#偶数行写密码

3.将写好的文件加密,并转换成vlogin.db数据库文件

代码语言:javascript
复制
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db

4.设置数据库文件的权限,保证安全.

代码语言:javascript
复制
[root@localhost ~]# chmod 600 /etc/vsftpd/{vlogin,vlogin.db}

5.覆盖编辑PAM文件,写入以下内容.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/pam.d/vsftpd.pam

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin

6.创建一个映射账号virtual,所有的登陆请求都是virtual.

代码语言:javascript
复制
[root@localhost ~]# useradd -s /sbin/nologin -d /home/ftp virtual

7.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

pasv_enable=YES							#开启被动模式
pasv_min_port=10000						#被动模式最小端口
pasv_max_port=15000						#被动模式最大端口

anonymous_enable=NO						#允许匿名用户访问
local_enable=YES						#允许本地用户登录
write_enable=YES						#允许本地用户上传
anon_upload_enable=YES						#允许匿名用户上传
anon_mkdir_write_enable=NO					#允许匿名用户建立目录
anon_other_write_enable=NO					#开放其他人写入权限
chroot_local_user=YES						#把用户禁锢在家目录
guest_enable=YES						#启动来宾用户
guest_username=virtual						#来宾默认使用的用户
listen=YES							#允许被侦听
listen_port=21							#侦听21端口
pam_service_name=vsftpd.pam					#ftp采用pam默认用户名密码验证
user_config_dir=/etc/vsftpd_user_conf				#指定虚拟用户配置文件保存位置
user_sub_token=$USER						#映射用户变量

#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]

8.创建对应文件(用于保存权限文件).

代码语言:javascript
复制
[root@localhost ~]# mkdir /etc/vsftpd_user_conf
[root@localhost ~]# mkdir -p /home/ftp/lyshark

9.编辑文件给指定用户分配权限,用匿名用户权限分配.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd_user_conf/lyshark

local_root=/home/ftp/$USER
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
chroot_local_user=YES

#	allow_writeable_chroot=YES	  	#可在公共目录下创建文件

10.启动FTP服务,并设置开机自动启动.

代码语言:javascript
复制
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd

OpenSSL+VSFTP加密传输

1.查看是否安装OpenSSL包.

代码语言:javascript
复制
[root@localhost ~]# rpm -q openssl

2.生成SSL加密密钥对.

代码语言:javascript
复制
[root@localhost ~]# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem

[参数说明]
		req 		#标注格式
		-new 		#创建一个新的证书
		-x509		#证书内容格式
		-nodes 		#不使用密码
		-out		#生成文件名
		-keyout		#生成的秘钥文件名

#创建时依次填写:国家、省份、城市、组织、部门、个人或主机名、邮箱

3.把生成的证书放入特定目录下,并给予最低权限,保证安全.

代码语言:javascript
复制
[root@localhost ~]# cp -a vsftpd.pem /etc/ssl/certs/
[root@localhost ~]# chmod 500 /etc/ssl/certs/

4.在VSFTP主配置中文件加入以下参数.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

ssl_enable=YES							#启用ssl认证
ssl_tlsv1=YES
ssl_sslv2=YES							#开启tlsv1、sslv2、sslv3都支持
ssl_sslv3=YES
allow_anon_ssl=YES						#允许匿名用户
force_anon_logins_ssl=YES
force_anon_data_ssl=YES						#匿名登录和传输时强制使用ssl
force_local_logins_ssl=YES
force_local_data_ssl=YES					#本地登录和传输时强制使用ssl
rsa_cert_file=/etc/ssl/certs/vsftpd.pem				#证书文件所在目录

#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]

5.启动FTP服务,并设置开机自动启动.

代码语言:javascript
复制
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置匿名FTP服务器
  • 配置本地用户FTP服务器
  • 配置匿名与本地混合FTP
  • 配置虚拟用户FTP服务器
  • OpenSSL+VSFTP加密传输
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档