腾讯云主机搭建pureftpd出现530 Login authentication failed的问题

PureFTPD

相对于ProFTPD、WuFTPD等老牌 ftp 服务器,PureFTPD、vsftpd这些轻量级 ftp 服务器更加实用

PureFTPD 的配置文件通常为 /etc/pure-ftpd.conf

公司部分业务运行在腾讯云CVM虚拟机上,为了方便开发调试安装了PureFTPD,某天开发人员反映FTP无法连接,验证密码时出现
Password required

[14:05:49] [R] 530 Login authentication failed

但是我在使用FlashFXP测试时一切正常,让同事使用SecureFx使用同样账号密码测试也是正常。出现问题的同事网络环境和我一致,唯一不同的是他笔记本连接Wifi而我是LAN。于是让开发同事更换到LAN网络下测试问题依旧。。。。T7162CIQK(A7

静下心来上服务器查看日志,日志中

Jan 12 14:13:00 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] New connection from XX.XX.XX.XX
Jan 12 14:13:00 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] aaa is now logged in
Jan 12 14:13:00 server_2 pure-ftpd: (aaa@XX.XX.XX.XX) [INFO] Logout.
Jan 12 14:13:00 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] New connection from XX.XX.XX.XX
Jan 12 14:13:00 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] aaa is now logged in
Jan 12 14:13:05 server_2 pure-ftpd: (aaa@XX.XX.XX.XX) [INFO] Logout.
Jan 12 14:13:53 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] New connection from XX.XX.XX.XX
Jan 12 14:13:59 server_2 pure-ftpd: (?@XX.XX.XX.XX) [WARNING] Authentication failed for user [anonymous]
Jan 12 14:13:59 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] Logout.
Jan 12 14:13:59 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] New connection from XX.XX.XX.XX
Jan 12 14:14:04 server_2 pure-ftpd: (?@XX.XX.XX.XX) [WARNING] Authentication failed for user [aaa]
Jan 12 14:14:12 server_2 pure-ftpd: (?@XX.XX.XX.XX) [WARNING] Authentication failed for user [aaa]
Jan 12 14:14:12 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] Logout.
Jan 12 14:14:23 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] New connection from XX.XX.XX.XX
Jan 12 14:14:23 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] aaa is now logged in
Jan 12 14:14:23 server_2 pure-ftpd: (aaa@XX.XX.XX.XX) [INFO] Logout.
Jan 12 14:14:23 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] New connection from XX.XX.XX.XX
Jan 12 14:14:23 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] aaa is now logged in
Jan 12 14:15:19 server_2 pure-ftpd: (aaa@XX.XX.XX.XX) [INFO] Logout.
Jan 12 14:15:34 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] New connection from XX.XX.XX.XX
Jan 12 14:15:34 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] aaa is now logged in
Jan 12 14:15:57 server_2 pure-ftpd: (aaa@XX.XX.XX.XX) [INFO] Logout.
Jan 12 14:16:10 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] New connection from XX.XX.XX.XX
Jan 12 14:16:10 server_2 pure-ftpd: (?@XX.XX.XX.XX) [INFO] aaa is now logged in
Jan 12 14:16:18 server_2 pure-ftpd: (aaa@XX.XX.XX.XX) [INFO] Logout.

日志中显示有正常登录也有登录失败,我仔细检查了PureFTPD PASV/PORT的设置及iptables都没有问题。
我在Windows IE中直接ftp登录服务器出现文件夹无法打开的错误,看来开发同事碰到的错误并不是因为他们的原因。

我再次打开PureFTPD配置文件仔细检查每一行配置
以下配置信息摘录自网络,非正式线上环境

## 绑定的地址和端口(默认为所有 IP地址 的 21端口)
# Bind                      127.0.0.1,21 
 
## 将所有用户限制在主目录中 (不能跳出)
ChrootEveryone              yes   
 
## 如果前一个设置为 no,下面组的成员(GID)可以跳出主目录;其他用户仍然受限
## 如果想取消所有限制,注释掉 ChrootEveryone 和 TrustedGID 
# TrustedGID                    100 
 
## 如果用户主目录不存在,自动创建
# CreateHomeDir               yes 
 
## 新建目录及文件的权限掩码(禁止的权限)。文件掩码:目录掩码 
Umask                       133:022 
 
## 被动模式响应的端口范围
# PassivePortRange          30000 50000
 
## 强制一个 IP地址 使用被动模式
# ForcePassiveIP                192.168.0.1 
 
## 仅允许认证用户进行 FXP 传输 (服务器=>服务器)
AllowUserFXP                yes
 
## 允许匿名 FXP 传输
AllowAnonymousFXP           no 
 
## 兼容 ie 等山寨 ftp 客户端
BrokenClientsCompatibility  no 
 
