网上很多,但我还是想再整理一份属于自己的
1、vsftp简介
vsftp提供三种登陆方式:.匿名登录 .本地用户登录 .虚拟用户登录 vsftpd的特点:.较高的安全性需求 .带宽的限制 .创建支持虚拟用户 .支持IPV6 .中等偏上的性能 .可分配虚拟IP
2、工作模式
Ftp协议中控制连接均是由客户端发起,而数据连接有两种工作方式:Port和Pasv方式
说明:服务器中常使用的模式是被动模式(存在企业中的客户端(pc)有时难以控制);FTP工具或者浏览器默认使用的都是PASV模式连接FTP服务器
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的那个随机端口进行连接后进行数据传输。
3、安装配置
3.1、安装vsftp
## yum -y install vsftpd pam* db4*
注释:虚拟登陆账户必要依赖包 pam* db4*
3.2、文件说明
文件路径 文件描述
/etc/vsftpd/vsftpd.conf 主配置文件
/usr/sbin/vsftpd Vsftpd的主程序
/etc/pam.d/vsftpd PAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)
/etc/vsftpd/ftpusers 禁止使用vsftpd的用户列表文件。管理员可以把一些对系统安全有威胁的用户账号记录在此文件中;
/etc/vsftpd/user_list 禁止或允许使用vsftpd的用户列表文件,这个文件中指定的用户缺省情况(即在/etc/vsftpd/vsftpd.conf中设置userlist_deny=YES)下也不能访问FTP服务器,在设置了userlist_deny=NO时,仅允许user_list中指定的用户访问FTP服务器。
/var/ftp 匿名用户主目录;本地用户主目录为:/home/用户主目录,即登录后进入自己家目录
/var/ftp/pub 匿名用户的下载目录,此目录需赋权根chmod pub(1为特殊权限,使上载后无法删除)
/etc/logrotate.d/vsftpd.log Vsftpd的日志文件
3.3、用户管理
FTP服务器对用户的管理,在默认的情况下是根据“ /etc/passwd系统用户配置文件” 及 “/etc/group系统用户组配置文件” 来进行配置。
注释:在FTP服务器中,匿名用户的用户名和密码都是ftp ;这个用户可以在您的操作系统中的 /etc/passwd 中能找得到
因为vsftpd默认的宿主用户是root,不符合安全性要求,所以新建立的vsftpd服务的宿主用户
useradd vsftpd -d /var/vsftpd -g ftp -s /sbin/nologin
3.4、调整文件配置
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.backup.conf