PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pure-ftpd problem passive mode



mulix
04.06.14, 17:04
Hallo Linuxer

ich habe Probleme mit dem pure-ftpd auf Ubuntu Server 14.04 LTS

Wenn ich den ftp auf PassicePortRange (Ports 40110:40210) umstelle bekomme ich kein Directorylisting. Im Aktive-Mode ist alles kein Problem.

Der Parameteraufruf ist:


Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -p 40110:40210 -A -D -b -H -8 UTF-8 -E -d -u 1000 -O clf:/var/log/pure-ftpd/transfer.log -Y 0 -B


also völlig okay.

Die Firewall habe ich auch angepasst:


ufw allow proto tcp to any port 40110:40210
ufw allow proto udp to any port 40110:40210


Ein ufw status verbose gibt:


root@srv1:/etc/pure-ftpd/conf# ufw status verbose
Status: active
Logging: off
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To Action From
-- ------ ----
22 ALLOW IN Anywhere
80 ALLOW IN Anywhere
25 ALLOW IN Anywhere
21 ALLOW IN Anywhere
20 ALLOW IN Anywhere
110 ALLOW IN Anywhere
143 ALLOW IN Anywhere
443 ALLOW IN Anywhere
8080 ALLOW IN Anywhere
40110:40210/tcp ALLOW IN Anywhere
161 ALLOW IN Anywhere
53 ALLOW IN Anywhere
587 ALLOW IN Anywhere
993 ALLOW IN Anywhere
995 ALLOW IN Anywhere
40110:40210/udp ALLOW IN Anywhere
22 (v6) ALLOW IN Anywhere (v6)
80 (v6) ALLOW IN Anywhere (v6)
25 (v6) ALLOW IN Anywhere (v6)
21 (v6) ALLOW IN Anywhere (v6)
20 (v6) ALLOW IN Anywhere (v6)
110 (v6) ALLOW IN Anywhere (v6)
143 (v6) ALLOW IN Anywhere (v6)
443 (v6) ALLOW IN Anywhere (v6)
8080 (v6) ALLOW IN Anywhere (v6)
40110:40210/tcp (v6) ALLOW IN Anywhere (v6)
161 (v6) ALLOW IN Anywhere (v6)
53 (v6) ALLOW IN Anywhere (v6)
587 (v6) ALLOW IN Anywhere (v6)
993 (v6) ALLOW IN Anywhere (v6)
995 (v6) ALLOW IN Anywhere (v6)
40110:40210/udp (v6) ALLOW IN Anywhere (v6)


Also alles okay.

Nur weiter komme ich nicht, im Passive-Mode einfach kein Listing!

Jemand ne Idee?

Das System ist ein Ubuntu 14.04 LTS mit ISPConfig 3.0.5.4Patch1

Viele Grüße
mulix

Iluminat23
04.06.14, 19:33
UDP ist nicht nötig, FTP verwendest nur TCP. Verwende doch mal ein Client welcher dir ausgeben kann was er gerade mach oder mache eine Netzwerk Dump und analysiere ihn mit wireshark.

mulix
05.06.14, 08:54
Hallo Iluminat23,

vielen dank für deine Antwort.

das der FTP keine UDP-Ports benötigt stimmt, es war eher ne verzweiflungs tat.

Analysiert habe ich schon ein bissel,

im Syslog steht (pure-ftpd ist im debug-mode)


Jun 5 08:48:52 srv1 pure-ftpd: (?@80.147.110.35) [INFO] New connection from 80.147.110.35
Jun 5 08:48:52 srv1 pure-ftpd: (?@80.147.110.35) [DEBUG] Command [user] [user_FTP_1]
Jun 5 08:48:52 srv1 pure-ftpd: (?@80.147.110.35) [DEBUG] Command [pass] [<*>]
Jun 5 08:48:53 srv1 pure-ftpd: (?@80.147.110.35) [INFO] user_FTP_1 is now logged in
Jun 5 08:48:53 srv1 pure-ftpd: (user_FTP_1@80.147.110.35) [DEBUG] Command [opts] [UTF8 ON]
Jun 5 08:48:53 srv1 pure-ftpd: (user_FTP_1@80.147.110.35) [DEBUG] Command [pwd] []
Jun 5 08:48:53 srv1 pure-ftpd: (user_FTP_1@80.147.110.35) [DEBUG] Command [type] [I]
Jun 5 08:48:53 srv1 pure-ftpd: (user_FTP_1@80.147.110.35) [DEBUG] Command [pasv] []
Jun 5 08:48:53 srv1 pure-ftpd: (user_FTP_1@80.147.110.35) [INFO] Logout.


