# Pure-FTPd gibt kein Verzeichnisinhalt aus



## mulixer (13. Mai 2014)

Servus Leute,

ich hab das Problem, dass angelegte FTP-User sich zwar per Pure-FTPd authentifizieren aber kein Verzeichnisinhalt angezeigt bekommen. Im Server-Syslog steht drin das der User sich anmeldet, aber im gleichen augenblick wieder abmeldet.

/var/log/syslog (Debug Log des pure-ftpd ist eingeschaltet)

```
May 13 23:53:55 srv1 pure-ftpd: (?@5.146.62.24) [INFO] New connection from 5.146.62.24
May 13 23:53:55 srv1 pure-ftpd: (?@5.146.62.24) [DEBUG] Command [user] [web1_FTP_1]
May 13 23:53:55 srv1 pure-ftpd: (?@5.146.62.24) [DEBUG] Command [pass] [<*>]
May 13 23:53:55 srv1 pure-ftpd: (?@5.146.62.24) [INFO] PAM_RHOST enabled. Getting the peer address
May 13 23:53:55 srv1 pure-ftpd: (?@5.146.62.24) [INFO] web1_FTP_1 is now logged in
May 13 23:53:55 srv1 pure-ftpd: (web1_FTP_1@5.146.62.24) [DEBUG] Command [opts] [UTF8 ON]
May 13 23:53:55 srv1 pure-ftpd: (web1_FTP_1@5.146.62.24) [DEBUG] Command [pwd] []
May 13 23:53:55 srv1 pure-ftpd: (web1_FTP_1@5.146.62.24) [DEBUG] Command [type] [i]
May 13 23:53:55 srv1 pure-ftpd: (web1_FTP_1@5.146.62.24) [DEBUG] Command [pasv] []
May 13 23:53:55 srv1 pure-ftpd: (web1_FTP_1@5.146.62.24) [INFO] Logout.
```
Mein FTP-Client zeigt also kein Verzeichnisinhalt an und geht sofort wieder offline.

Jemand ne Idee?

ISPConfig: 3.0.5.4p1
Linux: Ubuntu 14.04 LTS

Viele Grüße
mulixer


----------



## Till (15. Mai 2014)

Vermutlich firewall problem. Der FTP server schaltet im passive mode die verbindung nach dem login auf die passive ports und die werden durch eine firewall geblocked.


----------



## mulixer (24. Mai 2014)

Hi Till,

ne das ändert nichts. Egal ob ich die firewall von ubuntu (ufw) ein oder ausschalte, sowie die portrange (40110:40210) - in /etc/pure-ftpd/conf/PassivePortRange gesetzt - hinzufüge. Immer das gleiche ergebnis.

Was mich wundert, ist das die berechtigungen in /var/www so aussehen


```
drwxr-xr-x  4 root root 4096 May 13 22:34 .
drwxr-xr-x  3 root root 4096 May  2 21:57 ..
lrwxrwxrwx  1 root root   30 May  2 21:57 domain.de -> /var/www/clients/client1/web1/
drwxr-xr-x 11 root root 4096 May 12 22:42 web1
drwxr-xr-x  9 root root 4096 May  2 22:08 web2
lrwxrwxrwx  1 root root   30 May  2 22:08 subdomain.domain.de -> /var/www/clients/client1/web2/
```
Der ftp-accout ist jener welcher zu web1 passt.
Wenn ich ein chmod 777 web1 machen kommt

```
chmod: changing permissions of web1: Operation not permitted
```
Im ISPconfig steht unter options zu dem ftp accout:
Benutzerkennung (uid): web1
Benutzergruppe (gid): client1

Ist das so richtig von den Benutzerrechten?

Viele Grüße
mulixer


----------



## Till (26. Mai 2014)

Die Rechte sind absolut korrekt, also keinesfalls ändern.



> Wenn ich ein chmod 777 web1 machen kommt


Das ist richtig. Hier hat ispconfig verhindert dass Du Di eine riesen Sicherheitslücke ins System reißt.



> Im ISPconfig steht unter options zu dem ftp accout:
> Benutzerkennung (uid): web1
> Benutzergruppe (gid): client1
> 
> Ist das so richtig von den Benutzerrechten?


ja.

schalte mal die Firewall aus ünd prüfe dann mit:

iptables -L

ob auch wirklich alle Regeln gelöscht wurden. Und prüf mal ob Dein ISP nicht doch noch eine 2. Firewall vor dem server hat.


----------



## mulixer (4. Juni 2014)

Hi Till,

also egal wie aber der FTP-Client gibt mir das zurück:

