vsftpd 是“verysecureFTPdaemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 LinuxBSDSolaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。

协义响应码

     1开头      2开头      3开头     4开头     5开头
   服务器信息  正确响应信息     正常响应    客户端错误  服务器端错误 

vsftpd的用户类型

         匿名用户           本地用户           虚拟用户

事实上是服务器端自动映射的一个系统用户

/etc/passwd中的用户,默认root和id号小于500的用户都禁止访问ftp

事实上是服务器端自动映射的一个系统用户

vsftpd的主要配置文件

          主配置文件            服务脚本          执行程序
/etc/vsftpd/vsftpd.conf   /etc/rc.d/init.d/vsftpd /usr/sbin/vsftpd

vsftpd的主配置文件/etc/vsftpd/vsftpd.conf说明(修改前先备份)

anonymous_enable=YES  是否允许匿名登录
local_enable=YES  是否允许本地用户登录
write_enable=YES  是否允许本地用户对FTP有写的权限
anon_upload_enable=YES 是否允许匿名用户有上传的权限
anon_mkdir_write_enable=YES 是否允许匿名创建新文件夹
dirmessage_enable=YES 是否开启目录欢迎信息,这个文件必须手动创建
xferlog_enable=YES 是否让系统自动维护上传和下载的日志文件
connect_from_port_20=YES 是否设定FTP服务器将启用FTP数据端口的连接请求
chown_uploads=YES 设定是否允许改变上传文件的属主,与下面一个设定项配合使用
chown_username=whoever 设置想要改变的上传文件的属主,如果需要,则输入一个系统用户名
/var/log/vsftpd.log 设定系统维护记录FTP服务器上传和下载情况的日志文件
xferlog_std_format=YES 是否以标准xferlog的格式书写传输日志文件
idle_session_timeout=600 设置数据传输中断间隔时间,此语句表示空闲的用户会话中断时间为600秒
data_connection_timeout=120 设置数据连接超时时间,该语句表示数据连接超时时间为120秒
ftpd_banner=Welcome toblahFTPservice 登录FTP服务器时显示的欢迎信息
chroot_list_enable=YES 用户登录FTP服务器后是否具有访问自己目录以外的其他文件的权限,必须与下面的设置项配合
chroot_list_file=/etc/vsftpd/chroot_list 被列入此文件的用户,在登录后将不能切换到自己目录以外的其他目录,从而有利于FTP服务器的安全管理和隐私保护。此文件需自己建立
userlist_enable=YES/NO 是否允许ftpusers文件中的用户登录FTP服务器,默认为NO
userlist_deny=YES/NO 设置是否阻扯user_list文件中的用户登录FTP服务器,默认为YES

除了上述那些基本设定,我们还可以在vsftpd.conf文件中添加更多的安全选项。其中几个常用的如下:

限制最大连接数和传输速率

local_max_rate设置项 用于设置本地用户的最大传输速率,单位为B/s,值为0时表示不限制。例如local_max_rate=100000表示FTP服务器的本地用户最大传输速率设置为100KB/s.

anon_max_rate设置项 用于设置匿名用户的最大传输速率,单位为B/s,值为0表示不限制。例如ano_max_rate=100000,表示FTP服务器的匿名用户最大传输速率设置为100KB/s.

[root@yulong output]#vim/etc/vsftpd/vsftpd.conf

anon_max_rate=2000            

local_max_rate=2000          ←在文件最后一行添加

max_client设置项 用于设置FTP服务器所允许的最大客户端连接数,值为0时表示不限制。例如max_client=100表示FTP服务器的所有客户端最大连接数不超过100个。

max_per_ip设置项

用于设置对于同一IP地址允许的最大客户端连接数,值为0时表示不限制。例如max_per_ip=2表示同一IP地址的FTP客户机与FTP服务器建立的最大连接数不超过2个。

[root@yulong output]#vim/etc/vsftpd/vsftpd.conf

max_clients=100              

max_per_ip=2                  ←在文件最后一行添加

使用SSL加密ftp服务器:

1.先自建一个CA

2.创建申请证书

3.CA签刚才申请的vsftpd的证书

4.我们先不加SSL加密看看效果可以正常连接,但是不安全我们用抓包工具就可以账号密码。

5.现在我们把SSL加密的这段写在vsftpd.conf配置文件中,看看效果。

[root@yulong ssl]# vim /etc/vsftpd/vsftpd.conf#SSLssl_enable=YESssl_tlsv1=YESssl_sslv2=YESssl_sslv3=YESallow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YESrsa_cert_file=/etc/vsftpd/ssl/vsftpd.crtrsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key

6.这时候会弹出我们刚才申请的证书

7.用SSL连接以后再抓包

 

8.这时候就有SSL认证了,一个安全的ftp搞定。