20190706/5d2053c22c178.jpg

The best life is use of willing attitude, a happy-go-lucky life.

— Mr.Wang

头像

CentOS7 安装 Pure-ftpd

发布时间:2019-07-06 15:54:42

发布作者:admin

235


一、摘要

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





相关文章:
  1. Linux基于libmemcached,php扩展memcached的安装
  2. shell gzexe shc解密教程与工具共享 shc国内首发
  3. 动态扩容Linux根目录 (解决/dev/mapper/centos-root 占用了过高问题)
  4. 手机归属地字库