安全的FTP服务器 vsftpd简介_FTP服务器

vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。比如:

非常高的安全性需求
带宽限制
良好的可伸缩性
创建虚拟用户的可能性
IPv6支持
中等偏上的性能
分配虚拟 IP 的可能性
高速

vsftpd 的名字代表"very secure FTP daemon", 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。

一个例子就是 vsftpd 是在 chroot 模式下工作的,chroot 模式就是为程序(这里就是 vsftpd 了)单独指定一个新的目录,它也就不能访问那个目录之外的程序和文件了 --- 所以这也称为“被锁上的”。一个可能被潜在的攻击者破坏的 FTP 服务器将被从系统的其他部分独立开来,从而避免了更大的损失。

由于有了如此多的特性,其中 FTP 服务的安全性应该是最重要的,vsftpd 比其他 FTP 服务器更加优越。WU-FTPD http://www.wu-ftpd.org/ 在这里可以被视作一个反面的例子,因为它在过去的几年中出现了太多的安全缺陷。

附录1:什么是FTP
FTP Transfer Protocol 件传输协议的缩写,在RFC 959中具体说明。

FTP会话时包含了两个通道,一个叫控制通道,一个叫数据通道。

控制通道:控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的。

数据通道:数据通道是和FTP服务器进行文件传输或者列表的通道。

FTP协议中,控制连接均有客户端发起,而数据连接有两种工作方式:PORT方式和PASV方式

PORT模式(主动方式)

FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口(一个大于1024的端口)接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。

PASV模式(被动方式)

在建立控制通道的时候和PORT模式类似,当客户端通过这个通道发送PASV 命令的时候,FTP server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接传送数据。

如果从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND,这一点请特别注意,尤其是在使用防火墙的企业里,这一点非常关键,如果设置错了,那么客户将无法连接。

附录2:FTP用户管理解说

FTP服务器对用户的管理,在默认的情况下是根据 /etc/passwd及/etc/group 来进行的,所以我们一定要了解Linux系统用户和用户组的管理,用户和用户组的管理是一切应用的的基础,有的弟兄不想去了解基础的东西,就想一步成架好各种服务器,事实证明这种学习方法是最不明智的;虽然在您可能在几分钟启动了ftp服务器,但遇到问题时,您不一定能知道是哪里出错;所以基础还是极为重要的;

推荐文章: 《Linux 用户(user)和用户组(group)管理概述》

匿名ftp 用户的理解

当我们访问各大FTP上访问时,可能我们不去想我们以什么身份登录的,如果他的FTP允许匿名登录的话;比如我们在浏览器上打入;

ftp://mirrors.kernel.org

ftp://ftp:ftp@mirrors.kernel.org

我们会发现上面的两行最终都能访问,而且显示的结果也完全一样,最终都跳到 ftp://mirrors.kernel.org 地址;那我们访问这个FTP时,是不是有用户和密码呢?是的,也是需要在的,只是在服务器端允许匿名访问,而匿名访问的用户名和密码都是ftp,只是我们因为匿名访问,没有感觉到他有用户名和密码罢了。第二个地址就是以ftp用户,密码也是ftp来访问 ftp://mirrors.kernel.org;

如果我们以ftp命令连接 mirrors.kernel.org 时,我们会发现需要输入用户ftp,密码ftp才能访问;

在FTP服务器中,匿名用户的用户名和密码都是ftp ;这个用户可以在您的操作系统中的 /etc/passwd 中能找得到;可能有类似下面的一行;

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

说明:

/etc/passwd 是系统用户的配置文件;/etc/group是系统用户组配置文件,您可以通过 《Linux 用户(user)和用户组(group)管理概述》 及其相关文档中了解一些用户管理的一些基础知识;

在ftp用户这行中,我们看到七个字段,每个字段写字段之间用:号分割;

ftp 是用户名
x 是密码字段,是隐藏的;
14 是用户的UID字段,可以自己来设定,不要和其它用户的UID相同,否则会造成系统安全问题;
50 用用户组的GID,可以自己设定,不要和其它用户组共用FTP的GID,否则会造成系统全全问题;
FTP User 是用户说明字段;
/var/ftp 是ftp用户的家目录,可以自己来定义;
/sbin/nologin 这是用户登录SHELL ,这个也是可以定义的,/sbin/nologin 表示不能登录系统;系统虚拟帐号(也被称为伪用户)一般都是这么设置。比如我们把ftp用户的/sbin/nologin 改为 /bin/bash ,这样ftp用户通过本地或者远程工具ssh或telnet以真实用户身份登录到系统。这样做对系统来说是不安全的;如果您认为一个用户没有太大的必要登录到系统,就可以只给他FTP帐号的权限,也就是说只给他FTP的权限,而不要把他的SHELL设置成 /bin/bash 等;

关于ftp用户组的理解

我们查看 /etc/group 的时候,会发现类似这样一条;

ftp:x:50:
/etc/group 是用户组的管理配置文件,上面这行表示用户组ftp,x是密码段,50是GID;我们对照在/etc/passwd中的ftp那行得知ftp用户是属于ftp用户组的,因为ftp用户那行中的GID和ftp用户组的GID是相同的。

匿名ftp用户和ftp用户组是否可以删除

在一般情况下是不能把/etc/passwd和/etc/group 中有把ftp用户和用户组的行删除的,因为FTP服务器是需要他们来对FTP用户实现管理,在默认的情况下。

