今年双十一时看到腾讯云服务器搞活动,就果断下手入了一台2核8GB独享5Mb带宽的centos7云服务器,为发表博客空间做准备,也就是您现在看了的“洛水之滨的linux博客”。为了方便后期在本地和服务器之间传送数据,便首先架设ftp服务,平台方面习惯性的选择了大家常用的Vsftpd来搭建,现将架设步骤及注意事项汇总如下:
[root@VM_0_8_centos ~]# yum -y install vsftpd
一、Vsftpd安装
1、安装vsftpd服务
2、启动vsftpd
[root@VM_0_8_centos ~]# systemctl start vsftpd.service
3、设置开机自动运行
[root@VM_0_8_centos ~]# chkconfig vsftpd on
- 注意事项:vsftpd安装完成后,要在腾讯云服务器控制台”安全组”中,开启20,21端口,以便可以正常访问ftp服务器。

二、vsftpd服务的详细配置
1、 备份vsftpd配置文件vsftpd.conf
[root@VM_0_8_centos ~]# cd /etc/vsftpd/
[root@VM_0_8_centos vsftpd]# cp -r vsftpd.conf vsftpd.conf.old
2、关闭匿名用户
[root@VM_0_8_centos vsftpd]# vim vsftpd.conf
找到如下内容,将anon_upload_enable、anon_mkdir_write_enable前加上“#”注释掉,确保anonymous_enable的数值为“NO”,如下
anonymous_enable=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
3、重启Vsftpd服务,以便设置生效
[root@VM_0_8_centos vsftpd]# systemctl restart vsftpd.service
- 服务重启之后,配置文件生效,匿名用户不可以登录了。
4、创建Vsftpd虚拟账户
新建一个不能登录系统用户ftpuser,只用来登录ftp服务。
[root@VM_0_8_centos vsftpd]# useradd -m -d /home/ftpuser/ -s /sbin/nologin ftpuser
为ftpuser用户设置密码:
[root@VM_0_8_centos vsftpd]# passwd ftpuser
Changing password for user ftpuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
- 注意,设置密码时是看不到的,两次输入的密码要一致。
5、配置vsftpd.conf,限制系统用户锁定在/home/ftpuser目录
chroot_local_user #是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)
chroot_list_enable #是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用)
chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值。该文件默认是不存在的,需手动添加。
chroot_local_user=YES | chroot_local_user=NO | |
chroot_list_enable=YES | 1.所有用户都被限制在其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制 | 1.所有用户都不被限制其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制 |
chroot_list_enable=NO | 1.所有用户都被限制在其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 | 1.所有用户都不被限制其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 |
- chroot_local_user总是一个全局性的设定。
- 其为YES时,全部用户被锁定于主目录。
- 其为NO时,全部用户不被锁定于主目录。
- 当chroot_list_enable=YES时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录“时(即chroot_local_user=YES),”例外”就是:不被锁定的用户是哪些;当”全部用户不被锁定于主目录”时(即chroot_local_user=NO),”例外”“就是:要被锁定的用户是哪些。这样解释和记忆两者之间的关系就很清晰了!
三、常见错误:
1、更改Vsftpd.conf配置项后,测试登录情况没有变化
我们在修改完配置项后,记得要重启vsftpd服务,这样新的配置才能起作用
2、限定用户主目录后无法正常访问
Vsftpd从2.3.5之后,增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报错,不能正常登录。
方法一:去除用户主目录写权限
使用命令chmod a-w /home/UserName去除相应用户主目录的写权限,并在该目录下另外创建一个目录并赋以写权限,用来传递文件。
方法二:在vsftpd的配置文件中增加如下内容:
allow_writeable_chroot=YES
四、其它配置项:
1、配合使用userlist_enable和userlist_deny选项,控制用户登录
- userlist_enable=NO,/etc/vsftpd/ftpusers文件中的用户将禁止访问FTP服务器。此时ftpusers文件又被称为“禁止使用vsftpd的用户列表文件”。
- userlist_enable=YES,userlist_deny=NO,此时,FTP服务器仅允许/etc/vsftpd/user_list中的用户访问。
- userlist_enable=YES,userlist_deny=YES,此时,ftpusers和user_list文件中的用户均不能访问FTP服务器,只有不在ftpusers和user_list的系统用户可以正常访问。