CentOS7搭设FTP服务器的方法步骤

FTP 主要用于文件传输,在 Linux 上一般用 vsftpd 来实现,通过搭设 FTP 服务器,可以实现文件的共享,至少比坑爹的某度网盘强多了。

搭设 FTP 服务器有三种可选的认证方式:匿名认证、本地用户认证、虚拟用户认证,安全性:匿名认证<本地用户认证<虚拟用户认证,配置复杂度:匿名认证<本地<虚拟用户认证。

Linux 中文件都有对应的所有者,虚拟用户认证指的是,创建一个或多个 FTP 用户,并将这些 FTP 用户与 Linux 本地的某个用户(如 vftpuser )进行映射,这样完成映射的用户在对 FTP 目录进行操作时等同于用户 vftpuser 进行操作。此外,虚拟用户认证模式可以允许对多个 FTP 分别进行配置,非常灵活方便。从灵活性与安全性两个方面考虑,本文选择使用虚拟用户认证模式。

OK,准备开工!

一、基本环境

服务器:CentOS7.5

客户机:Ubuntu Mate18.10

FTP服务端:vsftpd

FTP客户端:FileZilla(可选)

二、基本流程

为了看起来更简洁,仅列出搭设基本流程及相关命令。

1、安装 vsftpd

yum install vsftpd

2、创建虚拟用户

用你喜欢的任何编辑器创建并编辑 /etc/vsftpd/vuser.list 文件,内容如下:

lilei
 lileipasswd
 hanmeimei
 hmmpasswd

口令认证文件奇数行为用户名,偶数行为对应的密码

3、创建口令认证数据库

db_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.db

-T:转换
-t:指定hash算法
-f:指定用户名

4、编辑 PAM 认证文件

创建并编辑 /etc/pam.d/vsftpd.vu ,内容如下:

auth      required  pam_userdb.so db=/etc/vsftpd/vuser
account   required  pam_userdb.so db=/etc/vsftpd/vuser

db指定口令认证数据库,不含后缀名

5、建立本地用户

useradd -d /home/vftpuser -s /sbin/nologin vftpuser
chmod 755 /home/vftpuser

-d:指定用户主目录
-s:指定用户登录shell,/sbin/nologin表示禁止用户通过shell登录,提高安全性

6、映射 FTP 用户到 vftpuser

编辑 /etc/vsftpd/vsftpd.conf ,修改下列行:

pam_service_name=vsftpd.vu  # 指定pam认证文件
guest_enable=YES              # 启用映射
guest_username=vftpuser      # 指定映射的本地用户
user_config_dir=/etc/vsftpd/vusers_dir    # 指定FTP用户配置文件位置,如果不需要对每个用户进行分别配置,可将此行注释掉

7、为每个用户进行单独配置

创建 /etc/vsftpd/vuser_dir ,针对每个 FTP 用户创建同名配置文件,此处以 lilei 为例。创建并编辑 /etc/vsftpd/vuser_dir/lilei ,内容如下:

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/var/www/html

默认根目录为映射用户的家目录,可通过 local_root 指定某个用户的根目录,注意需要将此目录所有者改为 vftpuser 。

8、重启 vsftpd

systemctl start vsftpd

