vsftpd是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性、传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点。
vsftd作为更加安全的文件传输的服务程序,允许用户以三种认证模式登录到FTP服务器上。
匿名开放模式: 是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。
本地用户模式:
是通过Linux系统的本地账户密码信息进行认证,相较于匿名开放模式更安全。但是如果被×××破解了账户的信息,就可以畅通无阻登录FTP服务器,从而完全控制整台服务器。
虚拟用户模式:
是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。
实验环境
FTP服务器配置完yum仓库后,安装vsftpd服务程序
匿名开放模式vsftpd服务程序默认开启了匿名开放模式,需要开启匿名用户的上传、下载权限,以及让匿名用户创建、删除、更名文件的权限。真实环境不建议这样配置。FTP服务器匿名用户对应的系统用户是ftp。
anonymous_enable=YES / /允许匿名访问
anon_upload_enable=YES //允许匿名用户上传文件
anon_mkdir_write_enable=YES //允许匿名用户创建目录
anon_other_write_enable=YES//允许匿名用户修改或删除目录
anon_umask=022 //设置匿名用户上传数据的权限掩码
在客户端执行ftp命令连接到ftp服务器,默认访问FTP根目录/var/ftp。基于安全性考虑,FTP根目录的权限不允许匿名用户或其他用户有写入权限(否则访问时会报500错误)
/var/ftp目录下默认创建了一个子文件夹pub,可以在匿名访问时供上传文件使用,那就要确保匿名用户ftp对该目录拥有写入权限。
[root@RedHat6 drwxr-xr-x.客户端测试:
yum install ftp -y Connected to ). ) Name ( Please specify the password. Password: Login successful. Remote system type UNIX. Using binary mode to transfer files. ftp> ls ). 150 Here comes the directory listing. -rw-r--r-- 1 0 0 7 Mar 26 02:42 ftp.txt drwxr-xr-x 2 14 0 4096 Feb 12 2013 pub 226 Directory send OK. ftp> local: ftp.txt remote: ftp.txt 227 Entering Passive ). 150 Opening BINARY mode data connection ). 226 Transfer complete. 7 bytes received ) ftp> cd pub 250 Directory successfully changed. ftp> put 123.txt local: 123.txt remote: 123.txt 227 Entering Passive ). 150 Ok to send data. 226 Transfer complete. 7 bytes sent ) ftp> ls 227 Entering Passive ). 150 Here comes the directory listing. -rw------- 1 14 50 7 Mar 26 02:44 123.txt 226 Directory send OK. ftp> mkdir data 257 "/pub/data" created ftp> quit 221 Goodbye. 本地用户模式之前用的是匿名开放模式,现在关了,然后开启本地用户模式。创建一个本地用户zhangsan进行测试。
anonymous_enable=NO //禁止匿名访问
local_enable=YES //允许本地用户模式
write_enable=YES //设置可写权限
local_umask=022 //设置本地用户模式创建文件的umask值
在客户端执行ftp命令连接到ftp服务器,默认访问的是该用户的家目录,而且该目录的默认所有者、所属组都是该用户自己。
客户端测试:
[root@RedHat6-1 ~]# ftp 192.168.10.50 Connected to 192.168.10.50 (192.168.10.50). 220 (vsFTPd 2.2.2) Name (192.168.10.50:root): zhangsan //zhangsan用户登入 331 Please specify the password. Password: //输入用户的密码 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. 257 "/files" created 227 Entering Passive Mode (192,168,10,50,117,63). 150 Here comes the directory listing. drwxr-xr-x 2 500 500 4096 Mar 26 03:03 files 226 Directory send OK. 350 Ready for RNTO. 250 Rename successful. 227 Entering Passive Mode (192,168,10,50,147,228). 150 Here comes the directory listing. drwxr-xr-x 2 500 500 4096 Mar 26 03:03 database 226 Directory send OK. 250 Remove directory operation successful. 227 Entering Passive Mode (192,168,10,50,123,117). 150 Here comes the directory listing. 226 Directory send OK. 221 Goodbye.