当前位置: 首页 > news >正文

FTP-网络文件服务器

部署思路

  • 单纯上传下载ftp
  • 系统集成间的共享 samba
  • 网络存储服务器 NFS

网络文件服务器:通过网络共享文件或文件夹,实现数据共享
NAS ( network append storage):共享的是文件夹

  1. FTP:文件服务器
  2. samba:不同系统间的文件夹或设备共享
  3. NFS:网络文件系统

FTP介绍

  • FTP (File transfer protocol)是TCP/IP 协议组中的协议之一 ,是一个TCP协议。
  • 功能:在服务器与客户端之间进行文件的传输。FTP就是实现两台计算机之间的拷贝。从远程计算机拷贝文件至自己的计算机上,称之为“下载 (download)”文件将文件从自己计算机中拷贝至远程计算机上,则称之为“上传(upload)”文件
  • 这个古老的协议使用的是明码传输方式,且过去有相当多的安全危机历史
  • 为了更安全的使用 FTP 协议 ,我们主要介绍较为安全但功能较少的 vsftpd(very secure File transfer protocol )这个软件。
  • FTP是一个C/S类型的软件,FTP监听TCP端口号为21,数据端口为20

应用场景 

  • 文件服务器
  • 下载服务器
  • 上传服务器

FTP应用模式

  • FTP支持两种模式,一种方式叫做Standard(也就是 PORT方式,主动方式),一种是 Passive (也就是PASV ,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。 Passive模式FTP的客户端发送 PASV命令到 FTP Server。
  • 主动模式:Port模式FTP客户端首先和FTP服务器的TCP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据,vsftp默认模式。

  • 被动模式:Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令而是PaSv命令。FTP服务器收到PaSv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。

FTP访问方式 

  • FTP服务器在默认的情况下,依据使用者登录的情况而分为三种不同的身份,分别是
    • 实体账号:本地账户
    • 来宾账户: guest
    • 匿名登录者 :anonymous ftp
       

FTP服务器部署

// a、 vsftp安装
yum -y install vsftpd// b、 vsftp开机启动
systemctl enable vsftpd
// Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to/usr/lib/systemd/system/vsftpd.service.// c、启动vsftp服务
systemctl start vsftpd//d、 验证启动
Isof -i :21
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vsftpd 1951 root 4u IPv6 32837 0t0 TCP *:ftp (LISTEN)

相关配置文件 

  • 主配文件:/etc/vsftpd/vsftpd.conf
  • 下载目录:/var/ftp/
  • FTP日志:/var/log/xferlog

FTP客户端

FTP相关命令

虚拟用户登陆

案例

为了解决公司员工文件存储和下载的需求。要求部署内部FTP服务器,员工可以通过自己的账
号的权限对FTP进行操作。

  1. 公司公共文件可以通过圈名下载
  2. 公司财务部、商务部、行政部、技术部分别拥有自己的部门文件夹,彼此之间相互隔离
  3. 部门之间只有主管才能拥有上传权限,普通员工只能下载
  4. 禁止用户查看家目录以外的数据
  5. 确保ftp账号安全

 案例拆解

  • FTP需要开启匿名下载 默认FTP支持匿名下载
  • 分析针对不同部分实现目录隔离 有两种方法1.同部门共用本地账号2.虚拟账号
  • 部门内部员工权限不同 实现方法 虚拟账号
  • 禁止用户切出 chroot
  • 防止本地账号泄露 虚拟账号

 部署步骤

  • 创建虚拟用户映射的本地账号
创建虚拟用户映射的本地账号
useradd -s /sbin/nologin -d /var/tmp/vuser_ftp yudan
新版vsftpd不允许用户主目录有w权限,因此在主目录下新建一个子目录,赋予700权限。所有上传、下载、删除、重命名等操作只能在子目录中进行
chmod 500 /var/tmp/vuser_ftp设置不同部门之间的根文件夹,给予700权限
mkdir /var/tmp/vuser _ftp/shichang
mkdir /var/tmp/vuser _ftp/caiwu
mkdir /var/tmp/vuser _ftp/xingzheng
mkdir /var/tmp/vuser _ftp/jishu
chmod 700 /var/tmp/vuser_ftp/*修改部门共享文件夹的所有者和属组为yudan
chown yudan.yudan /var/tmp/vuser_ftp -R
  • 配置文件开启虚拟用户验证
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect _from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
Is_recurse_enable=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_usemame=ayitula
virtual_use_local_privs=NO
user_config_dir=/etc/vsftpd/vconf.d/
  • 建立虚拟用户验证数据库
建立虚拟用户账号密码文件
cat /etc/vsftpd/vuser
sc_01
123
xZ_01
123
js_01
123
cw_01
123
SC_02
222
xz_02
222
js_02
222
cw_02
222生成账号密码数据库文件
db _load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.db
  • 开启pam认证
cat /etc/pam.d/vsftpd
#注意要添加到开头
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
#% 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
  • 设置不同部门员工的权限
建立部门员工子配置文件,用于定义权限
mkdir /etc/vsftpd/vconf.d/定义虚拟用户权限
部门主管有管理权限
主管模板文件
cat /etc/vsftpd/vconf.d/01_temp
#指定家目录
local_root=/var/tmp/vuser_ftp/xxx
#允许新建文件或目录权限
anon_umask=077
#开放下载权限
anon_world_readable_only=NO
#开放上传权限
anon_upload_enable=YES
#开放创建目录的权限
anon_mkdir_write_enable=YES
#开放删除和重命名目录的权限
anon other write enable=YES部门员工只有下载权限
部门员工模板文件
cat /etc/vsftpd/vconf.d/02_temp
local_root=/var/tmp/vuser_ftp/xxx
anon_ world_readable_only=NO
    http://www.xdnf.cn/news/198415.html

    相关文章:

  • 使用 Vue3 + Webpack 和 Vue3 + Vite 实现微前端架构(基于 Qiankun)
  • iVX 图形化编程如何改写后端开发新范式
  • EXCEL中跨行匹配两组数据
  • 流域生态系统碳排放、碳循环模拟与评估技术应用
  • 【基础篇】static_config采集配置详解
  • Vue 3 中通过 createApp 创建的 app 实例的所有核心方法,包含完整示例、使用说明及对比表格
  • 深入解析 PyTorch 中的 torch.distributions模块与 Categorical分布
  • 2025吃鸡变声器软件推荐
  • 【Vue3 组合式 API 在大型项目中的实践:useOperatorData 封装与应用】
  • 如何开发动态贴纸功能?一体化美颜SDK的技术实现思路与实战方案
  • Java 入门宝典--注释、关键字、数据类型、变量常量、类型转换
  • 服务器部署,Nginx安装和配置
  • 思维链理解汇总
  • 美团社招一面
  • 2025天津二类医疗器械经营备案攻略
  • AI 边缘盒子:智能与效率的边缘先锋
  • 生成对抗网络(Generative Adversarial Nets,GAN)
  • 知识付费平台推荐及对比介绍
  • Nacos源码—1.Nacos服务注册发现分析一
  • Coding Practice,48天强训(26)
  • 空间计算:开启人机交互新纪元的下一代技术范式
  • 安卓主题换肤功能
  • 安卓基础(强制转换)
  • 社交电商和泛娱乐平台出海南美市场支付方式与策略
  • ASP.NET MVC​ 入门指南四
  • 【quantity】3 Unit 物理量计算库(quantity.rs)
  • c语言的指针详解
  • js补环境工具使用技巧、补环境实例、重点环境检测点详解
  • Qt开发:XML文件的写入与读取
  • AI与机器人外科手术:如何用智能化技术提升手术精度与安全性?