三、注意事项

  • 将 vsftpd 加入开机启动,防止服务器重启后无法访问;
  • 如果 FTP 服务器无法访问,注意检查防火墙与 SElinux 设置;
  • 生成口令认证数据库后,及时将 list 文件删除,防止密码泄露。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Centos7搭建FTP服务器

    从网上搜索了好多搭建Centos7搭建服务器的教程都没有成功唯独这个,利用Windows资源管理器连接测试成功. 一.通过yum安装vsftpd yum install -y vsftpd 二.修改vsftpd的配置文件 vi /etc/vsftpd/vsftpd.conf 修改配置文件如下: 1.不允许匿名访问 anonymous_enable=NO 2.允许使用本地帐户进行FTP用户登录验证 local_enable=YES 3.使用户不能离开主目录 当chroot_list_enable=

  • CentOS7搭设FTP服务器的方法步骤

    FTP 主要用于文件传输,在 Linux 上一般用 vsftpd 来实现,通过搭设 FTP 服务器,可以实现文件的共享,至少比坑爹的某度网盘强多了. 搭设 FTP 服务器有三种可选的认证方式:匿名认证.本地用户认证.虚拟用户认证,安全性:匿名认证<本地用户认证<虚拟用户认证,配置复杂度:匿名认证<本地<虚拟用户认证. Linux 中文件都有对应的所有者,虚拟用户认证指的是,创建一个或多个 FTP 用户,并将这些 FTP 用户与 Linux 本地的某个用户(如 vftpuser )进

  • 利用apache ftpserver搭建ftp服务器的方法步骤

    目录 操作环境: 一.usermanager采用文件形式管理xml示例如下 二.usermanager采用mysql数据库管理用户时,ftpd-mysql.xml示例如下 三.usermanager采用Sqlite数据库管理用户时,ftpd-sqlite.xml示例如下 四.解决ftpd.exe在64位windows系统启动失败的问题 五.python操作sqlite的ftp.db管理(增加删除)用户 操作环境: win2012r2 x64 datacenter Apache FtpServer

  • Win7搭建FTP服务器 的方法步骤(图文)

    目录 创建新用户 配置internet 信息服务 添加FTP站点 创建新用户 右键计算机 -> 管理,选择用户本地用户组,新建用户,用户名和密码均为test 配置internet 信息服务 win7系统本身没有安装internet信息服务,需要先进行安装,打开控制面板 ->程序和功能-> 打开或关闭Windows功能 -> 选中internet信息服务然后点击确定进行安装 安装完成之后,点击开始搜索 Internet 信息服务(IIS)管理 添加FTP站点 在Win7系统中,没有自

  • CentOS6.9中搭建FTP服务器的方法

    1 基本环境 2 ftp工作模式 2.1 ftp通道 ftp工作会启动两个通道: 控制通道,数据通道 在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和pasv(被动模式) 2.2 port模式 在客户端需要接收数据时,ftp_client(大于1024的随机端口)----port命令-----ftp_server(21)发送port命令,这个port命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ftp_server将通

  • IDEA使用Docker插件远程部署项目到云服务器的方法步骤

    1. 打开2375端口 编辑docker.service vim /lib/systemd/system/docker.service 在 ExecStart 后添加配置 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 重启docker网络和docker systemctl daemon-reload systemctl restart-docker Centos7 开放端口 firewall-cmd --zone=public --add

  • nginx搭建NFS服务器的方法步骤

    目录 简介 什么是nfs服务器? 为什么需要nfs服务器 nfs服务器是否是最佳的解决方法 nfs的优点和缺点 RPC 搭建NFS服务器 安装nfs 挂载 简介 什么是nfs服务器? NFS(Network File System)即网络文件系统,它最大的功能就是可以通过网络,让不同的机器.不同的操作系统可以共享彼此的文件,使用者访问网络上别处的文件就像在使用自己的计算机一样. 为什么需要nfs服务器 到同一个地方拿数据,保障网站数据的一致性,不管负载均衡器将请求分配到哪台后端的服务器,客户机看

  • java实现将文件上传到ftp服务器的方法

    本文实例讲述了java实现将文件上传到ftp服务器的方法.分享给大家供大家参考,具体如下: 工具类: package com.fz.common.util; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; imp

  • python通过ftplib登录到ftp服务器的方法

    本文实例讲述了python通过ftplib登录到ftp服务器的方法.分享给大家供大家参考.具体实现方法如下: import ftplib connect = ftplib.FTP("www.mysite.com") connect.login("domain\user", "password") data = [] connect.dir(data.append) connect.quit() for line in data: print(li

  • 使用 Python 快速实现 HTTP 和 FTP 服务器的方法

    有时你需临时搭建一个简单的 Web Server,但你又不想去安装 Apache.Nginx 等这类功能较复杂的 HTTP 服务程序时.这时可以使用 Python 内建的 SimpleHTTPServer 模块快速搭建一个简单的 HTTP 服务器. SimpleHTTPServer 模块可以把你指定目录中的文件和文件夹以一个简单的 Web 页面的方式展示出来.假设我们需要以 Web 方式共享目录 /Users/Mike/Docker,只需要以下这个命令行就可以轻松实现: $ cd /Users/

  • CentOS7卸载MySQL5.7的方法步骤

    查看 mysql 安装了哪些东西 rpm -qa | grep -i mysql 如果返回空值,说明没有安装mysql 若返回如下情况,说明存在mysql 卸载 yum remove mysql-community-common-5.7.27-1.el7.x86_64 yum remove mysql57-community-release-el7-8.noarch yum remove mysql-community-server-5.7.27-1.el7.x86_64 yum remove

随机推荐