虽然不能删除,但对/etc/passwd及/etc/group中的ftp用户及ftp用户组的一些相关的东西是能修改的;比如我们可以把ftp用户的家目录改掉,也可以把ftp用户的UID改掉 ... ... 前提是你对用户管理有所了解。系统用户管理是一切应用基础之一,可能初学Linux的弟兄并不了解用户管理的重要性,但慢慢您就会发现这个道理。

时间: 2024-08-08 01:39:45

安全的FTP服务器 vsftpd简介_FTP服务器的相关文章

winxp 系统下架设FTP服务器的步骤_FTP服务器

对啦,今天本文的目的就是带大家在本机上架设一个FTP服务器,建立这种服务器用于远程资源共享实在是个不二的选择!以下架设步骤主要以windows XP系统为例. 如今的国内电信运营商已经把宽带的资费调整到了一个容易被大家接受的水平了,人们在享受宽带带给我们的便利与迅捷的同时,越来越多的人开始考虑是不是应该利用现有的充足资源来做更多的事情.很多人把目标瞄准了FTP服务器.的确,利用FTP来对远程资源共享确实是一个非常不错而且便捷的办法.下面小编以Windows Xp为例,为大家讲解FTP的基本架设技

VSFTP 两招帮你提高FTP服务器的安全性_FTP服务器

一.禁止系统级别用户来登录FTP服务器. 为了提高FTP服务器的安全,系统管理员最好能够为员工设置单独的FTP帐号,而不要把系统级别的用户给普通用户来使用,这会带来很大的安全隐患.在VSFTP服务器中,可以通过配置文件vsftpd.ftpusers来管理登陆帐户.不过这个帐户是一个黑名单,列入这个帐户的人员将无法利用其帐户来登录FTP服务器.部署好VSFTP服务器后,我们可以利用vi命令来查看这个配置文件,发现其已经有了许多默认的帐户.其中,系统的超级用户root也在其中.可见出于安全的考虑,V

vsFTPd 服务器初学者指南_FTP服务器

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序,非常好用,我都用了好长时间,那下面我就给大家介绍下vsftpd的学习指南. 1.vsFTPd,目前常用FTP服务器套件; vsFTPd是一款在Linux发行版中最受推崇的FTP服务器程序;特点是小巧轻快,安全易用;能让其自身特点得发发挥和掌握,也然最主要的是会用; 目前在开源操作系统中常用的FTPD套件主要有ProFTPD.PureFTPd和wuftpd等;至于哪个FTP服务器套件更好,哪个是你最熟悉的,哪个就是最好的; 2.ft

面向初学者的vsftpd安装指南_FTP服务器

在最新的各大发行版中的安装盘中都有vsFTPd的软件包,您用相应发行版提供的软件包管理工具就能安装上:当然您可以到各大发行版的FTP镜像中找到vsftpd的软件包:当然也能用软件包的管理工具在线安装:vsftpd的软件包本来不大,花不了多长时间,两分钟就够了吧.因为本文是初学者教程,我严重推荐您用发行版提供的软件来安装,不推荐您自己来编译源码包的安装方式: 如果您用的是Fedora 或Redhat 系统,可以用下面的命令在线安装: [root@localhost ~]# yum install

Win7中开启系统自带FTP服务器的方法_FTP服务器

工作的原因siyue需要使用FTP服务,由于Windows自带的FTP服务器就很好用,这里siyue就把开启win7自带的FTP服务器的设置分享一下. 第一步:安装IIS及FTP组件1.打开控制面板->程序,选择"打开或关闭Windows功能" 2.在"打开或关闭Windows功能"画面选择"FTP服务器"和"Web管理工具" 3."确定"后等待安装完成 第二步:设置FTP用户及服务器文件夹 siyu

serv_u要关闭被动模式(PASV),使用PORT模式才能连接FTP的解决办法_FTP服务器

问题表现: 使用 flashfxp 或传东西时必须要关闭被动模式,否则无法连接,连接FTP时客户端总是提示:"PORT 模式成功, 请更新你的站点配置文件"! 原因分析: 防火墙或者serv-u没有开放被动模式(PASV)的端口) 解决方法一:(只使用Port模式连接) 如图设置: 解决方法二:(可使用 PASV 和 Port 两种模式连接) 服务器如果启用了防火墙,需要在防火墙上打开一些端口给FTP的PASV模式使用,否则使用PASV模式无法登录. 一.在 Serv-U的本地服务器

FTP 常用命令 使用说明_FTP服务器

熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效. FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,其中 -v 显示远程服务器的所有响应信息: -n 限制ftp的自动登录,即不使用: -i etrc文件: -d 使用调试方式: -g 取消全局文件名. ftp使用的内部命令如下(中括号表示可选项): 1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip. 2.$ macro-ame[args]:执

Ubuntu 安装 vsftpd FTP详细步骤_FTP服务器

vsftpd 是一个对 UNIX 系统遵循 GPL 协议的 FTP 服务器,包括 Linux.它安全而且速度非常快. 本教程将告诉你如何在 Linux 系统中搭建自己的 FTP 服务器.  1. 安装 vsftpd. sudo apt-get install vsftpd   2. 替换配置文件. 用文本编辑器打开 vsftpd.conf 配置文件,一般在 /etc 目录下. [sudo joe /etc/vsftpd.conf  可以做如下修改: 把  anonymous_enable=YES

centos 搭建ftp服务器详解及简单介绍_FTP服务器

centos 搭建ftp服务器 1.安装vsftpd sudo yum install vsftpd 2.配置vsftpd.conf # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=NO # When SELinux is enforcing check for SE bool ftp_home_dir local_enable=YES write_ena