1.目的

搭建一个多人使用ftp服务器,进行必要的权限隔离。

2.安装与配置

2.1 安装

我的环境为centos,直接yum install -y vsftpd

2.2 配置文件如下:
#禁止匿名登录
anonymous_enable=NO
#开启本地用户访问
local_enable=YES
#允许写入
write_enable=YES
#
local_umask=022
#
dirmessage_enable=YES
#开启日志
xferlog_enable=YES
#设置ftp-data 端口,默认为20
connect_from_port_20=YES
#记录ftp操作日志
xferlog_file=/var/log/xferlog
#格式化日志
xferlog_std_format=YES
#提示信息
banner_file=/etc/vsftpd/welcome.txt
#将ftp活动目录固定在各用户家目录,在chroot_list为例外,即可以去到其他目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
#被动模式,必须设置为YES
pasv_enable=YES
#
listen=YES
#
listen_ipv6=NO
#pam设置
pam_service_name=vsftpd
#
userlist_enable=YES
#
tcp_wrappers=YES
#使用系统时间
use_localtime=YES
#在user_list 才允许登录ftp
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
2.3 限制在家目录访问配置

主要是下面3个参数chroot_local_user、chroot_list_enable、chroot_list_file=/etc/vsftpd/chroot_list

chroot_local_user   是否将所有用户限制在家目录,YES表示开启,NO表示禁用;
chroot_list_enable  是否启动限制用户的名单,YES表示启用,NO表示禁用
chroot_list_file=/etc/vsftpd/chroot_list   是否限制在家目录的用户名单,至于是限制还是排除名单,取决于chroot_local_user的值,我们可以这样记忆: chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。那么我们势必需要在全局设定下能做出一些“微调”,即,我们总是需要一种“例外机制“,所以当chroot_list_enable=YES时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录“时(即chroot_local_user=YES),”例外”就是:不被锁定的用户是哪些;当”全部用户不被锁定于主目录”时(即chroot_local_user=NO),”例外”“就是:要被锁定的用户是哪些。
2.4 限制用户访问

1、利用pam:配置文件:pam_service_name=vsftpd配置,禁止文件/etc/vsftpd/ftpusers用户登录ftp,初始将root也一并禁止了,需要去除。

2、自身限制:使用userlist_enable、userlist_deny、userlist_file

以下配置为允许user_list中用户访问

userlist_enable=YES                 # 配置为YES,底下userlist_deny才能生效,进行配置
userlist_deny=NO                    # 开放部分人员访问
userlist_file=/etc/vsftpd/user_list # 具体开放访问人员名单

3.特殊需求实现

3.1 实现只允许上传,不允许下载

需求:建设一个私网,要求实现一个普通用户只能往私网传输文件,不能拷贝出来,在私网内部上传下载不受限制。

实现:使用ftp完成此项工作,需要两个ftp,数据目录为nfs共享目录,方案如下:(项目基于aliyun搭建,使用很多aliyun上限制方案)

1.配置一个ftp,配置公网,用户只能上传不能下载,对用户暴漏此公网ip

1.1 配置只上传,这个仅对ftp生效。在上面配置文件添加,这个配置文件在man vsftp.conf 找不到也是比较奇怪。

download_enable=NO

1.2 设置好后,使用xftp、winscp 使用sftp协议,还是可以下载,需要将/etc/ssh/sshd_config下面配置文件修改如下,将sftp协议引导错误的引导程序。对用户宣传好使用ftp协议连接。

Subsystem       sftp    /usr/libexec/openssh/sftp-server.sh

2.再在私网搭建一个ftp,只有私网ip,在私网暴漏此ip,这个ftp不做1中相关配置。
3.两个ftp挂载nfs共享目录,保证数据一致。
以上即可完成上述需求。

