[GELÖST] ProFTPd - FTP-User-Logins scheitern

Probleme mit Samba, NFS, FTP und Co.
Antworten
BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

[GELÖST] ProFTPd - FTP-User-Logins scheitern

Beitrag von BrotherJ » 21.05.2019 14:57:05

Hallo,
mein ProFTPd lässt einen Login über in die ftpd.passwd eingetragenen FTP-User nicht zu. Da kommen die Fehlermeldungen

Code: Alles auswählen

530 Login incorrect.
Login failed.
und im Logfile

Code: Alles auswählen

2019-05-21 14:46:58,235 web proftpd[16646] web.example.com (p5DCA.dip0.t-ipconnect.de[]): FTP session closed.
2019-05-21 14:47:06,484 web proftpd[16687] web.example.com (p5DCA.dip0.t-ipconnect.de[]): FTP session opened.
2019-05-21 14:47:14,546 web proftpd[16687] web.example.com (p5DCA.dip0.t-ipconnect.de[]): USER ftpuser (Login failed): Limit access denies login
proftpd.conf:

Code: Alles auswählen

Include /etc/proftpd/modules.conf
UseIPv6                         on
IdentLookups                    off
ServerName                      "FTP"
ServerType                              standalone
DeferWelcome                    off
MultilineRFC2228                on
DefaultServer                   on
ShowSymlinks                    on
TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200
DisplayLogin                    welcome.msg
DisplayChdir                    .message true
ListOptions                     "-l"
DenyFilter                      \*.*/
RequireValidShell               off
Port                            21
<IfModule mod_dynmasq.c>
</IfModule>
MaxInstances                    30
User                            proftpd
Group                           nogroup
Umask                           022  022
AllowOverwrite                  on
TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log
<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>
<IfModule mod_ratio.c>
Ratios off
</IfModule>
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
ControlsEngine        off
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
Include /etc/proftpd/conf.d/custom.conf
conf.d/custom.conf.

Code: Alles auswählen

<Global>
    RequireValidShell off
</Global>
UseIPv6 off
DefaultRoot ~ ftpuser
AuthPam off
RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd
<Limit LOGIN>
    DenyGroup !ftpuser
</Limit>
Rechte der Passwortdatei:

Code: Alles auswählen

-r--r----- 1 proftpd root     308 Mai 21 14:40 ftpd.passwd
Folgende Befehle nehme ich zum FTP-User anlegen

Code: Alles auswählen

ftpasswd --passwd --name $USER --uid 33 --home $DIR --shell /bin/false
systemctl restart proftpd
Grüße

BrotherJ
Zuletzt geändert von BrotherJ am 22.05.2019 09:36:45, insgesamt 1-mal geändert.

mludwig
Beiträge: 794
Registriert: 30.01.2005 19:35:04

Re: ProFTPd - FTP-User-Logins scheitern

Beitrag von mludwig » 21.05.2019 15:31:03

BrotherJ hat geschrieben: ↑ zum Beitrag ↑
21.05.2019 14:57:05

Code: Alles auswählen

2019-05-21 14:47:14,546 web proftpd[16687] web.example.com (p5DCA.dip0.t-ipconnect.de[]): USER ftpuser (Login failed): Limit access denies login
conf.d/custom.conf.

Code: Alles auswählen

...
<Limit LOGIN>
    DenyGroup !ftpuser
</Limit>
Folgende Befehle nehme ich zum FTP-User anlegen

Code: Alles auswählen

ftpasswd --passwd --name $USER --uid 33 --home $DIR --shell /bin/false
systemctl restart proftpd
Wie die Fehlermeldung besagt, gibt es in der Config eine gesetzte Limitierung, hier: der Nutzer der sich anmelden will muss Mitglied der Gruppe ftpuser sein. Das geht aus deinem Befehl, der den User anlegt aber nicht hervor. Vielleicht das Limit weglassen, wenn sowieso nur Nutzer aus der separaten PW-Datei genommen werden dürfen? Nur sicherstellen das nicht normale System-Nutzer sich anmelden können (also vor allem root) --> testen.

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: ProFTPd - FTP-User-Logins scheitern

Beitrag von wanne » 21.05.2019 17:57:33

kann das sein, dass das der ftp-ssl mit -z secure ist?
Tun andere User?
rot: Moderator wanne spricht, default: User wanne spricht.

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: ProFTPd - FTP-User-Logins scheitern

Beitrag von BrotherJ » 21.05.2019 19:04:34

Okay vielen Dank für den Hinweis.
Wenn ich die Direktive rausnehme, klappt das mit dem Login, aber für alle und den root. Deshalb habe ich das wieder rückgängig gemacht und lege mit diesem Script

