# [ispconfig 3.1 pureFTPD] - Verzeichnisinhalt konnte nicht empfangen werden



## juser (14. Juli 2018)

Moin,

ich hab weider ein Problem wo ich nicht weiter komme. Beim FTP-Login auf einem Server mit ispconfig 3.1 und pureFTP kann sich der User zwar anmelden, z.B. mit FileZilla, er bekommt aber den Verzeichnisinhalt nicht aufgelistet.
Ich hab hier etwas gefunden was mir aber nicht weitergeholfen hat:
https://www.administrator.de/forum/ftp-verbindung-verzeichnisinhalt-nicht-angezeigt-271108.html

Beim Login mit FileZille bekomme ich folgende Meldungen angezeigt:

Auflösen der IP-Adresse für xxxx-leads.net
Status:    Verbinde mit 85.93.xx.xx:21...
Status:    Verbindung hergestellt, warte auf Willkommensnachricht...
Status:    Initialisiere TLS...
Status:    Überprüfe Zertifikat...
Status:    TLS-Verbindung hergestellt.
Status:    Angemeldet
Status:    Empfange Verzeichnisinhalt...
Befehl:    PWD
Antwort:    257 "/" is your current location
Befehl:    TYPE I
Antwort:    200 TYPE is now 8-bit binary
Befehl:    PASV
Antwort:    227 Entering Passive Mode (85,93,93,89,158,71)
Befehl:    MLSD
Fehler:    Zeitüberschreitung der Verbindung nach 20 Sekunden Inaktivität
Fehler:    Verzeichnisinhalt konnte nicht empfangen werden

Vielleicht gibt es hier jemanden der damit etwas anfangen kann und mir einen Hinweis geben kann wo ich suchen soll.

Und das sagt die /var/log/syslog

Jul 14 22:19:57 host02 pure-ftpd: (?@84.165.xxx.xxx) [INFO] New connection from 84.165.xxx.xxx
Jul 14 22:19:57 host02 pure-ftpd: (?@84.165.xxx.xxx) [INFO] TLS: Enabled TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384, 256 secret bits cipher
Jul 14 22:19:57 host02 pure-ftpd: (?@84.165.xxx.xxx) [INFO] ftpktest is now logged in
Jul 14 22:20:02 host02 pure-ftpd: (?@127.0.0.1) [INFO] New connection from 127.0.0.1
Jul 14 22:20:02 host02 pure-ftpd: (?@127.0.0.1) [INFO] Logout.


----------



## Till (15. Juli 2018)

Du musst in Deinem Router/ Firewall die passive port range von pure-ftpd öffnen und iese ggf. in pure-ftpd konfigurieren:

https://www.faqforge.com/linux/cont...ange-in-pure-ftpd-on-denian-and-ubuntu-linux/


----------



## juser (16. Juli 2018)

Hallo Till, vielen Dank für die schnelle Antwort. Genaus das wars.

was ich noch nicht verstanden habe ist warum das jetzt aus "heiterem" Himmel passiert ist. Was könnte die Ursache sein das diese Ports mit einem mal geschlossen sind?


----------



## Till (16. Juli 2018)

Ich denke es gibt da verschiedene Möglichkeiten? Möglicherweise hast Du bisher active FTP genutzt und nicht passive, denn dann werden die ports nicht benötigt. oder aber irgend was an Router oder Firewall wurde geändert. Die letzte Möglichkeit wäre noch dass pure-ftpd aus welchem Grund auch immer eine andere passive port range gewählt hat, aber davon habe ich bislang nie was gehört.


----------



## juser (16. Juli 2018)

Das erste kann gut möglich sein. Ich hatte da bisher nicht drauf geachtet, es funktionierte ja.


----------



## Viperdriver2000 (30. Aug. 2018)

ich habe selbiges Problem und dachte hänge mich hier mal an.
Hier mal ne paar Infos:

