debian 11 安装 pure-ftpd
debian 11 安装 pure-ftpd

此为本人特定操作记录,适度参考

安装 pure-ftpd 包,如果找不到包,可以重新配置为官方源后再试,或直接应用可执行文件。

shellapt install pure-ftpd

移除用不到的认证方式,建议先确定路径是否正确,不同仓库打包可能位置不一样。

shellrm -rf /etc/pure-ftpd/auth/*
ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/60puredb

增加一个不能登入的用户 ftpuser 及其用户组 ftpgroup/var/www 为家目录

shellgroupadd ftpgroup
useradd -g ftpgroup -d /var/www -s /usr/sbin/nologin ftpuser
chown ftpuser:ftpgroup /var/www

添加一个测试虚拟用户 anonymous/var/www/anonymous 为其虚拟家目录,应位于 ftpuser 的家目录之下,会提示输入两次密码。

shellsudo -u ftpuser mkdir /var/www/anonymous
pure-pw useradd anonymous -u ftpuser -d /var/www/anonymous

每次修改用户数据后斗需要创建或更新 pureDB:

shellpure-pw mkdb

检查刚才添加的用户 anonymous:

shellpure-pw show anonymous

典型配置如下,注意 pureftpd 使用文件覆盖的方式进行配置,除非知道自己在做什么,否则不要动 /etc/pure-ftpd/pure-ftpd.conf 文件,而是在 /etc/pure-ftpd/conf/ 中创建以配置项的键为名的文件,其内容为配置项的值。

shellecho "UTF-8" > /etc/pure-ftpd/conf/FSCharset
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
# 最多同时有多少个客户端链接
echo "32" > /etc/pure-ftpd/conf/MaxClientsNumber
# 是否后台运行
echo "yes" > /etc/pure-ftpd/conf/Daemonize
# 每个客户可以创建几个链接线程,一般 3 个就很够用,很多专门的 FTP 资源共享站点都是 1
echo "3" > /etc/pure-ftpd/conf/MaxClientsPerIP
# 是否显示以点开头的隐藏文件
echo "yes" > /etc/pure-ftpd/conf/DisplayDotFiles
# 是否只允许匿名用户登入
echo "no" > /etc/pure-ftpd/conf/AnonymousOnly
# 是否不允许匿名用户登入
echo "yes" > /etc/pure-ftpd/conf/NoAnonymous
# 是否不解析客户端地址
echo "yes" > /etc/pure-ftpd/conf/DontResolve
# 客户端空闲时间,单位分钟
echo "15" > /etc/pure-ftpd/conf/MaxIdleTime
# 此配置项本质是个指向
echo "/etc/pure-ftpd/pureftpd.pdb" > /etc/pure-ftpd/conf/PureDB
echo "no" > /etc/pure-ftpd/conf/PAMAuthentication
echo "no" > /etc/pure-ftpd/conf/UnixAuthentication
# 匿名用户是否可以创建文件夹
echo "no" > /etc/pure-ftpd/conf/AnonymousCanCreateDirs
# 负载上限,当系统负载达到此值后匿名用户将被拒绝下载请求,其实没啥用
echo "4" > /etc/pure-ftpd/conf/MaxLoad
# 被动模式使用的端口范围
echo "30000 50000" > /etc/pure-ftpd/conf/PassivePortRange
# 小于此 id 的 unix 用户将不能登入,保持默认 1000 即可
echo "1000" > /etc/pure-ftpd/conf/MinUID
# 是否允许 FXP 跨站协议,此协议用于在两个 FTP 站点中直接交换数据而不经过客户端中转,专门的 FTP 资源站可以开启这个
echo "no" > /etc/pure-ftpd/conf/AllowUserFXP
# 是否允许匿名用户使用 FXP 跨站协议
echo "no" > /etc/pure-ftpd/conf/AllowAnonymousFXP
# 是否阻止客户创建、修改、删除以点开头的文件
echo "no" > /etc/pure-ftpd/conf/ProhibitDotFilesWrite
# 是否阻止客户读取以点开头的文件
echo "no" > /etc/pure-ftpd/conf/ProhibitDotFilesRead
# 是否在上传遇到重复的文件时自动重命名
echo "no" > /etc/pure-ftpd/conf/AutoRename
# 是否阻止匿名用户上传
echo "yes" > /etc/pure-ftpd/conf/AnonymousCantUpload
# 是否阻止客户修改文件权限
echo "yes" > /etc/pure-ftpd/conf/NoChmod

确认无误重启进程正式使用,记得删除或禁用匿名用户。

shellsystemctl restart pure-ftpd
作者
ragnaroks
发布时间
2022-04-11
更新时间
2023-04-01
创作协议