阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7 安装vsftpd 服务器

177次阅读
没有评论

共计 4156 个字符,预计需要花费 11 分钟才能阅读完成。

在 CentOS7 上安装 ftp 服务器用于保存服务端上传的图片。

1、CentOS 卸载 vsftpd 的方法

如果服务器上已经安装了 vsftpd 服务,配置出错需要卸载 vsftpd 服务。

1.1 查找 vsftpd 服务

[root@localhost /]# rpm -aq vsftpd

返回结果显示:

vsftpd-3.0.2-21.el7.x86_64 #此处是查找 vsftpd 的返回结果

表示此服务期之前已经安装过 vsftpd 服务。

1.2 删除查找到的 vsftpd 服务

注:在卸载 vsftpd 之前,先停止 vsftpd

[root@localhost /]# /sbin/service vsftpd stop

卸载 vsftpd:

[root@localhost /]# rpm -e vsftpd-3.0.2-21.el7.x86_64

返回结果显示:

warning: /etc/vsftpd/vsftpd.conf saved as /etc/vsftpd/vsftpd.conf.rpmsave #删除时将备份 vsftp 的用户列表文件

1.3 输入验证命令,验证 vsftpd 服务是否已经删除

[root@localhost /]# /sbin/service vsftpd stop
Redirecting to /bin/systemctl stop  vsftpd.service
Failed to stop vsftpd.service: Unit vsftpd.service not loaded. #找不到 vsftpd
[root@localhost /]# /sbin/service vsftpd start
Redirecting to /bin/systemctl start  vsftpd.service
Failed to start vsftpd.service: Unit not found. #找不到 vsftpd

如果输入以上两个命令都显示找不到 vsftpd 服务的话,那就证明已经卸载成功。

2、安装 vsftpd 组件

[root@localhost /]# yum -y install vsftpd

2.1 启动 ftp

[root@localhost home]# systemctl start vsftpd.service

2.2 放开 21 端口

[root@localhost /]# firewall-cmd --zone=public --add-port=21/tcp --permanent
[root@localhost /]# firewall-cmd --reload

3、vsftpd 服务的详细配置

3.1 关闭匿名用户

[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf

在 vsftpd.conf 配置文件中修改以下三项:

anonymous_enable=NO
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES

然后重启 ftp 服务:

[root@localhost vsftpd]# systemctl restart  vsftpd.service

通过配置重启之后,匿名用户不可以登录了。

3.2 建立 ftp 虚拟宿主账户

新建一个不能登录系统用户. 只用来登录 ftp 服务 , 这里如果没设置用户目录。默认是在 home 下:

[root@localhost vsftpd]# useradd ftpuser -s /sbin/nologin

为 ftpuser 用户设置密码:

[root@localhost /]# passwd ftpuser

3.3 查看 ftp 的状态

[root@localhost /]# getsebool -a|grep ftp

显示结果:

ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> off

将上面红色两项状态设置为 on:

[root@localhost vsftpd]# setsebool -P allow_ftpd_full_access on
[root@localhost vsftpd]# setsebool -P tftp_home_dir on

3.4 配置 vsftpd.conf

限制系统用户锁定在 /home/ftpuser 目录

如果设置为
chroot_local_user=YES
chroot_list_enable=YES(这行可以没有, 也可以有)
chroot_list_file=/etc/vsftpd.chroot_list
那么, 凡是加在文件 vsftpd.chroot_list 中的用户都是不受限止的用户
即, 可以浏览其主目录的上级目录.

所以, 如果不希望某用户能够浏览其主目录上级目录中的内容, 可以如上设置, 然后在
文件 vsftpd.chroot_list 中不添加该用户即可(此时, 在该文件中的用户都是可以浏览其主目录之外的目录的).
或者, 设置如下
chroot_local_user=NO
chroot_list_enable=YES(这行必须要有, 否则文件 vsftpd.chroot_list 不会起作用)
chroot_list_file=/etc/vsftpd.chroot_list
然后把所有不希望有这种浏览其主目录之上的各目录权限的用户添加到文件 vsftpd.chroot_list(此时, 在该文件中的用户都是不可以浏览其主目录之外的目录的)
中即可(一行一个用户名).
 
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf

这里有两种方案,我采用第二种,配置如下:

chroot_local_user=NO
chroot_list_enable=YES #(这行必须要有, 否则文件 vsftpd.chroot_list 不会起作用)
chroot_list_file=/etc/vsftpd/chroot_list

默认 chroot_list 是不存在的

[root@localhost vsftpd]# vim /etc/vsftpd/chroot_list

然后加入 ftpuser,表示只有 ftpuser 不能访问上级目录,重启 vsftpd。

3.5 修改权限

修改 /home/ftpuser 的权限为不可写

[root@localhost vsftpd]# chmod a-w /home/ftpuser/taotao

这是因为我们在上面将 /home/ftpuser/taotao 文件的权限改为不可写了,那么我们在这个目录下创建一个 images 文件夹,用来上传文件。并将权限赋值给 ftpuser 用户

[root@localhost taotao]# mkdir images
[root@localhost images]# chown ftpuser images

4、开启 PASV(被动模式)

在 /etc/vsftpd/vsftpd.conf 的最下面加入

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999

并且在 userlist_enable=YES 文件后面添加

userlist_deny=NO
userlist_file=/etc/vsftpd/user_list

开启防火墙:

[root@localhost taotao]# firewall-cmd --zone=public --add-port=30000-30999/tcp --permanent 
[root@localhost taotao]# firewall-cmd --reload

这样就可以使用 ftp 服务器上传文件了。

更多 Vsftpd 相关教程见以下内容

Linux CentOS 6.5 下搭建 vsftpd ftp 服务器  http://www.linuxidc.com/Linux/2016-07/133319.htm

CentOS 安装 vsftpd-3.0.2 及安全配置  http://www.linuxidc.com/Linux/2016-12/138040.htm

openSUSE 13.2/13.1 下安装配置 FTP 服务器 vsftpd  http://www.linuxidc.com/Linux/2014-12/110070.htm

CentOS7 基于虚拟用户的 vsftpd  http://www.linuxidc.com/Linux/2016-11/137150.htm

Ubuntu 14.04 配置 vsftpd 实现 FTP 服务器 – 通过 FTP 连接 AWS  http://www.linuxidc.com/Linux/2016-08/133933.htm

FTP 协议详解与 vsftpd 在 Linux 上的安装配置 http://www.linuxidc.com/Linux/2016-09/134831.htm

CentOS 6.7 安装 vsftpd 服务器  http://www.linuxidc.com/Linux/2017-04/142612.htm

CentOS 7.3 安装配置 Vsftpd 文件服务器  http://www.linuxidc.com/Linux/2017-06/144886.htm

Vsftpd3.0–FTP 服务器搭建之本地用户篇  http://www.linuxidc.com/Linux/2017-04/142699.htm

CentOS7 基于虚拟用户的 vsftpd  http://www.linuxidc.com/Linux/2016-11/137150.htm

Ubuntu 16.04 下 vsftpd 安装配置实例  http://www.linuxidc.com/Linux/2017-06/144807.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-08/146085.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计4156字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中