CentOS7 安装 Pure-ftpd

一、摘要

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

三、使用 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 pure-ftp

更改所属主和所属组:

chown -R pure-ftp: pure-ftp /data0/www/www.***.com

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

/usr/local/pureftpd/bin/pure-pw useradd ftp_test -u pure-ftp -d /data0/www/www.***.com

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

Password:xxxxxx
Enter it again:xxxxxx

其中,-u选项将虚拟用户ftp_test与系统用户 pure-ftp关联在一起,即使用ftp_test账号登录FTP后,会以 pure-ftp的身份来读取和下载文件,-d选项后面的目录为ftp_test账户的根目录,这样可以使ftp_test只能访问其根目录/data0/www/www.***.com

注意:一般情况下web网站的系统用户为www,为了保障ftp上传修改的文件和目录能够不影响网站系统的使用权限,可以把上面提到的pure-ftp改为www。这样ftp上传到服务器的文件属性就是www了。

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

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

查看用户列表:

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

显示如下:

ftp_test /data0/www/www.***.com/./

删除账号的命令为:

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

您可能还喜欢...