使用vmvare和centos7搭建ftp服务器

1、应用场景

ftp服务器,常用于共享文件,或者用于存储文件,方便快速查找和使用。同时在实际设备的相互传系统文件也应用广范。

2、使用vmvare装镜像

可以参考最新VMware虚拟机下载与安装详解_vmware pro 16-CSDN博客

3、保证vmvare网络可达

4、配置文件信息

一、先关闭防火墙,后面打开,方便操作。
[root@localhost centos]# systemctl status firewalld.service      # 查看防火墙状态
[root@localhost centos]# systemctl stop firewalld.service      # 停止防火墙服务
[root@localhost centos]# systemctl disable firewalld.service     # 关闭防火墙开启自启动
# 把文件中的SELINUX=enforcing 改为SELINUX=disabled
[root@localhost centos]# vim /etc/selinux/config           
[root@localhost centos]# setenforce 0                              # 使修改马上生效

# 如果没有返回任何结果,表示没有安装;如果返回文件包名,这表示已经安装了该服务;
[root@localhost centos]# rpm -q vsftpd 
vsftpd-3.0.2-29.el7_9.x86_64               # 代表已安装
[root@localhost centos]# vsftpd -v
vsftpd: version 3.0.2                      # 代表已安装
[root@localhost centos]# rpm -e vsftpd            # 卸载vsftpd
# 再次检查
[root@localhost centos]# rpm -qa|grep vsftpd
[root@localhost centos]# vsftpd -version

二、安装ftp安装包
# 如果已经安装,再次执行yum就会把软件包升级到最新版本
[root@localhost centos]# yum install -y vsftpd  服务器
[root@localhost centos]# yum install -y ftp lftp  客户端
[root@localhost centos]# systemctl enable vsftpd.service   #开机启动服务
[root@localhost centos]# systemctl start  vsftpd.service      # 启动服务
[root@localhost centos]# systemctl stop  vsftpd.service        # 停止服务
[root@localhost centos]# systemctl restart vsftpd.service      # 重启服务
# 启动和停止及重启这三个命令输入正确后回车是不会有反馈的
[root@localhost centos]# systemctl status vsftpd.service       # 查看服务状态
[root@localhost centos]# systemctl enable vsftpd.service       # 设置开机自启动vsftpd服务
[root@localhost centos]# systemctl disable vsftpd.service      # 禁用开机自启动vsftpd服务

三、创建ftp访问目录、用户名及密码
ftpuser是你为该ftp服务创建的用户名,/data/ftp/ftpuser为ftp服务器访问路径
# 创建文件目录
[root@localhost centos]# mkdir -p /data/ftp/ftpuser
# 为该目录配置权限
[root@localhost centos]# chmod -R 755 /data/ftp/ftpuser

#如果我们直接使用useradd -d ftpuser,则新建的用户是可以登录系统的,这样会给FTP服务器带来安全隐患。
因此我们为了不让FTP用户登录系统,就必须为FTP用户统一创建一个不能登录系统的shell
[root@localhost centos]# echo /usr/bin/nologin>>/etc/shells
# 新建用户组ftp
groupadd ftp
# 指定用户主目录:/data/ftp/ftpuser -M
# 指定用户的shell: -s /usr/bin/nologin
# 新建用户ftpuser,并且设置不支持ssh系统登录,只能登录ftp服务器
# -g 用户组; -d 指定家目录; -s 不能登陆系统; -M 不创建家目录
[root@localhost centos]# useradd -g ftp -d /data/ftp/ftpuser -M -s /usr/bin/nologin ftpuser

# 如果要恢复ftpuser用户的ssh登录(可登入CentOS7系统),执行下面的语句即可
[root@localhost centos]# usermod -s /bin/bash ftpuser

# echo "新密码" | passwd --stdin 用户名
[root@localhost centos]# echo "qwer123" | passwd --stdin ftpuser 

# 由于/data/ftp/ftpuser的用户是root,其它用户都没有写的权限
# 所以要在该目录下新建一个目录用于文件的上传下载
[root@localhost centos]# mkdir -p /data/ftp/ftpuser/upload
[root@localhost centos]# chown ftpuser:ftp /data/ftp/ftpuser/upload
[root@localhost centos]# chmod 755 /data/ftp/ftpuser/upload

# 防止后期配置文件出错后无法还原,所有需要备份一下文件。
[root@localhost centos]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup
[root@localhost centos]# cd /etc/vsftpd/
[root@nsl vsftpd]# ll

