目录
区别 | DAS | SAN | NAS |
---|---|---|---|
传输类型 | SCSI、FC | IP、FC、SAS | IP |
数据类型 | 数据块 | 数据块 | 文件 |
典型应用 | 任何 | 数据库应用 | 文件服务器 |
优点 | 磁盘与服务器分离,便于统一管理 | 高扩展性 高可用性 数据集中,易管理 | 不占用应用服务器资源 广泛支持操作系统 扩展较容易 即插即用,安装简单方便 |
缺点 | ?连接距离短 数据分散,共享困难 存储间利用率不高 扩展性有限 | 相比NAS成本较高安添装和升级比NAS | 不适合存储量大的块级,应月数据备份及恢复占用网络带宽 |
FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上传输文件的标准协议。它允许用户通过网络从一个计算机向另一个计算机传输文件。FTP通常用于在客户端和服务器之间进行文件传输,允许用户上传(放置文件到服务器)和下载(从服务器获取文件)文件
在FTP的主动模式下,客户端使用随机的非保留端口(通常大于1023)连接到服务器端口21。这个连接用于发送命令和控制信息
一旦数据传输需要开始,服务器会通过它的数据端口(通常是端口20)主动连接到客户端指定的数据端口。
主动模式的数据连接建立流程如下:
①客户端连接到服务器的端口21,发送命令和控制信息(客户端:随机port ---> 服务器:21/tcp )
②当需要进行数据传输时,服务器会主动连接到客户端指定的数据端口20,发送数据(服务器:20/tcp --->?客户端:随机port ?)
主动模式的优点是服务器可以主动连接到客户端,适用于客户端在防火墙后面的情况。然而,主动模式也存在一些问题,比如客户端需要在防火墙上打开一定范围的端口以便服务器能够连接,这可能存在安全隐患
在FTP的被动模式下,客户端连接到服务器的端口21发送命令和控制信息
数据连接则由服务器打开一个随机的非保留端口,等待客户端连接
被动模式的数据连接建立流程如下:
①客户端连接到服务器的端口21,发送命令和控制信息(客户端:随机port ---> 服务器:21/tcp )
②当需要进行数据传输时,服务器会打开一个随机的非保留端口,被动等待客户端连接(客户端:随机port ---> 服务器:随机port /tcp)
被动模式的优点是避免了在客户端防火墙上打开额外的端口,因为数据连接是由服务器打开并等待客户端连接的。这种模式更容易在防火墙后面进行工作,因为客户端只需连接到服务器的端口21
匿名用户:ftp、anonymous、对应Linux用户ftp root
系统用户:Linux用户、用户/etc/passwd、密码/etc/shadow
虚拟用户:特定服务的专用用户、独立的用户/密码文件
ProFTPD:ProFTPD是一个功能强大且广泛使用的免费开源FTP服务器软件,它运行在多个操作系统上,包括Linux、Unix和Windows
Pure-FTPd:Pure-FTPd是一个免费的、开源的FTP服务器软件,它注重安全性和易用性。它支持多种认证方式和虚拟用户
FileZilla Server:FileZilla Server是一个Windows平台上的免费FTP服务器软件,它提供了用户管理、权限控制和日志记录等功能
Cerberus FTP Server:Cerberus FTP Server是一个功能丰富、易于使用的FTP服务器软件,它支持多种认证方式、加密传输和远程管理
IIS FTP Server:IIS(Internet Information Services)是Windows操作系统自带的Web服务器软件,它也提供了FTP服务器功能。可以通过IIS管理工具配置和管理FTP站点
vsftpd:vsftpd(Very Secure FTP Daemon)是一个轻量级、快速和安全的FTP服务器软件,它专注于提供安全性和性能。它是Linux系统中最常用的FTP服务器软件之一
下面将主要介绍vsftpd软件
/etc/vsftpd.conf:这是vsftpd的主要配置文件,其中包含了服务器的配置选项,如监听端口、用户权限、匿名访问设置等
/etc/vsftpd:这个目录通常包含一些附加的配置文件或子目录,用于存储与vsftpd相关的其他配置信息
/var/ftp?:这是默认的FTP根目录,用于存储FTP服务器上的文件。这个目录通常包含匿名用户和已认证用户的文件
/usr/sbin/vsftpd:这是vsftpd服务器程序的可执行文件,用于启动和运行vsftpd服务器
/var/log/vsftpd.log:这是vsftpd的日志文件,记录了服务器的活动和事件,如用户登录、文件传输等
/etc/pam.d/vsftpd:这个文件包含了 vsftpd 使用的PAM(Pluggable Authentication Modules,可插拔身份验证模块)配置,用于定义身份验证策略
#服务端:
yum install -y vsftpd #安装ftp服务器
systemctl start vsftpd #开启服务
#客户端:
yum install -y ftp #安装ftp服务程序
前提:关闭防火墙和临时防护
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭临时防护
通式:ftp 服务端ip
方式一:输入快捷键:“Ctrl+D”
方式二:输入命令“quit”
#在vsftpd配置文件下修改默认端口号
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
listen_port=2121 #默认值为21
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
#在vsftpd配置文件下可修改主动模式的端口
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
connect_from_port_20=YES #主动模式端口为20
ftp_data_port=20 #指定主动模式的端口,默认为20
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
#在vsftpd配置文件下可修改被动模式的端口
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
#0为随机分配,规定端口范围会影响客户端的并发数
pasv_min_port=6000 ?
pasv_max_port=6010
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
#在vsftpd配置文件下可修改服务端的时间
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
use_localtime=YES #使用当地时间(默认为NO,使用GMT)
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
#在vsftpd配置文件下可修改匿名用户的相关配置
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #支持匿名用户,CentOS8默认不允许匿名
no_anon_password=YES #匿名用户略过口令检查 , 默认NO
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
?ftp协议默认匿名用户不允许上传文件, 为安全考虑,如果人人都传到ftp服务器,会出现病毒、空间容量等问题
#服务端添加程序的权限
#在vsftpd配置文件下可修改匿名用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES #支持匿名用户上传,注意:文件系统权限
anon_mkdir_write_enable=YES #支持匿名用户建文件夹
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
**********************************************************************
#服务端添加ftp用户的文件系统权限
[root@localhost ~]#setfacl -m u:ftp:rwx /var/ftp/pub/
[root@localhost ~]#getfacl /var/ftp/pub/ #查看指定目录的权限
***********************************************************************
#服务端删除添加到/var/ftp目录下的所有规则,恢复默认权限
[root@localhost ~]#setfacl -b /var/ftp
①默认匿名用户不允许上传文件?
②在vsftpd配置文件下可修改匿名用户的权限?
?③服务端添加ftp用户的文件系统权限
④验证,现在匿名用户能否上传文件到ftp服务器
#在vsftpd配置文件下可修改匿名用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO #只能下载全部读的文件, 默认YES
anon_umask=0333 #指定匿名上传文件的umask,默认077,注意:0333中的0不能省略
anon_other_write_enable=YES #可删除和修改上传的文件,默认NO
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
?①匿名用户从服务端下载文件到客户端的当前目录下
②匿名用户在服务端删除文件
匿名用户上传文件默认的所有者是ftp用户,这是可以修改的
#在vsftpd配置文件下可修改匿名用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
chown_uploads=YES ? ? ? ?#默认NO
chown_username=dh #指定匿名用户的上传文件的默认的所有者为dh用户
chown_upload_mode=0644 #指定上传文件的权限
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
#在vsftpd配置文件下可修改匿名用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #默认YES
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
#在vsftpd配置文件下可修改系统用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
local_enable=YES #是否允许linux用户登录
write_enable=YES #允许linux用户上传文件
local_umask=022 #指定系统用户上传文件的默认权限对应umask
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
#在vsftpd配置文件下可修改系统用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
guest_enable=YES #所有系统用户都映射成guest用户
guest_username=ftp ? #配合上面选项才生效,指定guest用户
#local_root=/ftproot #注释此行,默认所有用户都在ftp用户的家目录
user_config_dir=/etc/vsftpd/conf.d/ #每个用户独立的配置文件目录,可自由指定
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
*******************************************************************************
#编写子配置文件
[root@localhost ~]#mkdir -p /data/{mimi,gugu}
[root@localhost ~]#vim /etc/vsftpd/conf.d/lisi
local_root=/data/mimi
[root@localhost ~]#vim /etc/vsftpd/conf.d/zhangsan
local_root=/data/gugu
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
①禁锢所有系统用户在家目录中
#在vsftpd配置文件下可修改系统用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES #禁锢系统用户,默认NO,即不禁锢
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
?②禁锢用户开启白名单和黑名单
#在vsftpd配置文件下可修改系统用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES ???? #默认是NO
chroot_list_file=/etc/vsftpd/chroot_list ??#默认值
当chroot_local_user=YES和chroot_list_enable=YES时,则chroot_list中用户不禁锢,即白名单,只允许名单里的用户登录
当chroot_local_user=NO和chroot_list_enable=YES时, 则chroot_list中用户禁锢,即黑名单,只有文件里的用户禁锢
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
ftp服务端默认启动日志
#wu-ftp 日志:默认启用
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
xferlog_enable=YES #启用记录上传下载日志,此为默认值
xferlog_std_format=YES #使用wu-ftp日志格式,此为默认值
xferlog_file=/var/log/xferlog #可自动生成, 此为默认值
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
*************************************************************************
#vsftpd日志:默认不启用
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
dual_log_enable=YES #使用vsftpd日志格式,默认不启用
vsftpd_log_file=/var/log/vsftpd.log #可自动生成, 此为默认值
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
#在vsftpd配置文件下可修改提示信息
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
ftpd_banner="welcome to dhyq ftp server"
banner_file=/etc/vsftpd/ftpbanner.txt ?
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务
#在vsftpd配置文件下可修改限速
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anon_max_rate=1024000 #1024000表示1MB/s
local_max_rate=102400
[root@localhost ~]#systemctl restart vsftpd #重启vsftpd服务