## 服务器允许的最大连接数
MaxClientsNumber            50 
 
## 同一 IP 允许的最大连接数
MaxClientsPerIP             8 
 
## 匿名用户最大带宽(KB/s)
# AnonymousBandwidth            8
 
## 所有用户最大带宽(KB/s),包括匿名用户
# UserBandwidth             8
 
# 匿名用户的上传/下载的比率
# AnonymousRatio                1 10
 
# 所有用户的上传/下载的比率
# UserRatio                 1 10 
 
## 客户端的最大空闲时间(缺省15分钟,无动作将会被踢出)
MaxIdleTime                 15 
 
## 不允许认证用户 (仅作为一个公共的匿名 FTP)
AnonymousOnly               no
 
## 不允许匿名连接,仅允许认证用户使用 (设置为 no 允许匿名连接)
NoAnonymous                 no   
 
## 受信地址允许认证用户,其它地址只能匿名连接
#TrustedIP                  10.1.1.1 
 
## 禁止匿名上传( no = 允许上传)
AnonymousCantUpload         no 
 
## 是否允许匿名用户创建目录
AnonymousCanCreateDirs      no 
 
## 'ls' 命令的递归限制。(文件的最大数目 最大子目录深度)
LimitRecursion              2000 8 
 
## 保留所有文件(禁止删除)
# KeepAllFiles                yes 
 
## 如果上传的文件已经存在,自动重命名
AutoRename                  no
 
## 禁止重命名
# NoRename 		      yes 
 
## 禁止更改文件权限
# NoChmod                     yes 
 
## 禁止读取隐藏文件(如 .history, .ssh 等)
ProhibitDotFilesRead        no 
 
## 禁止下载所有者为 "ftp" 的文件 (匿名用户上传后未被本地管理员验证的文件)
AntiWarez                   yes 
 
## 指定文件内容作为欢迎信息
# FortunesFile              /usr/share/fortune/zippy 
 
## 启用磁盘限额。第一个数字为最大文件数,第二个数字为存储空间大小(单位:Mb)
## 1000:10 限制每一个用户只能使用 1000 个文件,共 10Mb
# Quota                       1000:10 
 
## 最大可用空间,保证日志文件不会被覆盖 (默认为 99%)
MaxDiskUsage               99

其中这个参数引起了我的注意 ForcePassiveIP

# Force an IP address in PASV/EPSV/SPSV replies. - for NAT.
# Symbolic host names are also accepted for gateways with dynamic IP
# addresses.

大概意思是在 PASV/EPSV/SPSV模式下强制指定一个IP
想到腾讯云CVM网络的特殊,在本机ifconfig下并不能看到实际的公网IP。于是打开这个参数并设置了对应CVM的公网IP
ForcePassiveIP XX.XX.XX.XX
重新启动PureFTPD

/etc/init.d/pureftpd

问题解决~~

再丢几个配置文件信息
PureFTPD 允许同时使用多种用户认证方式。以下为关于用户认证的配置:

## LDAP 配置文件 
# LDAPConfigFile                /etc/pureftpd-ldap.conf
 
## MySQL 配置文件
# MySQLConfigFile               /etc/pureftpd-mysql.conf
 
## Postgres 配置文件 
# PGSQLConfigFile               /etc/pureftpd-pgsql.conf
 
## PureDB 用户数据库 
# PureDB                        /etc/pureftpd.pdb
 
## pure-authd 套接路径
# ExtAuth                       /var/run/ftpd.sock
 
## 启用 PAM 认证
# PAMAuthentication             yes
 
# 启用 Unix 系统认证 (/etc/passwd)
# UnixAuthentication            yes

PureFTPD 可以使用 syslog 生成日志,以下为关于日志的配置:

## Syslog 日志 。默认为 "ftp", "none" 禁用日志
SyslogFacility              ftp 
 
## 在日志文件中不解析主机名
DontResolve                 yes   
 
## 在日志中添加 PID  
# LogPID                     yes
 
## 使用 Apache 格式创建额外日志
# AltLog                     clf:/var/log/pureftpd.log
 
## 使用优化格式创建额外日志
# AltLog                     stats:/var/log/pureftpd.log
 
## 使用 W3C 格式创建额外日志 
# AltLog                     w3c:/var/log/pureftpd.log

还没有评论,快来抢沙发!

发表评论

  • 😉
  • 😐
  • 😡
  • 😈
  • 🙂
  • 😯
  • 🙁
  • 🙄
  • 😛
  • 😳
  • 😮
  • emoji-mrgree
  • 😆
  • 💡
  • 😀
  • 👿
  • 😥
  • 😎
  • ➡
  • 😕
  • ❓
  • ❗
  • 70 queries in 0.418 seconds