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          ←在文件最后一行添加

♂构建安全的vsftpd服务器♂_安全性

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                  ←在文件最后一行添加

♂构建安全的vsftpd服务器♂_安全性_02

使用SSL加密ftp服务器:

1.先自建一个CA

♂构建安全的vsftpd服务器♂_最大的_03

2.创建申请证书

♂构建安全的vsftpd服务器♂_安全性_04

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

♂构建安全的vsftpd服务器♂_最大的_05

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

♂构建安全的vsftpd服务器♂_安全性_06

♂构建安全的vsftpd服务器♂_安全性_07

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

[root@yulong ssl]# vim /etc/vsftpd/vsftpd.conf
#SSL
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/vsftpd/ssl/vsftpd.crt
rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key

♂构建安全的vsftpd服务器♂_安全性_08

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

♂构建安全的vsftpd服务器♂_最大的_09

7.用SSL连接以后再抓包

♂构建安全的vsftpd服务器♂_安全性_10

 

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