CentOS 7-安装vsftpd姿势

一、什么是FTP

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。

二、在CentOS安装vsftpd 服务
2.1 校验是否安装

CentOS默认是不安装ftp服务的,需要自动手动安装。可以使用如下命令检查是否已经安装了FTP服务。如果啥都没显示,那就没安装。

rpm -qa | grep vsftpd 或者使用 vsftpd -v

如果有类似提示表示已经安装过ftp服务。
在这里插入图片描述

2.2 yum方式安装vsftpd
  • 安装命令
yum -y install vsftpd

安装完成再使用上面的命令进行检测,查看是否安装成功。

2.3. 创建匿名用户
# 创建ftp上传的文件夹
mkdir /opt/ftpfile
# 创建匿名用户
useradd ftpuser -d /opt/ftpfile  -s /sbin/nologin 
-s /sbin/nologin 是让其不能登陆系统
-d 是指定用户目录为/opt/ftpfile ,这里可以替换成任何你需要的目录。
ftpuser是ftp用户名,在配置时把这个ftpuser换成你的ftp用户名。
# 文件夹授权
chown -R ftpuser.ftpuser /opt/ftpfile 
# 设置密码
passwd ftpuser

创建匿名用户的错误信息可以忽略:

useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.

在这里插入图片描述
授权之后:
在这里插入图片描述

2.4. 更改配置

默认的配置文件在/etc/vsftpd/vsftpd.conf

具体设置:

anonymous_enable=NO
write_enable=YES
local_umask=022
allow_ftpd_full_access
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Welcome to FTP service.
local_root=/opt/ftpfile
use_localtime=yes
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES
pasv_min_port=61001
pasv_max_port=62000
  • 创建用于指定用户列表文件
    在这里插入图片描述
vim chroot_list
  • 新增用户,保存退出
    在这里插入图片描述
  • 重启vsftpd服务
service vsftpd restart
  • 检查vsftpd服务状态
systemctl status vsftpd.service
或者
service vsftpd status

在这里插入图片描述

2.5 vsftpd相关命令
# 开启vsftpd服务
service vsftpd start
# 查看vsftpd运行状态
service vsftpd status
# 重启vsftpd服务
service vsftpd restart
或者
systemctl restart vsftpd.service
2.6 预先测试vsftpd服务配置除防火墙以外的问题
  • 使用ftp命令测试,需要安装ftp客户端命令,ftp是客户端的命令,和vsftpd没有多大关系。
    • ftp客户端安装yum install ftp
    • 测试vsftpd过程
显示:
[root@localhost /]# ftp localhost
Trying ::1...
Connected to localhost (::1).
220 Welcome to FTP service.

输入创建的的ftp用户ftpuser
Name (localhost:root): ftpuser
331 Please specify the password.

输入设置的密码:
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

退出ftp:
ftp> bye

结果显示:
在这里插入图片描述

2.7 配置防火墙和端口
  1. 配置防火墙(firewall)
# 将ftp加入centOS的互联网服务
firewall-cmd --permanent --add-service=ftp
# 开放21/20端口
firewall-cmd --add-port=21/tcp
firewall-cmd --add-port=20/tcp
# 重新加载配置
firewall-cmd --reload
2.8 测试姿势
  • 打开浏览器测试:
    在这里插入图片描述
    登陆成功:
    在这里插入图片描述
    跟我们在控制台看到的是一致的。
    在这里插入图片描述
  • 第三方工具测试,那就用最挫的FileZilla测试下
    在这里插入图片描述
2.9 配置优化
  • 上面的连接之后,我们还可以看到上级目录,这是不符合要求的,只允许在ftp指定的目录下上传下载操作。
    配置说明:
# 如果chroot_list_enable=NO这个设置为NO,chroot_local_user=YES则表示所有的用户都不能切换到上级目录;
# 如果chroot_local_user=NO,chroot_list_enable=YES表示只有/etc/vsftpd/chroot_list这个文件列表中的用户不能切换到上级目录,其他这个文件列表之外的可以切换
# 如果这两个都是YES,表示chroot_list文件中的用户能切换上级目录,文件之外的用户不能切换上级目录
chroot_local_user=YES
chroot_list_enable=NO

在这里插入图片描述

  • 允许创建文件上传下载操作
    550 Create directory operation failed.
    解决方案:SElinux配置问题
# 进入/etc/selinux,将config中的SELIUNX=disabled,保存退出,重启系统。不想重启,可以临时使用setenforce 0命令。
vim /etc/selinux/config
SELIUNX=disabled
  • vsftpd: refusing to run with writable root inside chroot()
    原因:用户主目录具有写权限,chmod a-w ,去除写权限

或在用户配置文件配置 allow-writeable_chroot=yes,

# 修改配置
allow_writeable_chroot=YES
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值