一、简介 FTP(文件传输协议)全称是:Very Secure FTP Server。 Vsftpd是linux类操作系统上运行的ftp服务器软件。 vsftp提供三种登陆方式:1.匿名登录 2.本地用户登录 3.虚拟用户登录 vsftpd的特点:1.较高的安全性需求 2.带宽的限制 3.创建支持虚拟用户 4.支持IPV6 5.中等偏上的性能 6.可分配虚拟IP 7.高速 Ftp会话时采用了两种通道: 控制通道:与Ftp服务器进行沟通的通道,链接Ftp发送ftp指令都是通过控制通道来完成的。 数据通道:数据通道和Ftp服务器进行文件传输或则列表的通道 二、工作原理 Ftp协议中控制连接均是由客户端发起,而数据连接有两种工作方式:Port和Pasv方式 Port模式(主动模式)--> 默认 Ftp客户端首先和Ftp server的tcp 21端口建立连接,通过这个通道发送命令,客户端要接受数据的时候在这个通道上发送Port命令,Port命令包含了客户端用什么端口(一个大于1024的端口)接受数据,在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。这个时候数据连接由server向client建立一个连接。 Port交互流程: client端:client链接server的21端口,并发送用户名密码和一个随机在1024上的端口及port命令给server,表明采用主动模式,并开放那个随机的端口。 server端:server收到client发来的Port主动模式命令与端口后,会通过自己的20端口与client那个随机的端口连接后,进行数据传输。 Pasv模式(被动方式) 建立控制通道和Port模式类似,当客户端通过这个通道发送Pasv命令的时候,Ftp server打开了一个位于1024和5000之间的随机端口并且通知客户端在这个端口上进行传输数据请求,然后Ftp server将通过这个端口进行数据传输。这个时候数据连接由client向server建立连接。 Pasv交互流程 Clietn:client连接server的21号端口,发送用户名密码及pasv命令给server,表明采用被动模式。 server:server收到client发来的pasv被动模式命令之后,把随机开放在1024上的端口告诉client,client再用自己的20 端口与server的那个随机端口进行连接后进行数据传输。 如果从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND,这一点请特别注意,尤其是在使用防火墙的企业里,这一点非常关键,如果设置错了,那么客户将无法连接。 三、安装vsftpd及相关软件 yum -y install vsftpd* pam* db4* vsftpd:ftp软件 pam:认证模块 DB4:支持文件数据库 四、vsftpd的用户管理: FTP服务器对用户的管理,在默认的情况下是根据“ /etc/passwd系统用户配置文件” 及 “/etc/group系统用户组配置文件” 来进行配置。 在FTP服务器中,匿名用户的用户名和密码都是ftp ;这个用户可以在您的操作系统中的 /etc/passwd 中能找得到;如:
1 |
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin |
在ftp用户这行中,我们看到七个字段,每个字段写字段之间用:号分割; 1.ftp 是用户名 2.x 是密码字段,隐藏的 3.14 是用户的UID字段,可以自己来设定,不要和其它用户的UID相同,否则会造成系统安全问题; 4.50 用用户组的GID,可以自己设定,不要和其它用户组共用FTP的GID,否则会造成系统全全问题; 5.FTP User 是用户说明字段 6./var/ftp 是ftp用户的家目录,可以自己来定义 7./sbin/nologin 这是用户登录SHELL ,这个也是可以定义的,/sbin/nologin 表示不能登录系统;系统虚拟帐号(也被称为伪用户)一般都是这么设置。比如我们把ftp用户的/sbin/nologin 改为 /bin/bash ,这样ftp用户通过本地或者远程工具ssh或telnet以真实用户身份登录到系统。这样做对系统来说是不安全的;如果您认为一个用户没有太大的必要登录到系统,就可以只给他FTP帐号的权限,也就是说只给他FTP的权限,而不要把他的SHELL设置成 […]
View Detailsvsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。此外,本文还介绍了FTP基本原理,以及FTP用户管理方面的基础知识。 简介 vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。 vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。 在开源操作系统中常用的FTPD套件主要还有ProFTPD、PureFTPd和wuftpd等 特点 ①vsftpd 是以一般身份启动服务,所以对于 Linux 系统的使用权限较低,对于Linux 系统的危害就相对的减低了。此外, vsftpd 亦利用 chroot() 这个函式进行改换根目录的动作,使得系统工具不会被vsftpd 这支服务所误用; ②任何需要具有较高执行权限的 vsftpd 指令均以一支特殊的上层程序( parent process ) 所控制 ,该上层程序享有的较高执行权限功能已经被限制的相当的低,并以不影响Linux 本身的系统为准; ③所有来自 clients 端,想要使用这支上层程序所提供的较高执行权限之vsftpd 指令的需求,均被视为『不可信任的要求』来处理,必需要经过相当程度的身份确认后,方可利用该上层程序的功能。例如chown(), Login 的要求等等动作; ④此外,上面提到的上层程序中,依然使用 chroot() 的功能来限制使用者的执行权限。 配置 vsftpd配置 关于主机的设定值 connect_from_port_20=YES(NO) 还记得 wuftp 那篇文章提到的,关于主动联机的 ftp-data 吗? 这个设定项目在启动主动联机的port 20 咯! listen_port=21 使用的 vsftpd命令通道的 port number 设定,如果您想要使用非 正规的 ftpport,在这个设定项目修改吧! dirmessage_enable=YES(NO) 当使用者进入某个目录时,会显示该目录需要注意的内容,显示的 档案预设是.message ,当然,可以使用底下的设定项目来修订! message_file=.message 当 dirmessage_enable=YES时,可以设定这个项目来让 vsftpd 寻找该档案来显示讯息!您也可以设定其它档名喔! listen=YES(NO) 若设定为YES […]
View Details