配置 pureftpd.note
·注意:/etc/pure-ftpd/pure-ftpd.conf 文件改了是没有用的,pure-ftpd不读取它,它只会读取 /etc/pure-ftpd/conf 目录下的文件
pure-ftpd.conf 文件只是一个示例文档,修改其中的内容不会有任何效果
/etc/pure-ftpd/conf 下的文件文件名就是一个配置选项,其中的内容就是它的值
·如果要配置ftp根目录,只能够配置 ftp虚拟用户手动指定 根目录
一、配置 pure-ftpd:
pure-ftpd 好像无法直接修改本地用户/匿名用户的根目录
1、非加密 Ftp:
默认安装后就可以使用本地用户进行登陆(除了root以外)
(1)开启匿名用户登陆:
匿名用户默认的根目录是 /srv/ftp
# 默认禁用匿名用户登陆
vim /etc/pure-ftpd/conf/NoAnonymous
## 将yes 改为no
systemctl restart pure-ftpd
·测试:
使用 anonymous 或 ftp 登陆即可:

(2)禁止指定用户登陆:
# 无论是 vsftpd、pure-ftpd、proftpd 都适用:在 /etc/ftpuser 文件中写入的用户都将会被禁止登陆ftp(3)允许 root 用户登陆
# 修改最小可允许登陆的 UID:
vim /etc/pure-ftpd/conf/MinUID
# 注释或删除 /etc/ftpuser 中的 root
vim /etc/ftpuser
systemctl restart pure-ftpd
·测试:

2、配置 SSL显式加密:
echo 2 > /etc/pure-ftpd/conf/TLS# 0 //不启用SSL加密
# 1 //启用SSL加密,但是接受加密和非加密的流量
# 2 //启用SSL加密,仅接受加密的流量
# 无法直接设置 pure-ftpd 的证书私钥和公钥路径,但是可以将我们的证书替换为它默认路径的文件:
cat /etc/ssl/tls/ssl.crt /etc/ssl/tls/ssl.key > /etc/ssl/private/pure-ftpd.pem## 默认不存在这个文件,不用记名称,在 conf目录下配置TLS之后,重启 pure-ftpd,报错中会给出这个文件位置:

systemctl restart pure-ftpd
·测试:

此时非加密的会话就不会被接受(因为TLS值设置为了2):

3、配置 SSL隐式加密:
与 显式SSL类似,但是需要使用 Bind 将监听端口改为 990
echo 2 > /etc/pure-ftpd/conf/TLS# 0 //不启用SSL加密
# 1 //启用SSL加密,但是接受加密和非加密的流量
# 2 //启用SSL加密,仅接受加密的流量
# 设置监听990端口:
echo 990 > /etc/pure-ftpd/conf/Bind# 无法直接设置 pure-ftpd 的证书私钥和公钥路径,但是可以将我们的证书替换为它默认路径的文件:
cat /etc/ssl/tls/ssl.crt /etc/ssl/tls/ssl.key > /etc/ssl/private/pure-ftpd.pem## 默认不存在这个文件,不用记名称,在 conf目录下配置TLS之后,重启 pure-ftpd,报错中会给出这个文件位置:

systemctl restart pure-ftpd
·测试:

此时非加密的会话就不会被接受(因为TLS值设置为了2):

4、开启被动端口:
被动模式默认开启,只需要指定被动端口范围即可
# 开启被动端口,用于通过防火墙:
echo '40000 50000' > /etc/pure-ftpd/conf/PassivePortRange
## 能够在 Pure-ftpd --help 中查看到这个文件名称
## 文件名严格区分大小写,必须首字母大写,按照我的这个路径
systemctl restart pure-ftpd
二、配置 pure-ftp 虚拟用户:
# 创建一个本地用户用于给虚拟用户进行映射:
adduser webuser# 创建 ftp 虚拟用户zhangsan:
pure-pw useradd zhangsan -u webuser -d /htdocs/html
pure-pw mkdb
# 添加身份认证方式:(必须使用绝对路径,必须使用软连接,名称任意,但是开头的数字必须小于 65)
ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/60-PureDB
# -u //映射到本地用户中
# -d //指定虚拟用户家目录测试:
ls 时需要稍微等 1~2秒

三、连接 ldap用户:
安装 nslcd 之后默认就能够使用 ldap用户进行登陆