CentOS7 部署pure-ftpd
一、pure-ftpd概念
Pure-FTPd 是一款高性能、开源的、轻量级的 FTP 服务器软件,主要用于在 UNIX-like 系统(如 Linux、BSD、Solaris)上提供 FTP 服务。它强调简洁、安全和高效,支持多种现代 FTP 协议扩展,如 FTPS(FTP over SSL/TLS)和虚拟用户支持等。
主要特点:
- 安全性:
- 支持 FTPS,即使用 SSL/TLS 加密的 FTP(保护数据传输的安全性)。
- 支持 chroot(限制用户到特定目录),从而增加系统的安全性。
- 防止暴力破解、IP 限制、密码强度策略等。
- 性能:
- 性能优化和内存消耗低,适用于高负载的环境。
- 支持多线程和高效的文件传输。
- 虚拟用户支持:
- 可以通过配置文件创建虚拟用户,不需要在系统中创建对应的系统账户。
- 虚拟用户可以具有不同的权限,比如读取、写入或访问限制。
- 易于管理:
- 提供简单的命令行工具进行配置和管理。
- 可以通过
pure-ftpd
命令及相关工具来配置服务,支持日志、权限和用户管理。
- 扩展性:
- 支持扩展协议,如 IPv6、ASCII 转换、断点续传等。
- 支持通过插件进行功能扩展。
- 日志功能:
- 提供详细的日志记录,便于管理员进行监控和排查问题。
- 可以通过 syslog 或自定义日志配置来收集日志信息。
- 兼容性:
- 支持与标准 FTP 客户端的兼容性。
- 支持的 FTP 功能包括:匿名登录、虚拟用户、IP 白名单/黑名单、限制上传下载速率等。
使用场景:
- 文件共享和传输:适用于需要文件传输协议的场景,尤其是在内网或跨地区的大文件共享中。
- Web 服务器集成:将 FTP 服务作为 Web 服务器的一部分提供文件上传和下载服务。
- 安全需求较高的环境:由于其支持 FTPS 和各种安全特性,适用于安全要求较高的传输场景。
二、安装pure-ftpd
1.安装依赖项
yum install -y wget gcc openssl-devel
2.下载和解压pure-ftpd源码包
cd /usr/local/src
wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.51.tar.gz
tar -xzf pure-ftpd-1.0.51.tar.gz
cd pure-ftpd-1.0.51
3.编译和安装pure-ftpd
./configure \
--prefix=/usr/local/pure-ftpd \
--without-inetd \
--with-altlog \
--with-puredb \
--with-throttling \
--with-peruserlimits \
--with-tls
make -j $(nproc)
make install
解释说明:
--prefix=/usr/local/pureftpd
:指定安装目录。--without-inetd
:不使用inetd/xinetd超时守护进程。--with-altlog
:启用可选日志记录格式。--with-puredb
:启用PureDB支持,用于管理用户数据库。--with-throttling
:启用带宽限制。--with-peruserlimits
:启用每用户限制。--with-tls
:启用TLS/SSL支持。
三、配置pure-ftpd
1.创建日志目录
mkdir /usr/local/pure-ftpd/log
2.修改配置文件
编辑主配置文件 /usr/local/pure-ftpd/etc/pure-ftpd.conf
,修改以下内容,可以先备份原来的配置文件再更新:
cd /usr/local/pure-ftpd/etc
cp pure-ftpd.conf pure-ftpd.conf.bak
# 替换以下内容
sed -i 's/MaxClientsPerIP *8/MaxClientsPerIP 100/g' pure-ftpd.conf
sed -i 's@# PureDB */etc/pureftpd.pdb@PureDB /usr/local/pure-ftpd/etc/pureftpd.pdb@g' pure-ftpd.conf
sed -i 's/# PAMAuthentication *yes/PAMAuthentication yes/g' pure-ftpd.conf
sed -i 's/# PassivePortRange *30000 50000/PassivePortRange 10000 11000