ftp服务器搭建(实现只上传禁止下载)相关推荐

  1. 从FTP服务器进行文件的上传和下载

    .net 2.0(c#)下简单的FTP应用程序 本文使用.net 2.0(c#)来实现一般的FTP功能 介绍 微软的.net framework 2.0相对于1.x来说增加了对FTP的支持.以前为了符 ...

  2. 模拟部署FTP服务器并提供文件的上传及下载

    FTP(File Transfer Protocol:文件传输协议)是TCP/IP协议组中的协议之一,主要是提供文件共享服务. 数据端口20:用于传输数据: 控制端口21:用于传输指令: 操作环境:V ...

  3. 如何搭建FTP服务器实现文件的上传及下载?(亲测有效)

      FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. FTP是File Transfer Protoc ...

  4. 【实战-干货】手把手带你搭建自己的FTP服务器,实现文件上传、下载

  5. ubuntu下搭建FTP服务器并使用FileZilla上传下载

    ubuntu下搭建FTP服务器并使用FileZilla上传下载 为了让实验室同学在共享文件时更加方便,我们决定在实验室电脑上搭建一个FTP服务器,ubuntu系统版本为16.04,下面就是我的搭建流程 ...

  6. java实现ftp连接、登陆、上传、下载、删除文件、获取目录、文件列表

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现ftp连接.登陆.上传.下载.删除文件.获取目录.文件列表等操作. 本地调试,首先需要在本机上开启ftp服务和ftp站点. 测试代码 ...

  7. FTP服务(文件的上传和下载)

    文章目录 一.FTP的作用 二.FTP的端口号 三.FTP:匿名.系统.虚拟账户 四.FTP匿名账户的部署 1.关闭防火墙 2.安装vsftp服务 3.编辑配置文件 4.修改属主和属组,并创建文件 5 ...

  8. Python实现阿里云aliyun服务器里的文件上传与下载

    Python实现阿里云服务器里的文件上传与下载 Python实现阿里云服务器里的文件上传与下载 背景: 正文: 预备环境: 构想: 实现: 注意: 结尾 018.4.15 背景: 老实说,因为现实的各 ...

  9. python程序发布到阿里云云服务器_Python实现阿里云服务器里的文件上传与下载

    Python实现阿里云服务器里的文件上传与下载 018.4.15 背景: 老实说,因为现实的各种原因造成电脑换来换去是可能出现的事情,但是电脑能换,电脑里的环境却不能换.我就曾在三个电脑里各自安装了虚 ...

最新文章

  1. R缺失值识别、过滤、填充(中位数、KNN、随机森林)
  2. 图灵奖得主杨立昆:人工智能比你更聪明吗?
  3. PAT (Advanced Level) 1014 Waiting in Line(模拟)
  4. STM32F1笔记(十三)SPI
  5. 用友财务软件主要数据表字段含义
  6. mysql工作中遇到的问题_MySQL工作中遇到的问题记录
  7. oracle查询语句子句,Oracle 查询执行顺序
  8. oracle segment undo_Oracle Undo工作原理
  9. 《大数据》2022年第1期目次摘要
  10. 【CComPtr】CComPtr和CComQIPtr的区别
  11. 32. 脱壳篇-简单带壳的程序、反调试带壳的程序(堆栈平衡原理找OEP、代码段设置断点)
  12. JavaSE----变量、String、运算符、流程控制
  13. python 学习之 PythonBasic2
  14. 蓝桥杯:十六进制转八进制
  15. 修改IP、DNS、MAC工具VC源码实现
  16. 四川大学计算机学院2020推免公示,2020年四川大学计算机(软件)学院夏令营接收推免生条件...
  17. ug冲模标准件库_UG标准件库|标准件库下载|3DSource零件库|海量CAD模型
  18. zoj 1239 Hanoi Tower Troubles Again! 题解Orz
  19. tan-python-day02
  20. 如何只用与非门、或非门构成或门、与门、非门?

热门文章

  1. SQLServer 创建dtsx包更新统计信息(示例)
  2. mysql create user identified by_mysql 创建用户与授权
  3. Linux 认识系统服务(daemon)
  4. 平面设计字体篇:汉字设计四大原则与形态表达
  5. 如何在LabVIEW中进行海康机器视觉算法平台VisionMaster二次开发
  6. 碳焙浓香型铁观音,为何在北方市场被严重冷落
  7. 【WebGL学习日报】22/09/01 : 绘制点
  8. 怎么改vue项目的标题_Vue动态修改网页标题的方法及遇到问题
  9. OpenGL 画出雷达动态扫描效果(二) 非底图
  10. Quantum LeaPs(QP)介绍