Der filezilla ftp-client gibt mir folgendes:


Status: Auflösen der IP-Adresse für srv1.domain.de
Status: Verbinde mit 186.16.195.10:21...
Status: Verbindung hergestellt, warte auf Willkommensnachricht...
Antwort: 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
Antwort: 220-You are user number 1 of 50 allowed.
Antwort: 220-Local time is now 17:35. Server port: 21.
Antwort: 220-This is a private system - No anonymous login
Antwort: 220-IPv6 connections are also welcome on this server.
Antwort: 220 You will be disconnected after 15 minutes of inactivity.
Befehl: USER user_FTP_1
Antwort: 331 User user_FTP_1 OK. Password required
Befehl: PASS *******
Antwort: 230 OK. Current restricted directory is /
Befehl: OPTS UTF8 ON
Antwort: 200 OK, UTF-8 enabled
Status: Verbunden
Status: Empfange Verzeichnisinhalt...
Befehl: PWD
Antwort: 257 "/" is your current location
Befehl: TYPE I
Antwort: 200 TYPE is now 8-bit binary
Befehl: PASV
Fehler: Zeitüberschreitung der Verbindung
Fehler: Verzeichnisinhalt konnte nicht empfangen werden


Also wirklich bis zum punkt wo auf passive umgestellt wird.

Selbst wenn ich dir Firewall ausschalte keine Änderung, echt zum verrückt werden.

Ich werde auf dem Client mal ein Trace der ip-packete machen, vieleicht bringt das mehr licht ins dunkel :rolleyes:

grüße
mulix

Iluminat23
05.06.14, 18:40
Ich vermisse die Antwort vom Server der mitteilt auf welchen port der Client für die Datenverbindung konnektieren soll.

So sieht es aus wenn ich mich zu ftp.kernel.org verbinde.


Response: 220 Welcome to kernel.org
Command: USER anonymous
Response: 331 Please specify the password.
Command: PASS **************
Response: 230 Login successful.
Command: SYST
Response: 215 UNIX Type: L8
Command: FEAT
Response: 211-Features:
Response: EPRT
Response: EPSV
Response: MDTM
Response: PASV
Response: REST STREAM
Response: SIZE
Response: TVFS
Response: UTF8
Response: 211 End
Command: OPTS UTF8 ON
Response: 200 Always in UTF8 mode.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/"
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Response: 227 Entering Passive Mode (149,20,4,69,117,200).

In der Letzten Zeile teil der Server mit auf welchen Port der Client verbinden soll.

mulix
05.06.14, 19:55
ja das stimmt wenn ich mich zu einem anderen FTP-Server verbinde, bekommt der client die Information über die PassivePorts.

Kurios ist auch, dass wenn ich von einem anderen linux-server (öffentliche ip in www) mich mit dem konsolen programm ftp auf den besagten server verbinde ich im active mode eine verbindung bekomme. Schalte ich dann aber - wärend die verbindung aktiv ist - auf passiv um, kommt die meldung



227 Entering Passive Mode (10,1,0,108,156,203)


Frage ist ob die infomration welche passiven ports genutzt werden sollen von dem ftp-server (der server welcher probleme macht) kommt oder vom client einfach angenommen werden. Der ftp-server gibt ja eigentlich die ports vor.

Also habe ich mal auf dem ftp-server selber eine ftp verbindung zum localhost aufgebau. Dann bei aktiver verbindung auf passive umgestellt und siehe da:



ftp> passive
Passive mode on.
ftp> ls
229 Extended Passive mode OK (|||40127|)
150 Accepted data connection


Genau in der PortRange -p 40110:40210 wie es sein soll.

Also muss das was anderes sein.

Die firewall ist aus


root@srv1:/# ufw status
Status: inactive


Ebenso passend keine iptables


root@srv1:/# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


Was also dann? :confused:

Iluminat23
08.06.14, 13:16
also verstehe ich das richtig? loakl funktioniert es, remote aber nicht? also die gleichen schritte funktionieren wenn du es lokal versuchst aber remote funktioniert das selbe dann nicht?

mulix
12.06.14, 10:50
ganz genau, wenn ich den ftp server lokal auf der maschine mit nem ftp-client anspreche gehts. Aber sobald ich die maschine über ihre öffentliche ip - also extern - anspreche kann ich keine passive ftp-verbindung aufbauen. Aktiv also über den port 21 geht es auch von extern.

Wie gesagt die ip-tables sind aus, bzw. haben keine regeln.

Der Server ist bei mittwald und virtualisiert. Denke zwar nicht das das relevant ist, aber vielleicht fällt jemanden dazu was ein.