Centos7搭建FTP服务器

目录

Centos7搭建FTP服务器

一、关闭防火墙

二、安装vsftpd并启动服务

1、安装vsftpd

2、启动服务

三、编辑配置

四、新建用户并设置密码

1、新建用户:helloftp

2、设置用户helloftp密码

五、允许新建用户登录FTP

六、自定义用户主目录

1、新建主目录配置

2、给用户新建主目录并授权

七、防火墙配置

八、注意事项:


搭建环境:Centos7.6版本、生产服务器、计划默认端口6000、被动模式端口6001-6005

一、关闭防火墙

systemctl status firewalld.service  #查看防火墙状态
systemctl stop firewalld.service   #停止防火墙服务
systemctl disable firewalld.service #关闭防火墙开启自启动
vi /etc/selinux/config   #把文件中的SELINUX=enforcing 改为SELINUX=disabled

等待搭建成功后再开启防火墙,再开端口。要不然会带来很多不必要的麻烦。

二、安装vsftpd并启动服务

1、安装vsftpd

yum install -y vsftpd

软件包 vsftpd.x86_64.0.3.0.2-22.el7

2、启动服务

systemctl start vsftpd.service 启动服务
systemctl enable vsftpd.service 设置开机自动启动服务

三、编辑配置

   vi /etc/vsftpd/vsftpd.conf  #编辑配置文件

anonymous_enable=NO       #是否开启匿名用户,匿名都不安全,不要开
local_enable=YES          #允许本机账号登录FTP
write_enable=YES          #允许账号都有写操作
local_umask=022           #意思是指:文件目录权限:777-022=755,文件权限:666-022=644,这有点反人类了,并且没有人跟我说是减去的。注意理解!
dirmessage_enable=YES     #进入某个目录的时候,是否在客户端提示一下
xferlog_enable=YES        #日志记录
connect_from_port_20=YES  #开放port模式的20端口的连接
xferlog_std_format=YES    #日志成为std格式
chroot_local_user=YES     #限制用户只能在自己的目录活动
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=NO      #是否允许使用ls -R等命令
listen=YES                #监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务
pam_service_name=vsftpd   #pam模块的名称,放置在 /etc/pam.d/vsftpd ,认证用
userlist_enable=YES       #使用允许登录的名单
userlist_deny=NO          #限制允许登录的名单,前提是userlist_enable=YES,其实这里有点怪~!
allow_writeable_chroot=YES     #允许限制在自己的目录活动的用户 拥有写权限
tcp_wrappers=YES               #Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性。
pasv_min_port=6301             #被动模式起始端口,0为随机分配
pasv_max_port=6305             #被动模式结束端口,0为随机分配
user_config_dir=/etc/vsftpd/userconfig    #主目录配置,修改后到这个目录中在修改用户配置

纯净版配置文件:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=NO
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
allow_writeable_chroot=YES
tcp_wrappers=YES
pasv_min_port=6301
pasv_max_port=6305
user_config_dir=/etc/vsftpd/userconfig

修改完之后需要重启FTP服务刷新配置:

systemctl start vsftpd.service   #重启FTP服务

建议:把默认21端口,最好和pasv端口改成连续的。

例如:FTP的默认监听端口为6000,pasv端口范围改为6001-6005 (5个就够了)

那么这样架设到公网的话,只需要在路由器里面端口映射一条就好了,一般的路由器端口映射的数量是有限制的。要不然你最少要设置两条。高端路由器可以不连续的设置一条。我这边是公司60条已经全部占满了,所以得省着点用。

四、新建用户并设置密码

1、新建用户:helloftp

我们如果直接使用useradd -d helloftp新建的用户是可以登录系统的。这样会给FTP服务器带来安全隐患。因此我们必须不能让FTP用户登录系统。但是如果把/etc/passwd中helloftp用户后面改成/sbin/nologin,FTP也就无法登录了。这好像是一个坑。所以我们一步一步来。

#为ftp用户统一创建一个不能登录系统的shell,这一行的命令只运行一次即可,后面新建用户就不需要执行了echo /usr/bin/nologin>>/etc/shells创建用户useradd -d /home/ftp_data/helloftp -m -s /usr/bin/nologin helloftp   #创建并指定用户主目录和shell

把ftp用户的shell改为/usr/bin/nologin。注意这里的bin   不是sbin。这里需要注意的是千万不要删除用户,删除时会同时删除用户主目录,主目录内的资料也会同时删除

2、设置用户helloftp密码

passwd helloftp

五、允许新建用户登录FTP

vi /etc/vsftpd/user_list

编辑/etc/vsftpd/user_list ,这个是允许登录ftp的名单。一行一个用户,不能把多个写到一行。

