当前位置: 首页 > 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

    相关文章:

  • Docker 容器虚拟化技术和自动化部署
  • Java面试:Spring及Spring Cloud技术深度剖析
  • 基于Springboot + vue + 爬虫实现的高考志愿智能推荐系统
  • Nacos源码—1.Nacos服务注册发现分析二
  • 驱动开发硬核特训 │ 深度解析 fixed regulator 驱动与 regulator_ops
  • Linux 命令行利用 speedtest 测速
  • MySQL 的覆盖索引是什么?
  • 8.Android(通过Manifest配置文件传递数据(meta-data))
  • 【lammps】后处理 log.lammps
  • 如何在idea 中写spark程序
  • Linux学习笔记(一):Linux下的基本指令
  • 详解RabbitMQ工作模式之简单模式
  • 天猫TP代运营服务商-品融电商:助力品牌破局增长的专业推手
  • 智慧健康养老实训室建设方案:科技引领养老健康服务人才培养
  • 技术与文化双轮驱动:数字化转型的核心要素
  • 运维实施27-Linux权限管理
  • OpenGL进阶系列21 - OpenGL SuperBible - blendmatrix 例子学习
  • Pytorch深度学习框架60天进阶学习计划 - 第53天:自监督学习范式(一)
  • C++?模板!!!
  • 深入浅出JavaScript常见设计模式:从原理到实战(2)
  • 王星昊再胜连笑,夺得中国围棋天元赛冠军
  • 油电同智,安全超充!从上海车展看中国汽车产业先发优势
  • 一季度规模以上工业企业利润由降转增,国家统计局解读
  • 坤莹·帕塔玛·利斯达特拉任世界羽联主席
  • 日均新开三家“首店”,上海的“首发经济”密码是什么?
  • 中国人民对外友好协会代表团访问美国