-1

ファイアウォールの背後にある pureftpd を構成して、パッシブ ftp/TLS サーバーとして機能させようとしています。演技マシン:

  • サーバー: 192.168.3.220 (内部ネットワーク、192.168.3.1 のルーターへのデフォルト ルート) 構成: PassivePorts 64000 64300 の pureftpd、MasqueradeAddress ww.xx.yy.zz (これはルーターで構成されています)
  • ルーター: 内部: 192.168.3.1、DNAT ルール (PREROUTING チェーン) ww.xx.yy.zz tcp/21,64000:64300 アドレス 192.168.3.220 に NATed、FORWARD チェーンはこれらのパケットを両方向で受け入れます。
  • Client1: 固定パブリック IP を持つ外部サーバー
  • Client2: どこかで NAT されたマシン - 192.168.5.x ネットワーク上

シナリオ 1:

- Client1: connect OK, login OK, command 'ls':
gets OK, after PASV:

---> PASV
GNUTLS: REC[0x28ecce0]: Sending Packet[9] Application Data(23) with length: 6
GNUTLS: REC[0x28ecce0]: Sent Packet[10] Application Data(23) with length: 37
GNUTLS: ASSERT: gnutls_buffers.c:322
GNUTLS: ASSERT: gnutls_buffers.c:322
GNUTLS: REC[0x28ecce0]: Expected Packet[9] Application Data(23) with length: 65536
GNUTLS: REC[0x28ecce0]: Received Packet[9] Application Data(23) with length: 64
GNUTLS: REC[0x28ecce0]: Decrypted Packet[9] Application Data(23) with length: 31
<--- 200 Protection set to Private
---> LIST
---> ABOR

興味深いことに、サーバーからの 227 は、pureftpd からのパラノイド ログに表示されますが、クライアントには表示されません - プライベートに設定された 200 保護のみ ... cca 30 秒待機し、ACTIVE(!!) モードを使用して再接続します -> ls

シナリオ 2 :

- using Client2 (sorry for czech locales):
---> USER xxxxxx
<--- 331 Password required for xxxxxx
---> PASS XXXX
<--- 230 User xxxxxx logged in    
---> PWD
<--- 230 Ls oi a:2013-01-03 21:19:00
---> PBSZ 0
<--- 257 "/" is the current directory
---> PROT P
<--- 200 PBSZ 0 successful
---> PASV
<--- 200 Protection set to Private
---> LIST
---> ABOR
---- Přerušený datový socket bude uzavřen (means closing data socket)
---- Řídicí socket bude uzavřen (means closing control socket)
---- Pasivní režim bude vypnut (means Passive will be turned off)
---- dns cache hit                                    
---- Navazuje se spojení na ftp1.xxxxxxxxx.cz (ww.xx.yy.zz) port 21
<--- 220 ww.xx.yy.zz FTP server ready

...

---> USER xxxxxx
<--- 331 Password required for xxxxxx
---> PASS XXXX
<--- 230 User xxxxxx logged in    
---> PWD
<--- 230 Ls oi a:2013-01-03 21:19:22
---> PBSZ 0
<--- 257 "/" is the current directory
---> PROT P
<--- 200 PBSZ 0 successful
---> PORT 192,168,5,xx,185,136
<--- 200 Protection set to Private
---> LIST
<--- 500 Illegal PORT command
---- Closing data socket
---> QUIT
ls: Nepřekonatelná chyba: 500 Illegal PORT command
<--- 425 Unable to build data connection: Connection refused

NAT マシンの iptables は、ポート 64000:64300 のアカウンティング カウンターを増加させないため、パッシブ接続はまったく確立されていないと予想されます。

4

1 に答える 1

0

だから...本当の問題は2番目の230の返信でした:

 ---> PWD
 <--- 230 Ls oi a:2013-01-03 21:19:22

これは、PureFTPd 1.3.3a (デフォルトの debian スクイーズ) の既知の問題です。解決策は、wheezy (1.3.4a-2) から PureFTPd をコンパイルすることでした。現在はすべて正常に動作します。何が起こっているのかを理解しようとしたすべての人に感謝します。Tldv

于 2013-01-04T10:22:22.620 に答える