```
Status:    Verbinde mit 186.16.195.20:21...
Status:    Verbindung hergestellt, warte auf Willkommensnachricht...
Antwort:    220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
Antwort:    220-You are user number 1 of 5 allowed.
Antwort:    220-Local time is now 07:04. 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 mustermann_FTP_1
Antwort:    331 User mustermann_FTP_1 OK. Password required
Befehl:    PASS *******
Antwort:    230 OK. Current restricted directory is /
Befehl:    SYST
Antwort:    215 UNIX Type: L8
Befehl:    FEAT
Antwort:    211-Extensions supported:
Antwort:     EPRT
Antwort:     IDLE
Antwort:     MDTM
Antwort:     SIZE
Antwort:     MFMT
Antwort:     REST STREAM
Antwort:     MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
Antwort:     MLSD
Antwort:     AUTH TLS
Antwort:     PBSZ
Antwort:     PROT
Antwort:     UTF8
Antwort:     ESTA
Antwort:     PASV
Antwort:     EPSV
Antwort:     SPSV
Antwort:     ESTP
Antwort:    211 End.
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
```
Auch das abschalten der Firewall mit ufw disable hat keine Veränderung gebracht. Da die Ausgabe von iptables -L recht lang ist, hier mal die entscheidenen zeilen:



```
Chain ufw-user-input (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     udp  --  anywhere             anywhere             udp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     udp  --  anywhere             anywhere             udp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp
ACCEPT     udp  --  anywhere             anywhere             udp dpt:25
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ftp
ACCEPT     udp  --  anywhere             anywhere             udp dpt:fsp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ftp-data
ACCEPT     udp  --  anywhere             anywhere             udp dpt:20
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3
ACCEPT     udp  --  anywhere             anywhere             udp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imap2
ACCEPT     udp  --  anywhere             anywhere             udp dpt:imap2
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     udp  --  anywhere             anywhere             udp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http-alt
ACCEPT     udp  --  anywhere             anywhere             udp dpt:http-alt
ACCEPT     tcp  --  anywhere             anywhere             multiport dports 40110:40210
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:snmp
ACCEPT     udp  --  anywhere             anywhere             udp dpt:snmp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:submission
ACCEPT     udp  --  anywhere             anywhere             udp dpt:submission
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imaps
ACCEPT     udp  --  anywhere             anywhere             udp dpt:imaps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3s
ACCEPT     udp  --  anywhere             anywhere             udp dpt:pop3s
ACCEPT     udp  --  anywhere             anywhere             multiport dports 40110:40210
```

Sollten passen für ein Web, FTP und Mailserver.
Die Passivports für den FTP liegen bei 40110:40210 und sind für tcp / udp offen.

Im syslog steht zum Zeitpunkt des Logins folgendes:

```
Jun  4 07:10:30 srv1 pure-ftpd: (?@80.147.110.35) [INFO] New connection from 80.147.110.35
Jun  4 07:10:30 srv1 pure-ftpd: (?@80.147.110.35) [DEBUG] Command [user] [mustermann_FTP_1]
Jun  4 07:10:30 srv1 pure-ftpd: (?@80.147.110.35) [DEBUG] Command [pass] [<*>]
Jun  4 07:10:30 srv1 pure-ftpd: (?@80.147.110.35) [INFO] mustermann_FTP_1 is now logged in
Jun  4 07:10:30 srv1 pure-ftpd: (mustermann_FTP_1@80.147.110.35) [DEBUG] Command [opts] [UTF8 ON]
Jun  4 07:10:31 srv1 pure-ftpd: (mustermann_FTP_1@80.147.110.35) [DEBUG] Command [pwd] []
Jun  4 07:10:31 srv1 pure-ftpd: (mustermann_FTP_1@80.147.110.35) [DEBUG] Command [type] [i]
Jun  4 07:10:31 srv1 pure-ftpd: (mustermann_FTP_1@80.147.110.35) [DEBUG] Command [pasv] []
Jun  4 07:10:31 srv1 pure-ftpd: (mustermann_FTP_1@80.147.110.35) [INFO] Logout.
```
Ich hab echt keine Ahnung warum der FTP kein listing ausgibt.
Laut Syslog kommt der User ja richtig an und wird auch Authentifiziert. Aber warum das kein Listing?

grüße
mulixer


----------



## Till (4. Juni 2014)

FTP wird durch die Firewall geblockt und laut iptables -L ist sie nicht abgeschaltet. Das problem ist also das, was ich in #2 geschrieben habe.


----------



## mulixer (4. Juni 2014)

ja aber nur zum verständnis,

Firewall ein bzw. ausschalten

```
ufw disable
ufw enable
```
Das freigeben von enem port für tcp und udp:

```
ufw allow 21
```
oder auch eine range

```
ufw allow proto tcp to any port 40110:40210
ufw allow proto udp to any port 40110:40210
```
Egal ob ich die Firewall ein oder ausschalte, der ftp macht kein listing.
Oder habe ich bei der funktion von ufw irgendwas falsch verstanden. Es ist doch nur eine Frontend für iptables.


----------



## Till (4. Juni 2014)

Wenn Du nach dem Ausschalten von ufw das obige iptables Listing bekommst, dann ist die Firewall definitiv nicht ausgeschaltet. Und wenn FTP beim "Befehl:    PASV" abbricht, also beim umschalten auf die passive ports, dann ist es meiner Meinung nach ein Firewall Problem.


----------