```
####################################################
root@xxx:/etc/pure-ftpd/conf# for i in $(ls -A1);do echo $i; cat $i; done
AltLog
clf:/var/log/pure-ftpd/transfer.log

BrokenClientsCompatibility
yes

ChrootEveryone
yes

DisplayDotFiles
yes

DontResolve
yes

ForcePassiveIP
xxx.xxx.xxx.xxx

FSCharset
UTF-8

MaxIdleTime
2

MinUID
1000

MySQLConfigFile
/etc/pure-ftpd/db/mysql.conf

NoAnonymous
yes

PAMAuthentication
yes

PassivePortRange
40110 40210

PureDB
/etc/pure-ftpd/pureftpd.pdb

TLS
1

TLSCipherSuite
ALL:!aNULL:!SSLv3

UnixAuthentication
no

VerboseLog
yes

####################################################

root@xxx:/etc/pure-ftpd/conf# cat /etc/pure-ftpd/db/mysql.conf | egrep -v "^\s*(#|$)"
MYSQLServer     127.0.0.1
MYSQLUser       ispconfig
MYSQLPassword   xxx
MYSQLDatabase   dbispconfig
MYSQLCrypt      crypt
MYSQLGetPW      SELECT password FROM ftp_user WHERE active = 'y' AND server_id = '1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
MYSQLGetUID     SELECT uid FROM ftp_user WHERE active = 'y' AND server_id = '1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
MYSQLGetGID     SELECT gid FROM ftp_user WHERE active = 'y' AND server_id = '1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
MYSQLGetDir     SELECT dir FROM ftp_user WHERE active = 'y' AND server_id = '1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
MySQLGetQTAFS  SELECT quota_files FROM ftp_user WHERE active = 'y' AND server_id = '1' AND quota_files != '-1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
MySQLGetQTASZ  SELECT quota_size FROM ftp_user WHERE active = 'y' AND server_id = '1' AND quota_size != '-1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
MySQLGetRatioUL SELECT ul_ratio FROM ftp_user WHERE active = 'y' AND server_id = '1' AND ul_ratio != '-1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
MySQLGetRatioDL SELECT dl_ratio FROM ftp_user WHERE active = 'y' AND server_id = '1' AND dl_ratio != '-1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
MySQLGetBandwidthUL SELECT ul_bandwidth FROM ftp_user WHERE active = 'y' AND server_id = '1' AND ul_bandwidth != '-1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
MySQLGetBandwidthDL SELECT dl_bandwidth FROM ftp_user WHERE active = 'y' AND server_id = '1' AND dl_bandwidth != '-1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
MySQLTransactions On

####################################################

root@xxx:/var/log# tail -f syslog | grep -i pure-ftpd

Aug 30 09:02:01 xxx pure-ftpd: (?@xxx.xxx.xxx.xxx) [INFO] New connection from xxx.xxx.xxx.xxx
Aug 30 09:02:01 xxx pure-ftpd: (?@xxx.xxx.xxx.xxx) [DEBUG] Command [auth] [TLS]
Aug 30 09:02:01 xxx pure-ftpd: (?@xxx.xxx.xxx.xxx) [INFO] SSL/TLS: Enabled TLSv1/SSLv3 with AES256-GCM-SHA384, 256 secret bits cipher
Aug 30 09:02:01 xxx pure-ftpd: (?@xxx.xxx.xxx.xxx) [DEBUG] Command [user] [web3-xxx]
Aug 30 09:02:01 xxx pure-ftpd: (?@xxx.xxx.xxx.xxx) [DEBUG] Command [pass] [<*>]
Aug 30 09:02:01 xxx pure-ftpd: (?@xxx.xxx.xxx.xxx) [INFO] web3-xxx is now logged in
Aug 30 09:02:01 xxx pure-ftpd: (web3-xxx@xxx.xxx.xxx.xxx) [DEBUG] Command [opts] [UTF8 ON]
Aug 30 09:02:01 xxx pure-ftpd: (web3-xxx@xxx.xxx.xxx.xxx) [DEBUG] Command [pbsz] [0]
Aug 30 09:02:01 xxx pure-ftpd: (web3-xxx@xxx.xxx.xxx.xxx) [DEBUG] Command [prot] [P]
Aug 30 09:02:01 xxx pure-ftpd: (web3-xxx@xxx.xxx.xxx.xxx) [DEBUG] Command [pwd] []
Aug 30 09:02:01 xxx pure-ftpd: (web3-xxx@xxx.xxx.xxx.xxx) [DEBUG] Command [type] [I]
Aug 30 09:02:01 xxx pure-ftpd: (web3-xxx@xxx.xxx.xxx.xxx) [DEBUG] Command [pasv] []
Aug 30 09:02:01 xxx pure-ftpd: (web3-xxx@xxx.xxx.xxx.xxx) [DEBUG] Command [mlsd] []
Aug 30 09:02:20 xxx pure-ftpd: (web3-xxx@xxx.xxx.xxx.xxx) [INFO] Logout.

####################################################

Status:    Disconnected from server
Status:    Resolving address of xxx.de
Status:    Connecting to xxx.xxx.xxx.xxx:21...
Status:    Connection established, waiting for welcome message...
Status:    Initializing TLS...
Status:    Verifying certificate...
Status:    TLS connection established.
Status:    Logged in
Status:    Retrieving directory listing...
Command:    PWD
Response:    257 "/" is your current location
Command:    TYPE I
Response:    200 TYPE is now 8-bit binary
Command:    PASV
Response:    227 Entering Passive Mode (85,214,142,61,156,252)
Command:    MLSD
Response:    150 Accepted data connection
Error:    GnuTLS error -110: The TLS connection was non-properly terminated.
Status:    Server did not properly shut down TLS connection
Error:    Disconnected from server: ECONNABORTED - Connection aborted
Error:    Failed to retrieve directory listing
Status:    Disconnected from server

####################################################

root@xxx:/var/www/clients/client3# ll
insgesamt 20K
drwxr-xr-x  5 root root 4,0K Dez 10  2013 .
drwxr-xr-x 19 root root 4,0K Jun 16 17:25 ..
lrwxrwxrwx  1 root root   30 Dez 10  2013 xxx.de -> /var/www/clients/client3/web4/
lrwxrwxrwx  1 root root   30 Dez 10  2013 xxx.eu -> /var/www/clients/client3/web5/
lrwxrwxrwx  1 root root   30 Dez 10  2013 xxx.de -> /var/www/clients/client3/web6/
drwxr-xr-x 10 root root 4,0K Jan 23  2018 web4
drwxr-xr-x 10 root root 4,0K Jun 16 17:33 web5
drwxr-xr-x 18 root root 4,0K Dez 17  2013 web6

root@xxx:/var/www/clients/client3# ll web4/
insgesamt 40K
drwxr-xr-x 10 root root    4,0K Jan 23  2018 .
drwxr-xr-x  5 root root    4,0K Dez 10  2013 ..
drwxr-xr-x  2 web4 client3 4,0K Dez 10  2013 cgi-bin
drwxr-xr-x  2 root root    4,0K Aug 30 05:25 log
drwx--x---  3 web4 client3 4,0K Mai 10 20:42 private
drwx------  2 web4 client3 4,0K Jan 23  2018 .ssh
drwxr-xr-x  2 root root    4,0K Jun 16 17:46 ssl
drwxrwxrwx  2 web4 client3 4,0K Mär 25  2017 tmp
drwx--x--- 26 web4 client3 4,0K Mär 28  2017 web
drwxrwx---  4 web4 client3 4,0K Aug 31  2017 webdav

####################################################

root@xxx:/var/www/clients/client3# iptables -L -n | grep -i ftp
fail2ban-pure-ftpd  tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 21,20,990,989
fail2ban-pureftpd  tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 21
Chain fail2ban-pure-ftpd (1 references)
Chain fail2ban-pureftpd (1 references)

root@xxx:/var/www/clients/client3# iptables -L -n | grep -i 40110
PAROLE     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:40110:40210

####################################################

root@xxx:/var/www/clients/client3# /etc/init.d/pure-ftpd-mysql status
● pure-ftpd-mysql.service - (null)
   Loaded: loaded (/etc/init.d/pure-ftpd-mysql)
   Active: active (running) since Do 2018-08-30 12:21:03 CEST; 5min ago
  Process: 7390 ExecStop=/etc/init.d/pure-ftpd-mysql stop (code=exited, status=0/SUCCESS)
  Process: 7401 ExecStart=/etc/init.d/pure-ftpd-mysql start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/pure-ftpd-mysql.service
           └─7409 pure-ftpd (SERVER)

Aug 30 12:21:03 xxx pure-ftpd-mysql[7401]: Starting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -A -P xxx.xxx.xxx.xxx -D -E -H -J ALL:!aNULL:!SSLv3 -Y 1 ... 1000 -I 2 -d -B
Aug 30 12:21:03 xxx systemd[1]: Started (null).
Aug 30 12:25:01 xxx pure-ftpd[9626]: (?@::1) [INFO] New connection from ::1
Hint: Some lines were ellipsized, use -l to show in full.

####################################################

root@xxx:/var/www/clients/client3# pure-ftpd-mysql --help
pure-ftpd v1.0.36 [privsep]

####################################################

root@xxx:/var/www/clients/client3# cat /etc/debian_version
8.11

####################################################

define('ISPC_APP_VERSION', '3.1.12');
$conf['app_version'] = ISPC_APP_VERSION;

####################################################
```
ich weiß nicht mehr weiter 
es macht keinen unterschied ob es "Default/Active/Passive" ist.


