m-zhuang

导航

Linux vsftpd 服务

ftp的数据连接模式

主动模式:服务器主动发起数据连接
被动模式:服务器被动等待数据连接

主动模式(Active Mode):

在主动模式下,FTP客户端首先与FTP服务器的默认端口(通常是端口21)建立控制连接。
当需要进行数据传输时,客户端会随机选择一个未使用的端口(通常是大于1024的端口)作为源端口,
然后告知服务器使用该端口进行数据连接。服务器通过控制连接将数据连接请求发送到客户端的指定端口,
建立数据连接并进行数据传输。

被动模式(Passive Mode):

在被动模式下,FTP客户端首先与FTP服务器的默认端口(通常是端口21)建立控制连接。
当需要进行数据传输时,服务器会随机选择一个未使用的端口(通常是大于1024的端口)作为源端口,
并将该端口告知客户端。客户端通过控制连接向服务器指定的端口发起数据连接,建立数据连接并进行数据传输。

区别:

主动模式和被动模式在数据连接的建立方式上有所区别,主要涉及客户端和服务器之间数据连接的建立和传输。
在网络环境复杂或存在防火墙的情况下,被动模式通常更容易穿越防火墙,因此在实际应用中被广泛使用。

1. 配置vsftpd服务

检查是否安装vsftpd,若未安装,使用本地yum源进行下载安装

[root@localhost ~]# rpm -q vsftpd
未安装软件包 vsftpd 
[root@localhost ~]# yum -y install vsftpd

2. 匿名用户访问ftp服务

(1)下载

① 服务器配置

服务器ip地址为 192.168.23.5

# 备份配置文件 vsftpd.conf
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# cp -a vsftpd.conf vsftpd.conf.bak20230519

# 修改配置文件 vsftpd.conf
[root@localhost vsftpd]# vim vsftpd.conf
	anonymous_enable=YES	# 匿名用户访问权限

# 重启 vsftpd 服务
[root@localhost vsftpd]# systemctl restart vsftpd

# 关闭服务器防火墙、selinux安全机制
[root@localhost vsftpd]# systemctl stop firewalld.service 
[root@localhost vsftpd]# setenforce 0


② 打开window10主机,下载服务器中的/var/pub/file1.txt文件

下载默认路径 C:\Users\用户名\

ftp 192.168.23.5
	ftp
	按回车键
cd pub
get file1.txt


(2)上传

① 服务器配置

# 修改配置文件 vsftpd.conf
[root@localhost vsftpd]# vim vsftpd.conf
	anonymous_enable=YES	# 匿名用户访问权限
	write_enable=YES		# 开放服务器写权限,若要上传必须开启
	local_umask=022			# 反掩码 文件的权限控制
	anon_umask=022			# 匿名用户上传文件的权限反掩码(需要手动添加)
	anon_upload_enable=YES			# 匿名用户可以创建上传文件
	anon_mkdir_write_enable=YES		# 匿名用户可以创建上传目录
	anon_other_write_enable=YES		# 匿名用户可以删除、覆盖文件、重命名(需要手动添加)
[root@localhost vsftpd]# systemctl restart vsftpd


② 将windows10客户机中的 C:\Users\admin\file2.txt文件上传至服务器 /var/ftp/pub/目录下

ftp 192.168.23.5
	ftp
	按回车键
cd pub
put file2.txt


3. 本地用户访问ftp服务

(1)下载

① 服务器配置

设置本地用户可以访问ftp,禁止匿名用户访问

[root@localhost vsftpd]# vim vsftpd.conf
	anonymous_enable=NO	# 将匿名用户访问权限关闭
	local_enable=YES		# 本地用户访问权限
	
[root@localhost vsftpd]# systemctl restart vsftpd


② 打开window10主机,下载服务器中的/home/user1/file3.txt文件

本地用户登录的位置默认在该用户的家目录下

ftp 192.168.23.5
	user1
	000(user1密码)
get file3.txt

(2)上传

① 服务器配置

[root@localhost vsftpd]# vim vsftpd.conf
	local_enable=YES		# 本地用户访问权限
	local_umask=002			# 设置本地用户创建上传文件的权限反掩码

[root@localhost vsftpd]# systemctl restart vsftpd


② 将windows10客户机中的 C:\Users\admin\file2.txt文件上传至服务器 /var/ftp/pub/目录下

ftp 192.168.23.5
	user1
	000(user1密码)
put file4.txt


(3)禁锢用户访问目录

由于本地用户可以随意切换目录,权限较大,有很大安全隐患。

将用户访问禁锢在宿主的家目录中

[root@localhost vsftpd]# vim vsftpd.conf
	local_enable=YES		# 本地用户访问权限
	local_umask=002			# 设置本地用户创建上传文件的权限反掩码
	chroot_local_user=YES	# 打开用户访问禁锢在宿主家目录设置
	allow_writeable_chroot=YES	# 添加用户在禁锢的宿主家目录中有可写权限
	
[root@localhost vsftpd]# systemctl restart vsftpd



4. 黑名单与白名单

名单配置文件位置: /etc/vsftpd/user_list

在配置文件 /etc/vsftpd/vsftpd.conf 中

将 userlist_enable=YES 启用user_list用户列表设置打开

当 userlist_deny=YES 时 user_list 用户列表是黑名单

当 userlist_deny=NO 时 user_list 用户列表是白名单

(1)黑名单

在黑名单上的用户都不可以访问服务器的ftp服务

[root@localhost vsftpd]# vim vsftpd.conf
	local_enable=YES		# 本地用户访问权限
	userlist_enable=YES		# 启用user_list用户列表
	userlist_deny=YES		# 将user_list用户列表设置为黑名单

[root@localhost vsftpd]# systemctl restart vsftpd






(2)白名单

在白名单上的用户都可以访问服务器的ftp服务

[root@localhost vsftpd]# vim vsftpd.conf
	local_enable=YES		# 本地用户访问权限
	userlist_enable=YES		# 启用user_list用户列表
	userlist_deny=NO		# 将user_list用户列表设置为白名单

[root@localhost vsftpd]# systemctl restart vsftpd




5. 使用软件访问ftp服务

(1)软件访问服务器ftp服务

[root@localhost vsftpd]# vim vsftpd.conf
	#chroot_local_user=YES	# 关闭用户访问禁锢在宿主家目录设置
		
[root@localhost vsftpd]# systemctl restart vsftpd



(2)下载与上传

[root@localhost vsftpd]# vim vsftpd.conf
	anonymous_enable=NO	# 将匿名用户访问权限关闭
	local_enable=YES		# 本地用户访问权限
	local_enable=YES		# 本地用户访问权限
	local_umask=002			# 设置本地用户创建上传文件的权限反掩码
	
[root@localhost vsftpd]# systemctl restart vsftpd

① 下载

将服务器中/data 目录下载到 客户机 C:\Users\admin\ 文件夹下



② 上传

将客户机刚刚下载的data文件夹上传到服务器 /home/user1目录下




posted on 2023-05-23 01:06  m_zhuang  阅读(54)  评论(0编辑  收藏  举报