Linux下有很多可用的FTP服务器,其中比较流行的有WU-FTP(Washington UniversityFTP)、VSFTP、PURE-FTPD等。VSFTP作为后起之秀,越来越流行。
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

  • 使用装备: 阿里云服务器CentOS 6.5

    1
    2
    3
    4
    5
    6
    7
    8
    [root@iZ25ltulsmiZ ~]# uname -a
    Linux iZ25ltulsmiZ 2.6.32-431.23.3.el6.x86_64 #1 SMP Thu Jul 31 17:20:51 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
    [root@iZ25ltulsmiZ ~]# lsb_release -a
    LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch
    Distributor ID: CentOS
    Description: CentOS release 6.5 (Final)
    Release: 6.5
    Codename: Final
  • 配置流程
    1、检查是否已经安装ftp软件

    1
    [root@iZ25ltulsmiZ ~]# rpm -qa | grep vsftpd

2、运行1命令后若为空则说明没有安装,输入以下命令进行安装

1
[root@iZ25ltulsmiZ ~]# yum install -y vsftpd

3、运行vsftpd服务器

1
[root@iZ25ltulsmiZ ~]# service vsftpd start

service vsftpd start 开启vsftpd服务
service vsftpd status 查看vsftpd服务状态
service vsftpd restart 重启vsftpd服务

4、vsftpd开启后直接可以输入ip访问,此时默认路径是/var/ftp/pub文件夹
5、vsftpd主要的配置文件如下:

1
2
3
4
/ctc/vsftpd/vsftpd.conf      #vsftpd服务器主要配置文件 |  
/etc/vsftpd/ftpusers #禁止访问vsftpd服务器的用户列表|
/etc/vsftpd/user_list #根据vsftpd.conf许可或禁止访问vsftpd服务器的用户列表文件 |
/var/ftp #匿名用户的默认文件目录

6、/etc/vsftpd/vsftpd.conf内容说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
anonymous_enable=NO           #禁止匿名
local_enable=YES #允许本地登录
write_enable=YES #允许写,如需上传,则必须
local_umask=027 #将上传文件的权限设置为:777-local_umask
anon_upload_enable=YES #允许虚拟用户和匿名用户上传
anon_other_write_enable=YES #允许虚拟用户和匿名用户修改文件名和删除文件
xferlog_enable=YES #打开日志记录
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log #日志存放位置
xferlog_std_format=YES #标准日志格式
idle_session_timeout=600 #空闲连接超时
data_connection_timeout=120
ftpd_banner=Welcome to ChinaRise FTP service #欢迎信息
guest_enable=yes #允许虚拟用户
guest_username=vsftpdguest #虚拟用户使用的系统账号
virtual_use_local_privs=YES #虚拟用户拥有本地系统权限
chroot_local_user=NO chroot_list_enable=YES
#以上一行将虚拟用户限制在其目录下,不能访问其他目录,或者直接用
listen=yes #监听/被动模式
listen_port=21 #监听端口

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list #虚拟用户名单保存在文件/etc/vsftpd/vsftpd.chroot_list 中
user_config_dir=/etc/vsftpd/vsftpd_user_conf #每个虚拟用户名的更加详细的培植保存在/etc/vsftpd/vsftpd_user_conf 中

7、限制用户不能登录服务器

1
在/etc/vsftpd/ftpusers添加要限制的用户名

8、限制用户只能登录固定路径文件夹

1
2
3
4
5
6
7
8
8.1、修改配置文件中,这样用户就只能访问自己家的目录了:
chroot_local_user=yes

8.2、或者通过修改chroot_list_enable和chroot_local_user搭配
①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。

Comments

2015-08-30