0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何配置FTP服务器

阿铭linux 来源:阿铭linux 2023-01-10 09:03 次阅读

FTP是File Transfer Protocol(文件传输协议,简称“文传协议”)的英文简写形式,用于在因特网上控制文件的双向传输。它同时也是一个应用程序,用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,以访问服务器上的大量程序和信息。FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。FTP方便传输数据,所以个人用户很多,但在企业里用得越来越少,因为FTP是有一定安全隐患的。在本章,阿铭将会介绍两种FTP软件。

17.1使用vsftpd搭建FTP服务
Rocky Linux或者Red Hat Linux上有自带的FTP软件vsftpd,默认并没有安装,需要用yum安装,安装后不用配置,启动后便可以使用,但本节介绍的是它的高级用法。

17.1.1安装vsftpd

使用yum工具安装vsftpd包,如下所示:

# yum install -y vsftpd
17.1.2建立账号

vsftpd默认可以支持使用系统账号体系登录,但那样不太安全,所以阿铭建议你使用虚拟账号体系登录。

首先建立与虚拟账号相关联的系统账号,如下所示:
# useradd virftp -s /sbin/nologin
接着建立与虚拟账户相关的文件,如下所示:
# vim /etc/vsftpd/vsftpd_login    #内容如下:
test1
123456
test2
abcdef
需要说明的是,该文件的奇数行为用户名,偶数行为上一行的用户密码。

然后更改该文件的权限,提升安全级别,如下所示:
# chmod 600 /etc/vsftpd/vsftpd_login
vsfptd使用的密码文件不是明文的,需要生成对应的库文件,如下所示:
# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
最后建立与虚拟账号相关的目录以及配置文件,如下所示:
# mkdir /etc/vsftpd/vsftpd_user_conf
# cd /etc/vsftpd/vsftpd_user_conf
17.1.3创建和用户对应的配置文件

用户的配置文件是单独存在的,每一个用户都有一个自己的配置文件,文件名和用户名一致,如下所示:
# vim test1   #内容如下:
local_root=/home/virftp/test1
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
其中:

local_root为test1账号的家目录

anonymous_enable用来限制是否允许匿名账号登录(若为NO,表示不允许匿名账号登录)

write_enable=YES表示可写

local_umask指定umask值

anon_ upload_enable表示是否允许匿名账号上传文件

anon_mkdir_write_enable表示是否允许匿名账号可写

以上为关键配置参数,其他参数暂时不用关心。

创建test2账号的步骤和test1一样,如下所示:

# mkdir /home/virftp/test1
# touch /home/virftp/test1/aminglinux.txt
# chown -R virftp:virftp /home/virftp
#vim/etc/pam.d/vsftpd#在该文件最上面添加两行
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
17.1.4修改全局配置文件

修改用户的配置文件后还不可用,还需要修改vsftpd的一些全局配置文件。 首先编辑vsftpd.conf文件,如下所示:
# vim /etc/vsftpd/vsftpd.conf #修改如下内容:
将#anon_upload_enable=YES 改为 anon_upload_enable=NO;
将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO。
再增加如下内容:
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
然后启动vsftpd服务,执行如下命令:
# systemctl start vsftpd
整个过程配置步骤虽然有点繁琐,但是并不复杂。下面我们来做一下测试:
# ps aux |grep vsftp  #查看进程是否存在
root 71785  0.0  0.0  26984   408 ?        Ss   22:31   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
# yum install lftp  #安装lftp客户端软件
# lftp test1@127.0.0.1
口令:
lftp test1@127.0.0.1:~> ls
-rw-r--r-- 1 1002     1002            0 Jul 01 14:27 aminglinux.txt
Test1用户密码为123456,成功登录vsftpd后,使用ls列出test1用户家目录下面的aming.txt,其中1002为virftp用户的uid和gid。在这一步,很多同学会遇到问题,遇到问题后请检查/var/log/secure日志,通常会记录一些错误信息。

