首页 > 其他分享 >pure-ftpd安装与使用(转载)

pure-ftpd安装与使用(转载)

时间:2024-02-28 10:57:32浏览次数:23  
标签:ftp ftpd ryan wordpress pure 转载 root

一、摘要

FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

目前 FTP 软件有很多,但总体上分为 FTP Client 客户端 和 FTP Server 服务端,其中 PureFTPd 是一款专注于程序健壮和软件安全的免费 FTP 服务器软件(基于 BSD License)。其可以在多种类Unix操作系统中编译运行,包括 Linux、OpenBSD、NetBSD、FreeBSD、DragonFly BSD、Solaris、Tru64、Darwin、Irix and HP-UX。PureFTPd 还有 Android 移植版本。

二、下载并安装 Pure-ftpd

可以使用 yum 安装或者源码包安装,源码包安装的优点是可以自由选择安装的软件版本,yum 安装时仓库的版本一般都是固定的某一个版本,无法自由选择。

2.1 yum 安装

默认的 yum 源没有提供 pure-ftpd,需要先安装 epel 扩展源:

# yum install epel-release

然后使用 yum 命令安装Pure-ftpd:

# yum install pure-ftpd

2.2 源码包安装

访问 pure-ftpd 官方网站:

https://download.pureftpd.org/pub/pure-ftpd/releases/,当前最新版本为 1.0.47。

进入到要下载的目录:

[root@ryan plugins]# cd /usr/local/src

使用 wget 下载源码包:

[root@ryan src]# wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.47.tar.gz

解压:

[root@ryan src]# tar zxvf pure-ftpd-1.0.47.tar.gz

进入解压后的目录:

[root@ryan src]# cd pure-ftpd-1.0.47

通过设置不同的参数,定制相应的功能,生成 Makefile 文件:

[root@ryan pure-ftpd-1.0.47]# ./configure \
--prefix=/usr/local/pureftpd \
--without-inetd \
--with-altlog \
--with-puredb \
--with-throttling \
--with-peruserlimits \
--with-tls

注意:

我们在这里可能会遇到错误,在配置之后系统会提示:configure: error: OpenSSL headers not found.

解决方法是:

yum install -y openssl openssl-devel,如果找不到这两个包,则需要安装 yum 的扩展源:yum install -y epel-release

注意:不要随意修改域名解析文件 /etc/resolv.conf,否则可能导致 yum 源地址无法解析,而出现 [Errno 256] No more mirrors to try 。

/etc/resolv.conf 是 DNS 客户机配置文件,用于设置 DNS 服务器的 IP 地址及 DNS 域名,还包含了主机的域名搜索顺序。该文件是由域名解析 器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。它的格式很简单,每行以一个关键字开头,后接一个或多个由空格隔开的参数。

成功后出现如下所示:

 

编译并安装:

[root@ryan pure-ftpd-1.0.47]# make && make install

验证上一步是否执行成功:

[root@ryan pure-ftpd-1.0.47]# echo $?
0

这里返回值是"0"说明执行成功,否则就是没有成功。

2.3 修改配置文件

/usr/local/pureftpd/etc/pure-ftpd.conf

 

vim /usr/local/pureftpd/etc/pure-ftpd.conf

ChrootEveryone yes
BrokenClientsCompatibility no
MaxClientsNumber 50
Daemonize yes
MaxClientsPerIP 8
VerboseLog no
DisplayDotFiles yes
AnonymousOnly no
NoAnonymous no
SyslogFacility ftp
DontResolve yes
MaxIdleTime 15
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
LimitRecursion 10000 8
AnonymousCanCreateDirs no
MaxLoad 4
AntiWarez yes
Umask 133:022
MinUID 100
AllowUserFXP no
AllowAnonymousFXP no
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
AutoRename no
AnonymousCantUpload no
PIDFile /usr/local/pureftpd/var/run/pure-ftpd.pid
MaxDiskUsage 99
CustomerProof yes


三、使用 pure-ftpd

启动 pure-ftpd:

[root@ryan pure-ftpd-1.0.47]# /usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf

创建系统用户:

useradd wordpress-ftp

更改所属主和所属组:

chown -R wordpress-ftp:wordpress-ftp /opt/lampp/htdocs/wordpress

创建ftp用户,注意ftp用户是虚拟用户。