到了这一步,FTP其实就可以登录了。

但是有个非常大的缺点就是,我们没有给用户指定主目录,这样的话默认每个用户的主目录都在自己的家目录。也就是说每个用户的主目录都是在不同目录中,这样的状况会给我们后期数据备份带来不便。所以我们必须想办法把用户主目录集中管理,最好能放到一个目录里面。

六、自定义用户主目录

在这里我们准备把用户主目集中放到/home/data/ftp下集中管理。之前我们在/etc/vsftpd/vsftpd.conf配置文件中写了这么一行:user_config_dir=/etc/vsftpd/userconfig ,那么这一行的作用是什么呢?就是定义用户的主目录。userconfig默认是没有的,必须新建。然后我们可以把,给每个用户定义的主目录配置文件放到这个目录里面下。就可以实现自定义主目录。

1、新建主目录配置

mkdir /etc/vsftpd/userconfig
vim /etc/vsftpd/userconfig/helloftp    #新建主目录配置文件helloftp,配置文件名字必须要和用户名相同helloftp文件中写入下面一行保存:
local_root=/home/ftp_data/helloftp

注意:配置文件名字必须要和用户名相同。

2、给用户新建主目录并授权

mkdir -p /home/ftp_data/helloftp
chmod -R 777 /home/ftp_data/helloftp

七、防火墙配置

我们的监听端口是6000,被动模式端口范围是6001-6005

firewall-cmd --version   #查看防火墙版本
0.6.3
firewall-cmd --zone=public --add-port=6000-6005/tcp --permanent  #开启6000-6005 tcp端口
success
firewall-cmd --reload  #刷新,重新载入
success
firewall-cmd --zone=public --query-port=6000-6005/tcp  #检测端口是否开启
yes

至此搭建成功。

创建用户脚本:FTP服务器用户创建脚本_spokes的博客-CSDN博客

八、注意事项:

1、设置了 chroot_local_user=YES 后,用户不能登录,原因是没设置 allow_writeable_chroot=YES

2、重启服务器后无法连接FTP,原因是你防火墙没有关闭彻底。

3、不建议把用户主目录放在根目录,建议放到home目录

4、如果你要架设到公网,端口映射的时候要把默认端口和pasv端口一起映射,单纯映射默认端口是访问不到的。

5、下面附vsftpd.conf配置文件的详细解析:

anonymous_enable=NO            #是否开启匿名用户,匿名都不安全,不要开
local_enable=YES               #允许本机账号登录FTP
write_enable=YES               #允许账号都有写操作
local_umask=022                #意思是指:文件目录权限:777-022=755,文件权限:666-022=644,这有点反人类了,并且没有人跟我说是减去的。注意理解!
#anon_upload_enable=YES        #匿名用户是否有上传文件的功能,不要开
#anon_mkdir_write_enable=YES   #匿名用户是否有创建文件夹的功能,不要开
dirmessage_enable=YES          #进入某个目录的时候,是否在客户端提示一下
xferlog_enable=YES             #日志记录
connect_from_port_20=YES       #开放port模式的20端口的连接
#chown_uploads=YES             #允许没人认领的文件上传的时候,更改掉所属用chown_uploads=YES的前提下,所属的用户
#xferlog_file=/var/log/xferlog #日志存放的地方
xferlog_std_format=YES         #日志成为std格式
#idle_session_timeout=600      #用户无操作服务器会主动断开连接,单位秒
#data_connection_timeout=120   #数据连接超时
#nopriv_user=ftpsecure         #以 ftpsecure 作为此一服务执行者的权限。因为ftpsecure 的权限相当的低,因此即使被入侵,入侵者仅能取得nobody 的权限喔!
#async_abor_enable=YES         #异步停用,由客户发起
#ascii_upload_enable=YES       #使用ascii格式上传文件
#ascii_download_enable=YES     #使用ascii格式下载文件
#ftpd_banner=Welcome to blah FTP service  #欢迎词
#deny_email_enable=YES         #以anonymous用户登录时候,是否禁止掉名单中的emaill密码。
#banned_email_file=/etc/vsftpd/banned_emails  #以anonymous用户登录时候,所禁止emaill密码名单。
chroot_local_user=YES          #限制用户只能在自己的目录活动
#chroot_list_enable=YES        #例外名单,如果是YES的话,这个有点怪,不懂别乱开,上面的选项会跟这个名单反调(会被上面的选项影响)。
#chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=NO           #是否允许使用ls -R等命令
listen=YES                     #监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务。
#listen_ipv6=YES               #监听ipv6端口,还没普及呢!
pam_service_name=vsftpd        #pam模块的名称,放置在 /etc/pam.d/vsftpd ,认证用
userlist_enable=YES            #使用允许登录的名单
userlist_deny=NO               #限制允许登录的名单,前提是userlist_enable=YES,其实这里有点怪~!
allow_writeable_chroot=YES     #允许限制在自己的目录活动的用户 拥有写权限
tcp_wrappers=YES               #Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性。
user_config_dir=/etc/vsftpd/userconfig  #主目录配置,修改后到这个目录中在修改用户配置pasv_min_port=6000 (0为随机分配)
pasv_max_port=6010(这两项定义了可以同时执行下载链接的数量。)
#被动模式端口范围:注意:linux客户端默认使用被动模式,windows 客户端默认使用主动模式。在ftp客户端中执行"passive"来切换数据通道的模式。也可以使用"ftp -A ip"直接使用主动模式。主动模式、被动模式是有客户端来指定的。