Code: Alles auswählen

#!/bin/bash 

if [ "`id -un`" != "root" ]; then
          echo "  This script must be run as user \"root\"."
         exit
fi

USER=$1
PASSWORD=$(pwgen -n 4)
DIR=/srv/www/$2

if [ -d $DIR ]
then
        useradd $USER --shell /bin/false -p $PASSWORD --home $DIR
        usermod -aG ftpuser $USER
        echo "Username:      $USER"
        echo "Password:          $PASSWORD"
        echo "Home directory:  $DIR"
else
        echo "The directory $DIR do not exist. Usage: ftpUserAdd USER DOMAIN.TLD"
fi
Jetzt bekomme ich eine Fehler wie diese:

Code: Alles auswählen

2019-05-21 18:45:18,812 web proftpd[17925] web.example.com (p59.dip0.t-ipconnect.de[]): USER schwaben (Login failed): Incorrect password
Wenn ich jetzt mit

Code: Alles auswählen

passwd user
das Passwort manuell ändere, dann klappt der Login.
Das sollte eigentlich mit dem Befehl "useradd -p" im Script erledigt sein.

Zweitens kann ich nach einem erfolgreichen FTP-Login zwar die Inhalte ansehen, aber ich kann nicht in die Verzeichnisse wechseln:

Code: Alles auswählen

ftp>
ls
200 PORT command successful
150 Opening ASCII mode data connection for file list
dr-xr-xr-x   2 33       33           4096 Mar  9  2009 cgi-bin
drwxrwx---   2 33       33           4096 Mar  9  2009 cgi-data
drwxrwx---   2 33       33           4096 Mar  9  2009 etc
drwxrwx---   2 33       33           4096 May 21 12:02 htdocs
dr-xr-xr-x   2 33       33           4096 Mar  9  2009 libexec
drwxr-xr-x   2 33       33           4096 Sep 14  2018 scripts
226 Transfer complete

cd htdocs
550 htdocs: Datei oder Verzeichnis nicht gefunden

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: ProFTPd - FTP-User-Logins scheitern

Beitrag von BrotherJ » 21.05.2019 19:10:28

wanne hat geschrieben: ↑ zum Beitrag ↑
21.05.2019 17:57:33
kann das sein, dass das der ftp-ssl mit -z secure ist?
Tun andere User?
Ich habe das mit dem TLS komplett rausgenommen. Das ist mir zu viel Gefrickel an der Firewall. Deine Frage habe ich einen Post weiter oben beantwortet.

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: ProFTPd - FTP-User-Logins scheitern

Beitrag von BrotherJ » 22.05.2019 08:33:35

In dem Script fehlt noch die Anweisung

Code: Alles auswählen

usermod -aG www-data $USER
Denn der FTP-User muss auch noch der Gruppe des Webservers angehören.

Gruß

BrotherJ

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: ProFTPd - FTP-User-Logins scheitern

Beitrag von wanne » 22.05.2019 10:12:31

BrotherJ hat geschrieben: ↑ zum Beitrag ↑
21.05.2019 19:10:28
Ich habe das mit dem TLS komplett rausgenommen. Das ist mir zu viel Gefrickel an der Firewall.
Und ein weiteres Beispiel wie Firewalls Aktiv Sicherheit kaputt machen.
rot: Moderator wanne spricht, default: User wanne spricht.

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: ProFTPd - FTP-User-Logins scheitern

Beitrag von BrotherJ » 22.05.2019 11:11:18

wanne hat geschrieben: ↑ zum Beitrag ↑
22.05.2019 10:12:31
Und ein weiteres Beispiel wie Firewalls Aktiv Sicherheit kaputt machen.
Das Thema können wir gerne hier viewtopic.php?f=9&t=173318&p=1206223#p1206223 weiterverfolgen. An dieser Stelle ging es wirklich nur darum, dass die FTP-User in ihren Webspace können, respektive das Anlegen eines Passwortes innerhalb des Scriptes.
Ersteres konnte ich lösen. Zweiteres habe ich anders gelöst, indem ich

Code: Alles auswählen

-p $PASSWORD
raus genommen habe und stattdessen ein

Code: Alles auswählen

passwd $USER
eingefügt habe. Wobei mir ein automatisch generiertes Passwort

Code: Alles auswählen

PASSWORD=$(pwgen -n 10)
lieber wäre. Aber die Verwendung von passwd mit Zuweisung des Passwortes innerhalb eines Scriptes ist mir noch nicht gelungen.

Grüße

BrotherJ

Antworten