一、pure-ftpd简介
PureFTPd是一款专注于程序健壮和软件安全的免费FTP服务器软件(基于BSD License),以安全和配置简单为设计目标,支持虚拟主机,IPV6,PAM等功能。。其可以在多种类Unix操作系统中编译运行,包括Linux、OpenBSD、NetBSD、FreeBSD、DragonFly BSD、Solaris、Tru64、Darwin、Irix and HP-UX。PureFTPd还有Android移植版本。
二、源码安装步骤
1、官网下载pure-ftpd
打开官网下载链接,下载最新版本pure-ftpd软件包,最新版本为:1.0.49。
2、将软件上传到服务器
[root@s142 ~]# cd /usr/local/
[root@s142 local]# rz -y
#选择pure-ftpd-1.0.49.tar.gz后上传到/usr/local目录下。
3、解压软件包
[root@s142 local]# tar -zxvf pure-ftpd-1.0.49.tar.gz
…
[root@s142 local]# chown -R root.root pure-ftpd-1.0.49
4、编译软件
[root@s142 local]# cd pure-ftpd-1.0.49
[root@s142 pure-ftpd-1.0.49]# ./configure
…
config.status: creating config.h
config.status: executing depfiles commands
5、安装软件
[root@s142 pure-ftpd-1.0.49]# make
…
make[2]: Leaving directory `/usr/local/pure-ftpd-1.0.49’
make[1]: Leaving directory `/usr/local/pure-ftpd-1.0.49’
[root@s142 pure-ftpd-1.0.49]# make check
…
[root@s142 pure-ftpd-1.0.49]# make install
Making install in puredb
…
make[2]: Nothing to be done for `install-exec-am’.
/usr/bin/mkdir -p ‘/usr/local/share/doc/pure-ftpd’
/usr/bin/install -c -m 644 FAQ README.LDAP README.MySQL README.PGSQL README.Configuration-File README.Virtual-Users README.Authentication-Modules README.TLS README.MacOS-X pure-ftpd.conf pureftpd.schema pureftpd-ldap.conf pureftpd-mysql.conf pureftpd-pgsql.conf ‘/usr/local/share/doc/pure-ftpd’
make[2]: Leaving directory `/usr/local/pure-ftpd-1.0.49’
make[1]: Leaving directory `/usr/local/pure-ftpd-1.0.49’
6、查看pure-ftpd命令安装路径
[root@s142 pure-ftpd-1.0.49]# which pure-ftpd
/usr/local/sbin/pure-ftpd
7、启动pure-ftpd服务
[root@s142 pure-ftpd-1.0.49]# cp pure-ftpd.conf /etc/
[root@s141 pure-ftpd]# /usr/local/sbin/pure-ftpd &
[1] 9495
8、检查服务
[root@s141 pure-ftpd]# netstat -tnpl |grep pure
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 9495/pure-ftpd (SER
tcp6 0 0 :::21 ::😗 LISTEN 9495/pure-ftpd (SER
三、YUM安装
1、安装epel扩展源
[root@s141 yum.repos.d]# yum install -y epel-release
2、安装pure-ftpd
[root@s141 yum.repos.d]# yum install -y pure-ftpd
…
pure-ftpd.x86_64 0:1.0.47-4.el7
…
Complete!
3、创建根用户及虚拟用户
[root@s141 yum.repos.d]# pure-pw mkdb
[root@s141 yum.repos.d]# useradd -d /home/pure pure
[root@s141 yum.repos.d]# pure-pw useradd wuhs -u pure -d /home/pure
Password:
Enter it again:
4、启用mkdb
[root@s141 yum.repos.d]# vim /etc/pure-ftpd/pure-ftpd.conf
取消如下行的注释
#PureDB /etc/pure-ftpd/pureftpd.pdb
5、启动pure-ftpd服务
[root@s141 yum.repos.d]# service pure-ftpd start
Redirecting to /bin/systemctl start pure-ftpd.service
[1]+ Done /usr/sbin/pure-ftpd (wd: /etc/pure-ftpd)
(wd now: /etc/yum.repos.d)
6、查看服务状态
[root@s141 yum.repos.d]# service pure-ftpd status
Redirecting to /bin/systemctl status pure-ftpd.service
● pure-ftpd.service - Pure-FTPd FTP server
Loaded: loaded (/usr/lib/systemd/system/pure-ftpd.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2021-11-16 14:54:31 CST; 8s ago
Process: 9606 ExecStart=/usr/sbin/pure-config.pl /etc/pure-ftpd/pure-ftpd.conf --daemonize (code=exited, status=0/SUCCESS)
Main PID: 9607 (pure-ftpd)
CGroup: /system.slice/pure-ftpd.service
└─9607 pure-ftpd (SERVER)
Nov 16 14:54:31 s141 systemd[1]: Starting Pure-FTPd FTP server…
Nov 16 14:54:31 s141 systemd[1]: PID file /var/run/pure-ftpd.pid not readable (yet?) after start.
Nov 16 14:54:31 s141 systemd[1]: Started Pure-FTPd FTP server.
7、使用客户端连接ftp服务器
使用wuhs用户连接服务器
三、配置文件说明
1、pure-ftpd.conf配置文件说明
参数 | 说明 |
---|---|
ChrootEveryone yes | 启用chroot,限制所有用户在其主目录中 |
BrokenClientsCompatibility yes | 兼容不同客户端。 |
Daemonize yes | 后台运行。 |
MaxClientsPerIP 20 | 每个ip最大连接数。 |
VerboseLog yes | 记录日志。 |
DisplayDotFiles no | 显示隐藏文件。 |
AnonymousOnly no | 只允许匿名用户访问。 |
NoAnonymous yes | 不允许匿名用户连接。 |
SyslogFacility none | 不将日志在syslog日志中显示。 |
DontResolve yes | 不进行客户端DNS解析。 |
MaxIdleTime 15 | 最大空闲时间。 |
LimitRecursion 2000 8 | 浏览限制,文件2000,目录8层。 |
AnonymousCanCreateDirs no | 匿名用户可以创建目录。 |
MaxLoad 4 | 超出负载后禁止下载。 |
PassivePortRange 45000 50000 | 被动模式端口范围。 |
AnonymousRatio 1 10 | 匿名用户上传/下载比率。 |
UserRatio 1 10 | 所有用户上传/下载比率。 |
AntiWarez yes | 禁止下载匿名用户上传但未经验证的文件。 |
AnonymousBandwidth 200 | 匿名用户带宽限制(KB)。 |
UserBandwidth 8 | 所有用户最大带宽(KB)。 |
Umask 133:022 | 创建文件/目录默认掩码。 |
MinUID 100 | 最大UID限制。 |
AllowUserFXP no | 仅运行用户进行FXP传输。 |
AllowAnonymousFXP no | 对匿名用户和非匿名用户允许进行匿名 FXP 传输。 |
ProhibitDotFilesWrite no | 不能删除/写入隐藏文件。 |
ProhibitDotFilesRead no | 禁止读取隐藏文件。 |
AutoRename yes | 有同名文件时自动重新命名。 |
AnonymousCantUpload yes | 不允许匿名用户上传文件。 |
AltLog clf:/var/log/pureftpd.log clf | 格式日志文件位置。 |
LDAPConfigFile /etc/pureftpd-ldap.conf | LDAP 配置文件 |
MySQLConfigFile /etc/pureftpd-mysql.conf | MySQL 配置文件 (参考 README.MySQL) |
PGSQLConfigFile /etc/pureftpd-pgsql.conf | Postgres 配置文件 (参考 README.PGSQL) |
PureDB /etc/pure-ftpd/pureftpd.pdb | 用户数据库文件。 |
MaxDiskUsage 99 | 当磁盘使用量打到99%时禁止上传。 |
CreateHomeDir yes | 如果虚拟用户的目录不存在则自动创建。 |
CustomerProof yes | 防止命令误操作。 |
LogPID yes | 如果你要为日志每一行添加 PID 去掉下面行的注释。 |
NoChmod yes | 不接受 CHMOD 命令。用户不能更改他们文件的属性。 |
KeepAllFiles yes | 允许用户恢复和上传文件,却不允许删除他们。 |
2、pure-pw常用命令
- pure-pw --help 获取命令帮助
- pure-pw mkdb 创建用户信息数据库
- pure-pw useradd 增加一个虚用户
- pure-pw usermod 修改用户信息
- pure-pw userdel 删除一个虚用户
- pure-pw passwd 修改用户密码