17.2安装配置pure-ftpd


Pure-ftpd为另外一款比较小巧实用的FTP软件,阿铭平时用得比较多。

17.2.1安装pure-ftpd


默认的CentOS yum源并不包含pure-ftpd,需要安装epel扩展源,具体过程如下:
# yum instll –y epel-release
# yum install -y pure-ftpd
17.2.2配置pure-ftpd

在启动pure-ftpd之前,需要先修改配置文件/etc/pure-ftpd/pure-ftpd.conf。请查看该配置文件,里面的内容很多。找到PureDB那一行,将其修改为:PureDB/etc/pure-ftpd/pureftpd.pdb,然后启动pure-ftpd,启动之前需要关闭vsftpd,因为有端口冲突,过程如下所示:
# systemctl stop vsftpd
# systemctl start pure-ftpd
# ps aux |grep pure-ftp
root724530.00.078916864?Ss23:050:00/usr/sbin/pure-ftpd/etc/pure-ftpd/pure-ftpd.conf
启动成功的话,ps aux可以看到相关的进程,如果没有正常启动,需通过/var/log/messages日志查看原因。

17.2.3建立账号

为了安全,pure-ftpd使用的账号并非Linux的系统账号,而是虚拟账号。首先创建一个账号,如下所示:
# mkdir /data/ftp/
# useradd -u 1010 pure-ftp
# chown -R pure-ftp:pure-ftp /data/ftp
# pure-pw useradd ftp_user1 -u pure-ftp -d /data/ftp/
Password:
Enter it again:
其中,-u选项将虚拟用户ftp_user1与系统用户pure-ftp关联在一起,也就是说,使用ftp_user1账号登录FTP后,会以pure-ftp的身份来读取和下载文件,-d选项后面的目录为ftp_user1账户的家目录,这样可以使ftp_user1只能访问其家目录/data/ftp/。 然后创建用户信息数据库文件,这一步最关键。执行如下命令:
# pure-pw mkdb
其中,pure-pw还可以列出当前的FTP账号以及删除某个账号。例如,我们再创建一个账号,如下所示:
# pure-pw useradd ftp_user2 -u pure-ftp -d /tmp
# pure-pw mkdb
列出当前账号,执行如下命令:
# pure-pw list
ftp_user1 /data/ftp/./
ftp_user2 /tmp/./
如果想删除账号,执行如下命令:
# pure-pw userdel ftp_user2
17.2.4测试pure-ftpd


测试过程如下:
# lftp ftp_user1@127.0.0.1
口令:
lftp ftp_user1@127.0.0.1:~> ls
drwxr-xr-x 2 1010       pure-ftp            6 Jul  1 23:05 .
drwxr-xr-x 2 1010       pure-ftp            6 Jul  1 23:05 ..
lftp ftp_user1@127.0.0.1:/> put /etc/passwd
1419 bytes transferred
lftp ftp_user1@127.0.0.1:/> ls
drwxr-xr-x 2 1010       pure-ftp           20 Jul  1 23:07 .
drwxr-xr-x 2 1010       pure-ftp           20 Jul  1 23:07 ..
-rw-r--r-- 1 1010       pure-ftp         1419 Jul  1 23:05 passwd
登录后,使用ls命令可以查看当前目录都有什么文件,使用put命令可以把系统的文件上传到FTP服务器上。你还可以在Windows机器里安装一个FTP客户端软件(阿铭推荐开源的FileZilla),然后远程连接测试。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10988

    浏览量

    206725
  • 服务器
    +关注

    关注

    12

    文章

    8111

    浏览量

    82496
  • FTP
    FTP
    +关注

    关注

    0

    文章

    99

    浏览量

    40279
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21848
  • vsftpd
    +关注

    关注

    0

    文章

    3

    浏览量

    1699

