Ubuntu 10.04:主机上的 OpenVZ 内核和纯 ftpd 问题(尚未设置客户机)

Ubuntu 10.04:主机上的 OpenVZ 内核和纯 ftpd 问题(尚未设置客户机)

在 Ubuntu 10.04 下编译并安装 OpenVZ 风格的内核后,连接到 pure-ftpd 服务器时无法浏览某些目录。

客户端进入被动模式,这很好。这种行为在内核更改之前就发生了,但现在当我浏览某些目录时,连接就会断开。这种情况只发生在一个登录名(特别是 Web)下的几个目录中,而对于另一个登录名,只要我连接就会发生这种情况。

我已经nf_conntrack_ftp安装了内核模块(据我所知,这是跟踪被动 FTP 连接所必需的,也是模块的别名ip_conntrack_ftp),但这并没有缓解我的问题。实际上,在初始设置我的操作系统时需要此模块才能使被动 FTP 正常工作,但是当我编译 OpenVZ 内核时,许多这些模块都缺失了(iptables、conntrack 等)。我用缺失的模块重新编译了内核,但没有任何效果。

我已经将 pure-ftpd 服务器的详细程度调高,但系统日志或传输日志中仍未发现任何线索。strace 也没有提供任何线索(反正我能辨别出来)——不过有一点很奇怪,在客户端的输出和 strace 中我都注意到它确实探测了目录并返回了匹配数——但之后就失败了。

还有一点需要说明的是,如果我在本地使用相同的凭据进行 FTP 操作,一切都会正常。这表明,这实际上是模块conntrack_ftp未按预期运行的问题,或者是更深层次的网络问题。

内核是按照以下说明编译和安装的:https://help.ubuntu.com/community/OpenVZ- 禁止对内核配置的更改(例如添加 iptables 作为模块)。

下面是发送到数据的日志示例(在 FileZilla 下)。

Status: Resolving address of xxxx.co.uk
Status: Connecting to 78.46.xxx.xxx:21...
Status: Connection established, waiting for welcome message...
Response:   220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
Response:   220-You are user number 4 of 10 allowed.
Response:   220-Local time is now 08:52. Server port: 21.
Response:   220-This is a private system - No anonymous login
Response:   220-IPv6 connections are also welcome on this server.
Response:   220 You will be disconnected after 15 minutes of inactivity.
Command:    USER xxx
Response:   331 User xxx OK. Password required
Command:    PASS ********
Response:   230-User xxx has group access to:  client1    sshusers  
Response:   230 OK. Current restricted directory is /
Command:    OPTS UTF8 ON
Response:   200 OK, UTF-8 enabled
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is your current location
Status: Directory listing successful
Status: Retrieving directory listing...
Command:    CWD /web
Response:   250 OK. Current directory is /web
Command:    TYPE I
Response:   200 TYPE is now 8-bit binary
Command:    PORT 10,0,2,30,14,143
Response:   500 I won't open a connection to 10.0.2.30 (only to 188.220.xxx.xxx)
Command:    PASV
Response:   227 Entering Passive Mode (78,46,79,147,234,110)
Command:    MLSD
Response:   150 Accepted data connection
Response:   226-ASCII
Response:   226-Options: -a -l 
Response:   226 57 matches total
Error:  Could not read from transfer socket: ECONNRESET - Connection reset by peer
Error:  Failed to retrieve directory listing

有什么建议吗?我愿意尝试一切!

答案1

已安装内核模块

我希望您的意思是“已加载”。

  1. conntrack_ftp也能够处理主动 FTP 连接 — 您只需要正确设置防火墙。
  2. OpenVZ 是内核级别的 — 它与你的 PureFTPd 完全无关。不要被误导。
  3. 如果 10.04 是基于 2.6.32 的内核,我建议使用以 RPM 形式提供的预构建 OpenVZ— 您只需要解压它并构建 initrd 映像,这将是更好的方法 — 您似乎没有足够的经验来自己从源代码构建它。

相关内容