vsftpd 是“verysecureFTPdaemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 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搞定。