网站模板哪个网站好,免费h5在线制作平台,cd wordpress,网站开发工资高嘛引言
在正式开始讲解之前#xff0c;首先来了解一下文件存储的类型有哪些。
DAS、SAN和NAS是三种不同的存储架构#xff0c;分别用于解决不同场景下的数据存储需求。 DAS (Direct Attached Storage 直接附加存储)#xff1a;DAS 是指将存储设备#xff08;如硬盘#x…引言
在正式开始讲解之前首先来了解一下文件存储的类型有哪些。
DAS、SAN和NAS是三种不同的存储架构分别用于解决不同场景下的数据存储需求。 DAS (Direct Attached Storage 直接附加存储)DAS 是指将存储设备如硬盘直接连接到服务器的内部总线或通过外部接口如USB、SATA、SCSI等连接到服务器。这种存储方式简单、成本较低适用于小型网络环境或单机系统但是不便于多台服务器共享数据并且扩展性有限。
SAN (Storage Area Network 存储区域网络)SAN 是一种高速专用网络将存储设备集中管理并通过光纤通道Fibre Channel、iSCSI等技术与服务器相连。服务器可以像访问本地存储一样快速地访问SAN中的共享存储资源。SAN具有高带宽、低延迟的特点适合大型企业应用和数据库服务支持存储资源共享、备份和容灾策略实施。
NAS (Network Attached Storage 网络附加存储)NAS 是一种独立于服务器的文件级存储解决方案通过标准网络协议如TCP/IP通常是NFS或FTP为多台客户端提供文件共享服务。NAS设备通常包含操作系统、存储介质和网络接口用户可以通过网络进行文件读写操作。NAS非常适合文件共享、备份以及中小型企业存储需求易于部署和管理但相比SAN在性能上可能稍逊一筹。
本文将深入探讨FTP的基本原理分享实用操作技巧并着重讨论如何加强FTP服务的安全性。
在互联网的早期FTP作为一种标准文件传输协议在数据共享和网站管理中扮演了关键角色。即便在今天FTP依然在众多场景下发挥着重要作用尤其是在网页开发、备份、文件同步以及大规模数据交换等领域。
一、FTP基础概念与工作原理
一基本概念 FTP是一种基于C/S架构的协议允许用户通过网络上传、下载和管理远程计算机上的文件。它使用两个主要端口——21号端口进行命令交互20号端口用于数据传输。
二传输方式
FTP有主动模式和被动模式两种连接方式以适应不同的网络环境需求。
FTP 数据传输的类型:
1.主动模式
主动模式:FTP 服务端主动向 FTP 客户端发起连接请求
过程在主动模式下客户端告诉服务器它想要使用的一个高位端口号大于1023然后客户端在这个端口上开启监听。
连接服务器收到客户端的请求后会主动连接到客户端指定的这个端口进行数据传输。
网络环境问题由于服务器需要主动发起连接所以如果客户端位于防火墙或者NAT设备之后并且防火墙或NAT设备没有正确配置以允许服务器的入站连接主动模式可能会遇到问题。
2.被动模式
被动模式:FTP 服务端等待 FTP 客户端的连接请求
过程在被动模式下客户端首先发送一个PASV命令给服务器请求服务器提供一个用于数据传输的随机高位端口号。
连接服务器收到请求后在本地系统中选择一个空闲端口并告知客户端接着由客户端主动发起连接到服务器提供的这个端口进行数据传输。
优点被动模式适用于那些网络设置阻止了服务器向客户端发起连接的情况因为所有的连接都是从客户端发起的。这样即使客户端位于防火墙或NAT设备之后只要这些设备允许出站连接就能正常进行文件传输。
二、vsftpd软件
一vsftpd软件介绍
vsftpd (Very Secure FTP Daemon) 是一个非常流行且安全的开源FTP服务器软件专为类Unix系统设计如Linux、FreeBSD等。它以其高性能、低内存占用和高度的安全性著称被广泛应用于各种规模的企业和个人环境中。
主要特点
安全性vsftpd支持多种安全功能包括强制数据传输加密FTPS或FTP-over-SSL、CHROOT限制用户访问、禁止匿名登录、启用PAM认证机制以增强权限控制并可配置防火墙规则以确保仅允许特定IP地址或网络访问FTP服务。
性能与资源优化vsftpd的设计目标之一是轻量级和高效运行因此即使在资源有限的环境下也能提供良好的性能表现。
灵活性支持虚拟用户模式可通过数据库存储用户信息并进行身份验证。提供详细的配置选项可以针对不同的用户群组设定独立的上传/下载权限、速率限制、目录访问限制等。
并发连接处理可以同时处理大量并发FTP会话并能有效防止DoS攻击。
文件传输模式支持ASCII和二进制两种传输模式以及被动和主动两种FTP连接模式。
日志记录提供详细的日志记录功能便于追踪FTP活动和问题排查。
SELinux兼容与SELinuxSecurity-Enhanced Linux兼容能够更好地融入到具有严格安全策略的环境中。
总之vsftpd是一个强大而灵活的FTP服务器解决方案适合需要稳定可靠FTP服务的任何场景尤其是对于注重安全性和效率的用户而言vsftpd无疑是理想的选择。
二vsftpd安装
首先先来安装该软件yum install vsftpd -y 分析一下主配置文件的基本信息 [rootlocalhost ~]#grep -v # /etc/vsftpd/vsftpd.conf #过滤出配置文件中未被注释的信息
anonymous_enableYES #启用允许匿名用户访问
local_enableYES #允许本地系统用户登录FTP服务器。
write_enableYES #允许所有用户在FTP服务器上执行写入操作如上传文件
local_umask022 #本地用户上传文件的 umask值。
dirmessage_enableYES #当用户在FTP服务器上创建新目录时会显示一条欢迎消息
xferlog_enableYES #启用FTP会话的日志记录功能
connect_from_port_20YES #要求数据连接使用FTP标准端口20这是FTP协议规范的一部分
xferlog_std_formatYES #按照标准格式记录FTP日志以便于分析和处理
listenNO #不以独立运行的方式监听服务通常与下一行listen_ipv6YES结合使用
listen_ipv6YES #通过IPv6地址提供FTP服务。
pam_service_namevsftpd #指定PAM的服务名称用于进行身份验证
userlist_enableYES #启用用户列表文件通常是/etc/vsftpd/user_list可以在此文件中 制哪些用户可以或不可以登录FTP服务器。
tcp_wrappersYES #启用TCP Wrappers支持允许通过/etc/hosts.allow 和/etc/hosts.deny文件对FTP客户端的访问进行更细粒度的控制。三基础操作
两台机器
FTP服务端192.168.83.30FTP客户端 192.168.83.40 服务端开启vsftpd服务systemctl start vsftpd
客户端下载ftp yum install ftp -y 使用ftp 命令连接 ftp IP地址连接服务端 用户名称用户分为三类
匿名用户任何人都可以使用ftp,anonymous用户无需验证口令即可登入 FTP 服务端。
本地用户使用 FTP 服务器中的用户、密码信息
虚拟用户特定服务的专用用户独立的用户/密码文件
我们在安装程序的是时候会自动生成一个程序用户 所以我们在使用ftp连接时会直接进入ftp程序用户的家目录
连接时可以在前面看到不同的数字信息这些数字代表不同的含义
1xx 这些信息代码表示临时响应请求已收到并正在处理中。
例如125 Data connection already open; transfer starting表示数据连接已经建立传输即将开始。
2xx 成功的执行或结束命令。
例如
220 Service ready for new user. 表示FTP服务器准备接受新的用户连接。
230 User logged in, proceed. 表示用户成功登录。
3xx 需要进一步的动作才能完成请求。
例如
331 Password required for user. 表示用户名有效但需要提供密码。
4xx 客户端错误通常是语法错误或者命令无法执行。
例如
425 Cant open data connection. 表示不能打开数据连接。
421 Timeout. 表示超时需要重新登录
5xx 服务器错误由于内部错误或者资源不可用导致命令无法执行。
例如
530 Login incorrect. 表示登录失败用户名或密码不正确。
550 Permission denied.表示没有权限访问指定的文件或目录。
其他代码
421 Service not available, closing control connection.表示服务不可用关闭控制连接。
500 Syntax error, command unrecognized. 命令格式错误或未识别。
553 Requested action not taken: file name not allowed 文件名不允许比如上传文件名不符合服务器规则
登录后可以输入help查可以使用哪些命令 输入quit退出也可以按ctrl d 退出 1.匿名用户
FTP 匿名访问模式是比较不安全的服务模式尤其在真实的工作环境中千万不要存放敏感的数据以免泄露.vsftpd 程序默认已经允许匿名访问模式我们要做的就是开启匿名用户的上传和写入权限
vim /etc/vsftpd/vsftpd.conf 添加以下内容 参数作用anonymous_enableYES允许匿名访问模式。anon_umask022匿名用户上传文件的 umask 值。anon_upload_enableYES允许匿名用户上传文件anon_mkdir_write_enableYES允许匿名用户创建目录anon_other_write_enableYES允许匿名用户修改目录名或删除目录 修改完毕后重启服务让配置文件生效systemctl restart vsftpd
①创建文件
但是重启服务后会发现还是不能创建文件 这是因为我们对程序用户的家目录还没有权限 原来匿名用户的 FTP 根目录的属主与属组都是 root所以匿名用户没有写入权限没有写入权限就无法创建文件
现在来添加一下权限setfacl -m u:ftp:rwx /var/ftp/pub 切记在添加权限时不能写到/var/ftp这样是比较危险的操作一旦修改之后系统会拒绝匿名用户登录因为添加此项权限后ftp用户就可以切换真正的系统根。会对文件安全带来威胁。
来服务端查看一下文件 ②下载文件
从服务端复制一些文件到/var/ftp/pub目录中 输入get 文件名 就可以下载文件了 但是要注意在登录之前客户端在哪个目录文件就会下载到哪个目录所以在下载时要注意磁盘空间
③上传文件 使用put命令 put 文件名 上传本地的文件到服务器后可以看到用户的所有者使ftp用户还需要我们去更改属主或权限才可以每次都更改太麻烦我们可以指定文件所有者和权限.默认权限就是644可以更改其他权限 再来上传一个文件进行测试 我们可以看到文件的所有者权限与之前都发生了改变 ④删除文件
这里是使用delete命令而不是rm命令 2.本地用户
使用本地用户登录那么它的根就是本地用户的家目录了 在配置文件中规定本地用户是可以直接上传文件的 但是它可以切换到服务端的根目录所以客户端使用本地用户的时候要额外注意权限设置保证系统安全 我们也可以将它禁锢在自己的家目录中需要修改一下配置文件启用禁锢。
将103、104、106行注释掉默认是关闭注释后开启 chroot_local_userYES 这个选项设置为YES 表示所有本地非匿名用户在登录后将被限制在他们的主目录内不能切换到系统的其他部分。这被称为“更改根目录”或“chroot”。 chroot_list_enableYES 当此选项设置为YES 时表示启用一个用户列表来控制哪些用户不受上一行chroot_local_userYES 的限制。 chroot_list_file/etc/vsftpd/chroot_list 指定一个文件路径即 /etc/vsftpd/chroot_list。在这个文件中列出的用户不会受到 chroot 限制即使 chroot_local_userYES已启用。也就是说这些用户登录FTP后可以离开自己的主目录访问服务器上的其他目录。 首先需要创建一个文件这个文件里的用户是可以切到系统根的用户除此之外的都不可以 登录kysw用户切换根目录后还是在自己的家目录当中 3.虚拟用户 因为虚拟用户模式的帐号口令都不是真实系统中存在的所以只要配置妥当虚拟用户模式会比本地用户模式更加安全但是 Vsftpd 服务配置虚拟用户模式的操作步骤相对复杂一些具体流程如下:
第 1步:建立虚拟 FTP用户数据库文件
切换到FTP程序目录 cd /etc/vsftpd/
创建用于生成 FTP 用户数据库的原始帐号和密码文件 vim userlist 使用db_load 命令用HASH算法生成FTP用户数据库文件vuser.db 因为数据库文件内容比较敏感所以权限要给小一点 chmod 600 user.db
第 2步:创建 FTP根目录及虚拟用户映射的系统用户
创建用户 zhaowu并设置为不允许登陆系统并定义该用户的家目录为保证其他用户可以访问给予rwxr-xr-x 权限 第 3步:建立支持虚拟用户的 PAM 认证文件 第 4步:在 vsftpd.conf 文件中添加支持配置 anonymous_enableNO禁止匿名开放模式。local_enableYES允许本地用户模式。guest_enableYES开启虚拟用户模式。guest_usernamezhaowu指定虚拟用户帐号.pam_service_nameuser.vu指定 pam文件。allow_writeable_chrootYES允许禁锢的 FTP 根目录可写而不拒绝用户登入请求
第 5步:为虚拟用户设置不同的权限
现在不论是 zhangsan 还是lisi帐户他们的权限都是相同的一一默认不能上传、创建、修改文件如果希望用户 lisi 能够完全的管理 FTP 内的资料就需要让FTP 程序支持独立的用户权限配置文件了
指定用户独立的权限配置文件存放的目录在配置文件中添加下图信息
vim /etc/vsftpd/vsftpd.conf 在/etc/vsftpd/创建目录并切换到该目录 创建空白的zhangsan用户的配置文件并创建lisi用户的配置文件指定具体权限 第 6步:重启 vsftpd 服务验证实验效果
systemctl restart vsftpd重启服务 可以看到我们登录lisi用户是不存在的创建的文件是在zhaowu用户的家目录下就是之前指定映射的系统用户 四修改端口号
在配置文件中添加listen_port10086默认值为21 修改完毕后重启服务systemctl restart vsftpd记住每次修改配置文件后都有需要重启服务使配置文件生效
再去连接时就要指定端口号 五PAM模块认证登录
由于ftp是明文传输 抓取是可可以获取密码的 默认是不让使用root 用户登录的
首先看一下vsftpd程序的pam模块 vim /etc/pam.d/vsftpd 我们先来看一下文件 ftpusers 这是一个系统文件通常位于 /etc/vsftpd/ftpusers包含了不允许登录 FTP 服务器的用户列表。将用户名添加到此文件可禁止该用户通过 FTP 登录。
user_list 在 vsftpd 的配置中可以使用user_list 文件来指定是否对某些用户进行 chroot改变根目录限制。在/etc/vsftpd/user_list 中列出的用户会根chroot_local_user、chroot_list_enable 配置项的影响而受到不同的权限控制。
在这两个文件里的用户是无法通过FTP登录的
可以看到这两个文件中都有root用户 直接会拒绝登录 将pam模块中的deny改为allow表示允许这个文件里的用户登录 将user_list文件中的root用户注释掉 然后在之前创建的chroot_list中添加root或者将配置文件注释 这样我们就可以登录了