vsftpd简介及搭建配置

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 中能找得到;如:

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设置成 /bin/bash 等

匿名用户的属组:/etc/group

ftp:x:50:

第一个字段为:ftp:用户组、第二个字段为:x:密码段、第三个字段为:50:GID

可以根据对比用户配置文件以及用户组配置文件中的UID得知 是否为隶属关系。

五、vsftpd的配置

)因为vsftpd默认的宿主用户是root,不符合安全性要求,所以将新建立的vsftpd服务的宿主用户的shell改为“ /sbin/nologin意思是禁止登录系统 ”:useradd vsftpd -s /sbin/nologin

2.)建立vsftpd虚拟宿主用户:useradd virtusers  -s /sbin/nologin

此次主要介绍虚拟用户,顾名思义虚拟用户在系统中是不纯在的,它们集体寄托于方才创建的“virtusers”用户,那么这个用户就相当于一个虚拟用户组了,因为这个用户的权限将影响到后续讲到的虚拟用户。

3.)调整vsftpd的配置文件(编辑所有的配置文件前最好养成备份的习惯)

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.backup.conf

vim /etc/vsftpd/vsftpd.conf

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/419109b255d3e28eb19ffe2221df079d.html