专栏首页.Net框架学苑在IIS上搭建多用户隔离的FTP服务

在IIS上搭建多用户隔离的FTP服务

扫码关注我们,我们学的不仅是框架,更是梦想!更多技术文章查看 http://letyouknow.net/ FTP是文件传输协议(File Transfer Protocol)的简称,该协议属于应用层协议(端口号通常为20、21),用于Internet上的双向文件传输(即文件的上传和下载)。

我们通常会在服务器上搭建FTP服务,方便上传编译后的.NET网站到IIS上,当然,以后我们会使用一些持续集成的手法来作网站的发布,使站点服务可靠、稳定、持续服务于用户,这些会在日后的文章会有专题讨论。本文基于Windows Server 2012 服务器版本,IIS 8.5 展开的。

IIS8.5上搭建FTP服务

1 FTP服务器工具的决择 ;

2 FTP服务器的安装;

3 在IIS中添加FTP站点;

4 FTP多用户隔离的设置;

5 客户端的连接测试;

1 FTP服务器工具决择

免费的FTP服务器有N种,举个栗子:Serv-U,FileZillaServer。IIS中的FTP和windows紧密结合可以使用ACL,而且免费。但是Serv-U这个东西现在出来了好多漏洞,很不安全,但是使用比较方便。

个人认为,各工具的各有优缺点,决择主要是看某个工具是否适合你的需要,在学习成本与需求目标上作为判断主要依据。既然我们主要是为了上传站点文件,那么选择WINDOWS SERVER 2012自带的IIS中内置的FTP服务器组件,岂不是简单就是美么。

或许你会担心,IIS上部署着多个网站,同时在IIS上使用FTP站点来上传文件,是否会影响其它网站的正常运作,我觉得没必要担心这类问题。FTP,HTTP都是应用层的协议,但他们都是基于TCP传输层,而且端口号也不一样,一个是21,一个是80。

2 FTP服务器的安装

我们来看看在IIS上安装FTP服务的步骤:

1、打开“控制面板”的“程序和功能”:

2、进入到“程序和功能”的界面,选择左侧的“打开或关闭Windows功能”,打开“Windows”功能对话框:

3、展开“Internet信息服务”节点,发现默认情况下“FTP服务器”子节点并没有被选中,下图显示已安装,因为之前已装好了。

4、安装完成后,你会在“服务”管理工具中看到“MIcrosoft FTP Service”服务;

3 在IIS中添加FTP站点

在“管理工具”的“Internet信息服务(IIS)管理器”中,选中服务器,点击右键菜单中的“添加FTP站点…”;填写好站点名称与物理路径;

接下来是绑定主机名还有端口号码21,这里要提及一个的是SSL设置,我个人建议最好是自己在服务器上创建SSL证书,并绑定到FTP,提高了传输的安全性。

4 FTP多用户隔离的设置

FTP服务器,可能要面对N个用户的不同连接,不同的存储,各自的仅能访问自己的目录,为了实现这目标,我们需要设置FTP按用户来隔离。往下看

1、我们必须要先建立一个目录localuser,必须的,因为它是根据用户来隔离,在它下面需要创建对应的用户文件夹。

2、我们需要建立一个用户组,暂叫FtpGroup吧,并给予最小的权限;

3、然后是建立对应的用户,并且将他们加入上面创建的FtpGroup用户组中,我们建立了一个FtpYisa, 一个FtpWilling用于下面的测试;

4、设置各用户与对应的目录的访问权限,比如,进入localuser>FtpYisa目录,我们右键此目录,设置此目录仅仅是此用户能访问即可;同时,如果想统一,可以直接以组为单位,直接给予FtpGroup用户权的权限。

5、添加FTP的授权规则,允许FtpGroup用户组读写

6、设置FTP用户隔离规则,按用户名称隔离

5 客户端的连接测试

我们在个人电脑上可以安装FileZilla客户端,打开并作如下设置

我们分别用户不同的帐号登录到FTP服务器中,均仅看到属于自己的文件

扫码关注我们,我们学的不仅是框架,更是梦想!更多技术文章查看 http://letyouknow.net/

本文分享自微信公众号 - dotNet框架学苑(LetYouKnowNet),作者:willing

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • .NET开发框架(四)-服务器IIS实践教程

    今天开始我们进入实践教程,从0开始教学,让你从新手到架构师之兑变,目前已经重置了一台服务器,从安装与配置各组件开始学习,适应各种不同层次级别的童靴。

    .Net框架学苑
  • RabbitMQ的使用(二)- RabbitMQ服务在单机中做集群

    在上一篇RabbitMQ的使用(一)- RabbitMQ服务安装 中总结的是在Windows服务器上安装服务,对于一个高可用部署方案,必须要做集群。我自己在用的...

    .Net框架学苑
  • .NET开发框架(八)-服务器集群之网络负载平衡(视频)

    【视频教程在文章底部】,本文讲解Windows服务器集群的网络负载平衡NLB的作用,以及在.NET开发框架的架构设计中,如何应用NLB与ARR,使用它们各有什么...

    .Net框架学苑
  • 【RL-TCPnet网络教程】第35章 FTP文件传输协议基础知识

    本章节为大家讲解FTP(File Transfer Protocol,文件传输协议)的基础知识,方便后面章节的实战操作。

    armfly
  • WPF效果第一百七十五篇之FTP测试连接问题

    最近在摸索通过FTP的方式对文件的上传和下载操作;前面也分享了最终的效果;这不今天在研究测试是否能连接上FTP服务器的时候出现了点小插曲;在stackoverf...

    WPF程序员
  • ftp服务器搭建并通过外网访问

    内网FTP如何端口映射到外网连接访问?通过公网路由器映射或nat123端口映射均可实现。前者是硬件公网端口映射,后者是软件内网端口映射,目的一样,方法不一。

    zls365
  • 基于 CentOS 搭建 FTP 文件服务

    此时,访问 ftp://<您的 CVM IP 地址> 可浏览机器上的 /var/ftp 目录了。

    wuweixiang
  • 华为实操系列 | 如何通过FTP拷贝文件?

    网络技术联盟站
  • 有意思,使用FtpClient上传文件,上传后的文件总是会莫名奇妙的变大

    代码主要是从手机上选择照片上传到服务端,具体实现逻辑中,服务端会先将上传请求中的文件数据放到服务端机器的缓存目录,然后再从缓存目录挪到另外一台FTP服务其中。

    LeoXu
  • 淘宝Tedis组件究竟是个啥(一)

    淘宝的Tedis组件究竟是个啥呢?可能有一些朋友没有听过这个名字,有一些朋友会经常使用,那么今天我就来和大家深入分析一下,它的使用和原理。

    小程故事多

扫码关注云+社区

领取腾讯云代金券