原文标题:配置FTP服务器

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    #硬声创作季 349 8.9.3 配置FTP服务器 #云计算基础架构平台应用

    云计算
    jf_27932003
    发布于 :2022年12月23日 00:24:59

    用labview访问FTP服务器路径问题

    用labview访问FTP服务器,程序如下图,服务器可正常登录,但下载不了服务器上的文件。可能是访问的路径不对,求有没有做过FTP的,我
    发表于 12-16 10:39

    【NanoPi Duo开发板试用体验】文件共享服务器搭建和音频接口测试

    完成。二、ftp服务器搭建更新软件后,安装ftp软件$ sudo apt-get install vsftp 安装完成后即可开始配置ftp
    发表于 10-07 21:34

    46FTP服务器配置步骤

    46FTP服务器配置
    发表于 10-31 09:27

    嵌入式FTP服务器能实现什么功能?

    FTP服务是目前广泛应用的因特网应用服务之一,为了在国产嵌入式实时操作系统平台上开发FTP服务,采用多线程并发
    发表于 03-11 08:27

    如何使用Visual Gdb开发嵌入式Linux呢

    曾几何时,在开发嵌入式Linux时,先在PC上安装一个Ubuntu虚拟机,然后桥接网络,安装Vmwaretools,设置共享文件夹或者配置ftp服务器来实现PC和Ubuntu的文件交换…,改代码在
    发表于 11-04 06:58

    基于Linux系统的FTP服务器的实现

    为了在Linux系统下实现安全、高效的FTP服务器,选择了具有小巧轻快、安全易用等优点的服务器软件vsftpd。通过对Linux平台下FTP网络服务
    发表于 07-24 15:36 39次下载

    如何搭建一个本地FTP服务器

    如果需要开发FTP文件上传下载功能,那么需要在本机上搭建一个本地FTP服务器,方便调试。第一步:配置IIS Web服务器,控制面板中找到“程
    发表于 05-12 08:00 0次下载
    如何搭建一个本地<b class='flag-5'>FTP</b><b class='flag-5'>服务器</b>?

    FTP服务构成及FTP服务器介绍

    FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为
    的头像 发表于 08-22 14:22 4878次阅读

    使用VisualStudio2017开发嵌入式Linux应用程序

    曾几何时,在开发嵌入式Linux时,先在PC上安装一个Ubuntu虚拟机,然后桥接网络,安装Vmwaretools,设置共享文件夹或者配置ftp服务器来实现PC和Ubuntu的文件交换…,改代码
    发表于 11-01 17:22 13次下载
    使用VisualStudio2017开发嵌入式Linux应用程序

    如何在Ubuntu 20.04安装和配置FTP服务器

    本教程介绍如何在Ubuntu 20.04安装和配置,用于在设备之间共享文件的FTP服务器
    的头像 发表于 12-05 16:04 3991次阅读

    虹科干货 | 码住!虹科工业树莓派应用小tips!

    程中经常会遇到的几个问题,并分享解决方案,帮助大家快速上手使用虹科工业树莓派:RevPiFlat模块WIFI配置问题基于CODESYS的串口应用配置问题FTP服务器
    的头像 发表于 04-07 09:49 352次阅读
    虹科干货 | 码住!虹科工业树莓派应用小tips!

    ftp服务器有什么作用?

    ftp服务器是一种软件应用程序或服务,有助于通过网络(通常是互联网)在计算机之间传输文件。ftp服务器的主要用途是使用户能够上传、下载和管理
    的头像 发表于 09-19 17:24 2566次阅读

    搭建ftp服务器的步骤

    搭建ftp服务器的步骤  搭建FTP服务器是一项需要一定技术知识的任务,但是只要按照以下步骤进行操作,您就能成功搭建自己的FTP
    的头像 发表于 12-07 16:32 742次阅读

    服务器linux搭建ftp服务访问不了怎么解决?

    如果你在云服务器linux上搭建了FTP服务但无法访问,这可能是由于几种原因引起的。以下是一些常见问题和解决方法: 1、防火墙配置:确保防火墙允许F
    的头像 发表于 04-18 17:23 124次阅读