CentOS7安装Pure-ftpd

  • 一、摘要
  • 二、下载并安装Pure-ftpd
    • 1. yum 安装
    • 2. 源码包安装
    • 3. 修改配置文件
  • 三、使用Pure-ftpd
  • 四、配置服务器段安全组规则
  • 五、本地使用FTP客户端测试

一、摘要

  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 安装时仓库的版本一般都是固定的某一个版本,无法自由选择。

1. yum 安装

  • 默认的 yum 源没有提供 pure-ftpd,需要先安装 epel 扩展源
# yum install epel-release
  • 然后使用 yum 命令安装Pure-ftpd
 # yum install pure-ftpd

2. 源码包安装

  访问 pure-ftpd 官方网站:下载最新版本。

  • 进入到要下载的目录
 [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"说明执行成功,否则就是没有成功

3. 修改配置文件

/usr/local/pureftpd/etc/pure-ftpd.confvim /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,中文版下载地址。
  但是自己在连接测试的过程中发现一直本地的 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。

CentOS7安装Pure-ftpd相关推荐

  1. linux7装kangle,CentOS7安装kangle和easypanel

    您的位置:WenRou's Blog >面板> CentOS7安装kangle和easypanel 第一步:系统支持包安装 yum -y install wget tar make aut ...

  2. Centos7安装ftp服务

    Centos7安装ftp服务 1.安装ftp服务端 yum install -y vsftpd 2.启动ftp服务 systemctl start vsftpd.service 3.查看进程状况 ps ...

  3. centos7 nginx配置php7,centos7安装并配置nginx+php,centos7nginx

    centos7安装并配置nginx+php,centos7nginx centos7安装并配置nginx+php 安装nginx yum install nginx 设置nginx开启起动 syste ...

  4. centos7安装配置pgAgent

    centos7安装pgagent: 默认cmake已经安装 编译wxGTK https://excellmedia.dl.sourceforge.net/project/wxwindows/2.8.7 ...

  5. centos7 安装mysql php_Centos7安装mysql与php的方法

    本文主要和大家分享Centos7安装mysql与php的方法,希望能帮助到大家. 相关mysql视频教程推荐:<mysql教程> 官网下载安装mysql-server 依次使用下面三个命令 ...

  6. Centos7安装Apache和PHP,包含配置过程

    本文主要讲的是本人在迁移php网站相关软件的安装和配置过程,以及一下问题的解决步骤.通过阅读本文能够知道如何迁移php网站,如何配置httpd服务使得它能够解析php文件以及如何解决迁移过程中的异常问 ...

  7. LINUX CentOS7安装字体库

    LINUX CentOS7安装字体库 2017年12月26日 17:06:07 q260996583 阅读数:4866更多 个人分类: linux JAVA画图时常用到Font 类对象 这样的对象依赖 ...

  8. centos7安装mysql缺失依赖_CentOS7安装mysql5.7不成功,解决依赖包之后还是无法安装成功...

    [root@xg79 ~]# yum -y installmysql-community-server ............. Error: Package:mysql-community-ser ...

  9. linux tomcat7怎么安装,centos7安装Tomcat7,

    centos7安装Tomcat7, 一.环境 centos7 linux apache-tomcat-7.0.92.tar.gz:链接:https://pan.baidu.com/s/1-clhIjD ...

  10. CentOS7安装CDH 第三章:CDH中的问题和解决方法

    CentOS7安装CDH 第三章:CDH中的问题和解决方法 参考文章: (1)CentOS7安装CDH 第三章:CDH中的问题和解决方法 (2)https://www.cnblogs.com/yang ...

最新文章

  1. HTMLDOM中三种元素节点、属性节点、文本节点的测试案例
  2. linux下面navicat调整字体
  3. html仿百度页面代码_百度优化需要注意的4点
  4. Dapper基础知识三
  5. 【C语言】创建一个函数,利用该函数将字符串中的小写字母转换为大写字母
  6. spark java api通过run as java application运行的方法
  7. Android 系统开发_核心技术篇 -- 深入钻研 JNI
  8. qlineedit限制输入数字_请注意:输入设计需要这些交互反馈
  9. 51单片机篮球计分器C语言,基于C51单片机的篮球计分器设计
  10. 谷歌浏览器去除广告--广告终结者
  11. win7安装IIS后如何远程访问IIS
  12. 浅层与深层、局部与全局、低级与高级特征的辨析
  13. 海康威视NVR硬盘录像机DS-7808N安装调试教程,监控系统安装教程
  14. Mac火爆游戏---英雄联盟LOL
  15. H3C S3610 交换机组播静态路由的配置
  16. [LuoGu] P3957 跳房子
  17. Win2003 Server磁盘配额揭密之删除篇
  18. java进度条_Java web实时进度条整个系统共用(如java上传、下载进度条、导入、导出excel进度条等)...
  19. Oracle 分组数据
  20. SIP协议及其简单介绍

热门文章

  1. 夏令时及java中常用方法
  2. 台式计算机的电流是多少,电脑台式机一天耗电大概是多少
  3. 计算机卡住了怎样恢复,电脑频繁假死怎么办 电脑死机数据恢复
  4. C++多线程卡死问题--访问冲突未必崩溃
  5. 中文转换为拼音插件guiHz2Py
  6. Mathtype 花体字 Euclid math one/two 不能显示的问题
  7. 余承东 鸿蒙不是手机,余承东解密华为鸿蒙OS2.0:不是手机操作系统的简单替代-社会-文章-小虾米...
  8. 2021年山东省安全员C证考试题库及山东省安全员C证考试报名
  9. 介绍产品(软件开发)比较好用的工具(项目管理、文件整理等)
  10. 应用软件安装后在注册表中生成的安装信息、卸载信息