四、编辑ftp配置文件
[root@nsl vsftpd]# vim /etc/vsftpd/vsftpd.conf
# 打开vsftpd.conf文件,全选删除(Esc+gg+dG)文件内容,然后用下面的配置进行替换
# 是否开启匿名用户,匿名都不安全,默认NO
anonymous_enable=NO
# 允许本机账号登录FTP
# 这个设定值必须要为YES时,在/etc/passwd内的账号才能以实体用户的方式登入我们的vsftpd主机
local_enable=YES
# 允许账号都有写操作
write_enable=YES
# 本地用户创建文件或目录的掩码
# 意思是指:文件目录权限:777-022=755,文件权限:666-022=644
local_umask=022
# 进入某个目录的时候,是否在客户端提示一下
dirmessage_enable=YES
# 当设定为YES时,使用者上传与下载日志都会被记录起来
xferlog_enable=YES
# 日志成为std格式
xferlog_std_format=YES
# 上传与下载日志存放路径
xferlog_file=/var/log/xferlog
# 开放port模式的20端口的连接
connect_from_port_20=YES
# 关于系统安全的设定值:
# ascii_download_enable=YES(NO)
# 如果设定为YES,那么client就可以使用ASCII格式下载档案
# 一般来说,由于启动了这个设定项目可能会导致DoS的攻击,因此预设是NO
# ascii_upload_enable=YES(NO)
# 与上一个设定类似的,只是这个设定针对上传而言,预设是NO
ascii_upload_enable=NO
ascii_download_enable=NO
# 通过搭配能实现以下几种效果:
# ①当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时,所有的用户均可以切换到其他目录
# 限制用户只能在自己的目录活动
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
# 可以更改ftp的端口号,使用默认值21
# listen_port=60021
# 监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务
listen=NO
# 监听ipv6端口
listen_ipv6=YES
# 打开主动模式
port_enable=YES
# 启动被动式联机(passivemode)
pasv_enable=YES
# 被动模式端口范围:注意:linux客户端默认使用被动模式,windows 客户端默认使用主动模式。在ftp客户端中执行"passive"来切换数据通道的模式。也可以使用"ftp -A ip"直接使用主动模式。主动模式、被动模式是有客户端来指定的
# 上面两个是与passive mode使用的port number有关,如果您想要使用64000到65000这1000个port来进行被动式资料的连接,可以这样设定
# 这两项定义了可以同时执行下载链接的数量
# 被动模式起始端口,0为随机分配
pasv_min_port=64000
# 被动模式结束端口,0为随机分配
pasv_max_port=65000
# 文件末尾添加
# 这个是pam模块的名称,我们放置在/etc/pam.d/vsftpd,认证用
pam_service_name=vsftpd
# 使用允许登录的名单,在/etc/vsftpd/user_list文件中添加新建的用户ftpuser
userlist_enable=YES
# 限制允许登录的名单,前提是userlist_enable=YES,其实这里有点怪,禁止访问名单在/etc/vsftpd/ftpusers
userlist_deny=NO
# 允许限制在自己的目录活动的用户拥有写权限
# 不添加下面这个会报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES
# 当然我们都习惯支持TCP Wrappers的啦
# Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性
tcp_wrappers=YES
# FTP访问目录
local_root=/data/ftp/ftpuser

[root@nsl vsftpd]# vim /etc/vsftpd/user_list
# 在chroot_list中添加新建用户ftpuser
# 第一步:打开文件
[root@localhost centos]# vim /etc/vsftpd/chroot_list
# 第二步:添加ftpuser用户
[root@localhost centos]# ftpuser
# 第三步:保存文件并退出
[root@localhost centos]# systemctl enable firewalld.service                           # 重启防火墙开机自启动
[root@localhost centos]# systemctl restart firewalld.service                          # 重启防火墙服务
[root@localhost centos]# firewall-cmd --version                                       # 查看防火墙版本
[root@localhost centos]# firewall-cmd --list-all                                        # 查看已开放的端口
[root@localhost centos]# firewall-cmd --permanent --zone=public --add-service=ftp     # 防火墙开通ftp服务
[root@localhost centos]# firewall-cmd --permanent --zone=public --add-port=21/tcp     # 开通ftp服务21命令控制端口
# 主动模式下数据传输端口等于命令控制端口-1 ======> 21 - 1 = 20
# 开通ftp服务主动模式的20数据传输端口
[root@localhost centos]# firewall-cmd --permanent --zone=public --add-port=20/tcp    
# 开通ftp服务被动模式的数据端口范围
[root@localhost centos]# firewall-cmd --permanent --zone=public --add-port=64000-65000/tcp 
[root@localhost centos]# firewall-cmd --reload                            # 刷新防火墙,重新载入
# 设置关闭SELinux对ftp的限制
[root@localhost centos]# setsebool -P ftpd_full_access on
[root@localhost centos]# sed -i s#enforcing#disabled#g /etc/sysconfig/selinux
[root@localhost centos]# setenforce 0 && getenforce
[root@localhost centos]# getenforce
#重启ftp服务
[root@localhost centos]# systemctl restart vsftpd.service

@CentOS7 安装搭建FTP服务器_centos7搭建ftp服务器-CSDN博客

5、测试结果

测试正常,可以创建文件夹,增删改。

  • 25
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fe_smoothlyx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值