----------



## Till (30. Aug. 2018)

Setz mal die passive port range und dann stell sicher dass die auch offen ist in der Firewall bzw. dem Router.

https://www.faqforge.com/linux/cont...ange-in-pure-ftpd-on-denian-and-ubuntu-linux/


----------



## Viperdriver2000 (30. Aug. 2018)

Hi Till,
danke für die Info.
Wie oben zu sehen ist die Range schon eingestellt.

```
PassivePortRange
40110 40210
```
ich habe in iptables auch nochmal folgendes gemacht:

```
iptables -A INPUT -p tcp --match multiport --dports 40110:40210 -j ACCEPT
```
was folgendes ergab:

```
root@xxx:~# iptables -L -n | grep -i ftp
fail2ban-pure-ftpd  tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 21,20,990,989
fail2ban-pureftpd  tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 21
Chain fail2ban-pure-ftpd (1 references)
Chain fail2ban-pureftpd (1 references)

root@xxx:~# iptables -L -n | grep -i 40110
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 40110:40210
PAROLE     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:40110:40210
```
falls du dich fragst warum macht er das nicht über ispconfig?
https://www.howtoforge.de/forum/threads/firewall-character-not-allowed-in-tcp-port-definition.11141/
bzw. https://git.ispconfig.org/ispconfig/ispconfig3/issues/5070
aber selbst da ist es eingetragen. deshalb wohl auch die PAROLE.


----------



## Viperdriver2000 (7. Sep. 2018)

mh lustigerweise geht es bei mir wieder. nachdem ich den Server heute restarten musste.


----------

