vsftpd的安全性主要体现在三个方面:进程分离,处理不同任务的进程彼此是独立运行的;进程运行时均已最小权限运行;多数都使用chroot进行了禁锢(CHROOT就是Change Root,改变根的一种技术。chroot主要作用是增进系统的安全)。

    ftp工作模式:

主动模式:1.客户端随机开启大于1024的X端口与服务器的21端口建立连接通道,通道建立后,客户端随时可以通过该通道发送上传或下载的命令。

2.当客户端需要与服务器进行数据传输时,客户端会再开启一个大于1024的随机Y端口,并将Y端口号通过之前的命令通道传送给服务器的21端口。

3.服务器获取到客户端的第二个端口后会主动连接客户端的该端口,通过三次握手后完成服务器与客户端数据通道的建立,所有的数据均通过该数据通道进行传输。

    被动模式:1.客户端随意开启大于1024的X端口与服务器的21端口建立连接通道。

2.当客户端需要与服务器进行数据传输时,客户端从命令通道发送数据请求要求上传或下载数据。

3.服务器收到数据请求后会随机开启一个端口Y,并通过命令通道将该端口信息传送给客户端。

4.客户端在收到服务器发送过来的数据端口Y的信息后,将在客户端本地开启一个随机端口Z,此时客户端再主动通过本机的Z端口与服务器的Y端口进行连接,通过三次握手连接完成后,即可进行数据传输。


接下来开始具体安装与管理vsftp(centos7.2)

yum -yinstall vsftpd
yum -y install vsftpd
systemctl start vsftpd
systemctl enable vsftpd

  安装完后我们可以看到具体的安装路径和配置文件所在位置;

[root@localhost ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd(日志轮转备份配置文件)
/etc/pam.d/vsftpd(基于PAM的vsftpd验证配置文件)
/etc/vsftpd/ftpusers(默认的vsftpd黑名单)
/etc/vsftpd/user_list(可以通过主配置文件设置该文件的味黑名单或白名单)
/etc/vsftpd/vsftpd.conf(vsftpd的主配置文件)

(1)这里修改.conf文件
anonymous_enable=YES(是否开启匿名访问功能,默认为开启)
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

(2)服务管理

这里要启动vsftpd的话,在不熟悉Linux安装组件SELinux以及防火墙的情况下,我们可以暂时关闭这两个安全组件。

setenforce 0
systemctl stop firewalld

(3)客户端访问

在浏览器中输入ftp://serviceIP。多数浏览器仅供浏览和下载不能上传数据。

推荐使用FileZilla


续.......