最后修正时间2021.2.23

Centos7.6利用vsftpd搭建FTP服务器详细教程相关推荐

  1. linux6 ftp配置,centos6.x vsftpd配置FTP服务器详细教程

    centos6.x vsftpd配置FTP服务器详细教程 centos6.x中搭建FTP服务器步骤如下 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | grep vsftp ...

  2. Windows7搭建FTP服务器详细教程

    Windows7搭建FTP服务器详细教程 启用FTP功能 选择控制面板->程序->程序和功能->打开或关闭Windows功能->点开Internet信息服务,将其所有子项都选中 ...

  3. Win10搭建FTP服务器详细教程-附操作截图

    Win10搭建FTP服务器详细教程 1.设置电脑防火墙 1.打开"控制面板" →点击 "Windows Defender 防火墙" . 2.点击"允许 ...

  4. linux利用vsftpd 搭建FTP服务器

    实验环境: centos 6.4 x86_64 实验目标: 实现在同一跟目录下对admin,upload,download三个虚拟用户的不同权限的控制.具体权限控制列表如下: 用户名 权限说明 adm ...

  5. FileZilla搭建FTP服务器图解教程

    在日常办公当中,经常会需要一个共享文件夹来存放一些大家共享的资料,为了保证文件数据的安全,最佳的方式是公司内部服务器搭建FTP服务器,然后分配多个用户给相应的人员.今天给大家分享FileZilla搭建 ...

  6. FileZilla搭建FTP服务器图解教程,并允许外网访问NAT内网

    FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一.FTP服务是网络中经常采用的资源共享方式之一.FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式 .今天 ...

  7. Linux搭建SVN服务器详细教程

    前言 本文讲解Linux系统下如何搭建SVN服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置. SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统 ...

  8. 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器

    最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...

  9. 使用vsftpd 搭建ftp 服务器

    1. 简介: 使用vsftpd 在ubuntu环境中搭建ftp服务器..Vsftp 是一个专门为unix类型系统设计一个ftp服务器,如linux. Vsftpd 支持ipv6和ssl.支持expli ...

最新文章

  1. 前端不规则图像点击_css实现不规则图形的阴影(如对话框)
  2. 英国政府发布5G政策文件
  3. UNITY2018 真机开启deepprofiling的操作
  4. SQL查询存在一个表而不在另一个表中的数据
  5. SurfaceView 拍照功能
  6. python包接口,Typetalk聊天API的python接口包
  7. unity中实现简单对象池,附教程原理
  8. php post防止hash攻击,MyBB editpost.php脚本'posthash' 参数SQL注入漏洞
  9. OneNote使用说明
  10. php中函数参数个数问题
  11. Java8 新特性 Optional
  12. EasyUI界面显示中文格式(日期中文格式)
  13. Mob统计分析游戏类App详细埋点需求
  14. excel VLOOKUP函数的使用方法(入门级)
  15. OpenJudge计算概论-字符串最大跨距
  16. vue学习项目之去哪儿网笔记
  17. git 上传项目到github
  18. java毕业论文范文3_java毕业论文范文3篇
  19. 制作网页所需的一些简单ps技巧
  20. python - 文件打包发布流程

热门文章

  1. 2022年8月中国数据库排行榜:openGauss重夺榜眼,PolarDB反超人大金仓
  2. 【Sketch2Pose项目环境搭建】win10+Anoconda+VScode
  3. 2.1寸黑白电子标签【蓝牙版】
  4. 第8.27节 Python中__getattribute__与property的fget、@property装饰器getter关系深入解析
  5. 中国互联网综合实力100强:猿辅导第39
  6. 【尚硅谷】Vue2.x核心学习笔记--渐进式的JS框架
  7. windows iis 7 配置不 了https
  8. Mac OS Fabric环境搭建
  9. struts2表单验证里validato 的type值及其含义
  10. 复旦金融专硕和上财金融专硕