在腾讯云服务器CentOS7上架设ftp服务器Vsftpd

今年双十一时看到腾讯云服务器搞活动,就果断下手入了一台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=YESchroot_local_user=NO
chroot_list_enable=YES1.所有用户都被限制在其主目录下
2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制
1.所有用户都不被限制其主目录下
2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制
chroot_list_enable=NO1.所有用户都被限制在其主目录下
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的系统用户可以正常访问。