/usr/local/pureftpd/bin/pure-pw useradd ftp_wordpress -u wordpress-ftp -d /opt/lampp/htdocs/wordpress

此时会出现为该ftp新用户创建密码的提示:

Password:xxxxxx
Enter it again:xxxxxx

其中,-u选项将虚拟用户ftp_wordpress与系统用户wordpress-ftp关联在一起,即使用ftp_wordpress账号登录FTP后,会以wordpress-ftp的身份来读取和下载文件,-d选项后面的目录为ftp_wordpress账户的家目录,这样可以使ftp_wordpress只能访问其家目录/opt/lampp/htdocs/wordpress

创建用户信息数据库文件:

/usr/local/pureftpd/bin/pure-pw mkdb

 

 

查看用户列表:

/usr/local/pureftpd/bin/pure-pw list

显示如下:

ftp_wordpress /opt/lampp/htdocs/wordpress/./

删除账号的命令为:

/usr/local/pureftpd/bin/pure-pw userdel ftp_wordpress

四、配置服务器段安全组规则

由于本人使用的是阿里云的 ECS 服务器,服务器默认不开放 FTP 的 21 端口,自己在安全组规则中添加放行相应端口,由于在使用 FTP 过程中不仅仅会用到 21 端口,可能还会用到其他端口,所以此处我们放行 20/21,1024/65535,如下:

 

五、本地使用 FTP 客户端测试

FTP 客户端工具也有很多,个人比较喜欢 FileZilla,中文版下载地址:https://www.filezilla.cn/

但是自己在连接测试的过程中发现一直本地的 FTP 客户端工具一直连接不上外网的远程 linux 服务器,查看相应的日志记录:

[root@ryan ~]# cat /var/log/messages

没有发现可用的日志,然后查看了:

[root@ryan ~]# cat /var/log/secure

发现有如下的记录:

Feb 25 11:43:21 ryan proftpd[23776]: ryan (124.89.91.57[124.89.91.57]) - USER ftp_wordpress: no such user d from 124.89.91.57 [124.89.91.57] to ::ffff:172.31.71.42:21

显示没有 ftp_wordpress 用户,可是上面明明创建了 ftp_wordpress 虚拟用户,原来是因为 proftpd 应用程序导致的,proftpd 也是一款 FTP 服务端程序,由于自己在服务器上搭建 xampp 时,xampp 集成包中带了这个 proftpd 程序,当启动 xampp 时,proftpd 也启动了,并且占用了服务器的 21 端口。所以此时,在服务器中启动的 FTP 服务器程序是 proftpd,而不是我们安装的 pure-ftpd,ftp_wordpress 用户也是在 pure-ftpd 中创建的,但 proftpd 中并不存在该用户,所以会出现没有 ftp_wordpress 用户。

我们可以通过如下命令验证:

先查看 21 端口是否开启:

[root@ryan ~]# netstat -an | grep 21

然后查看 proftpd 进程:

[root@ryan ~]# ps -aux | grep proftpd

可以查看到该进程的 PID,比如 19466

但是,通过 ps 及 top 命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。这时,我们需要通过以下的方法来查看进程的详细信息:

Linux 在启动一个进程时,系统会在 /proc下创建一个以 PID 命名的目录,该目录是系统内存的映射目录,提供内核与进程信息,其中包括一个名为 exe 的文件即记录了绝对路径,通过 ll 或 ls –l 命令即可查看:

[root@ryan ~]# ls -l /proc/PID

……

lrwxrwxrwx 1 root root 0 Feb 24 22:55 exe -> /opt/lampp/sbin/proftpd

……

通过查看到该进程的绝对路径,发现 proftpd 确实是 xampp 所带的组件。

说明:

cwd 符号链接的是进程运行目录;

exe 符号连接就是执行程序的绝对路径;

cmdline 就是程序运行时输入的命令行命令;

environ 记录了进程运行时的环境变量;

fd 目录下是进程打开或使用的文件的符号连接。

解决方法:

自己手动停掉 profptd(对应的启动命令为:[root@ryan ~]# /opt/lampp/lampp startftp):

[root@ryan ~]# /opt/lampp/lampp stopftp

XAMPP: Stopping ProFTPD...ok.

启动我们新搭建的 pure-ftpd:

[root@ryan pure-ftpd-1.0.47]# /usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf

然后在本地使用 FTP 客户端工具再次连接远程服务器,发现可以正常连接了,此时启动的 FTP 服务器端程序是 pure-ftpd。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_35669659/article/details/102739687

标签:ftp,ftpd,ryan,wordpress,pure,转载,root
From: https://www.cnblogs.com/wjsqqj/p/18039288

相关文章

  • Linux中安装FTP客户端(转载)
    Linux中测试搭建FTP服务器,刚安装完vsftpd测试登录时就提示“-bash:ftp:commandnotfound”,说明需要安装FTP客户端。1.http://rpmfind.net/linux/rpm2html/search.php?query=ftp下载客户端2.rpm-ivhftp-0.17-51.1.el6.x86_64.rpm安装客户端3.安装ftp-0.17-74.fc2......
  • [转载]详解Mysql innoDB意向锁的作用
    前言InnoDB支持多粒度锁(multiplegranularitylocking),它允许行级锁与表级锁共存,而意向锁就是其中的一种表锁。意向锁(IntentionLocks)需要强调一下,意向锁是一种不与行级锁冲突表级锁,这一点非常重要。意向锁分为两种:意向共享锁(intentionsharedlock,IS):事务有意向对表中的某......
  • FTP服务搭建(linux)(转载)
    一、下载(在线安装可跳过)1、下载(见网盘)下载服务端vsftpd:下载地址下载客户端ftp注:如果需要使用ftp命令,则客户端必须安装,否则无法使用(-bash:ftp:commandnotfound)二、安装1、检查是否已经安装了vsftp首先查看系统中是否成功安装了vsftpd,执行下面命令(有内容则安装了ftp)rpm......
  • Linux:离线搭建vsftpd服务并记录新建用户登录报错问题(转载)
    1.检查本机是否安装过vsftpd#检查是否存在vsftpdrpm-qa|grepvsftpd2.下载离线安装包下载地址:http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64)3.开始安装vsftpd#安装vsftpdrpm-ivhvsftpd-3.0.2-21.el7.x86_64.rpm4.测试是否安装成功......
  • 算法的评估指标 转载自知乎https://zhuanlan.zhihu.com/p/400644465
    什么是评估指标?评估指标是针对模型性能优劣的一个定量指标。一种评价指标只能反映模型一部分性能,如果选择的评价指标不合理,那么可能会得出错误的结论,故而应该针对具体的数据、模型选取不同的的评价指标。针对不同类型的学习任务,我们有不同的评估指标,这里我们来介绍最常见的分类......
  • 【转载】docker save load export import区别详解
    【转载】dockersaveloadexportimport区别详解https://www.cnblogs.com/dingjiaoyang/p/16571840.html1、dockersave用来将一个或多个image打包保存。如:将本地镜像库中的image1和image2打包到images.tar中dockersave-oimages.tagimage1:v1image2:v1dockersave也可......
  • autosar网络管理(转载)
       一、名词解释AUTOSAR: AUTOmotiveOpenSystemArchitecture,汽车开放系统架构CAN: ControllerAreaNetwork,控制器局域网NM: NetworkManagement,网络管理NMPDU:NetworkManagementprotocoldataunit,网络管理协议数据单元二、主动唤醒请求1、模块上......
  • Mounriver工程转为C++(转载)
    注:文章为内部转载。1、右键要转换为C++的工程new->other,按下图选择点击next,按下图配置,点击FINSH。2、工程转换为C++之后,原有的设置都会变成默认的,需要重新添加。上图添加头文件路径。上图添加链接脚本路径。上图使用默认的桩函数。3、添加C++初始化函数,在启动文件调......
  • linux ftp服务选择与ftp(vsftpd,Pure-FTPd)服务安装使用教程(转载)
    一linuxftp常用的服务软件在Linux系统中,最常用的ftp有vsftpd,Pure-FTPd,ProFTPd,Wu-FTPd,glftpd,他们的特性优缺点如下对比图:常用的5款linuxftp对比图:软件 特性 优点 缺点vsftpd 轻量级、安全、易于配置 安全性高、性能好、易于配置 功能较为简单Pure-FTPd 安全、可扩展、......
  • 【转载】linux利用crontab添加定时任务详解
    crontab作用:添加,查询,删除系统计划任务的指令。[root@localhost~]#crontab[选项]选项:   -e:   编辑crontab定时任务   -l:   查询crontab任务   -r:   删除当前用户所有的crontab任务1234512345[root@localhost~]#crontab-e......