Forum: PC Hard- und Software User in home dirc. eisperren


von Troll, M.Sc. (Gast)


Lesenswert?

Hi,

ich habe auf einem Ubuntu 20.04 Server vsftpd installiert und einen User 
angelegt. Ich möchte, dass er, wenn ich mit Filezilla (sftp) zugreife, 
dass der User NICHT außerhalb von /home/user rumschnüffeln kann. Stand 
jetzt, er springt bei Filezilla zwar in das gewünschte Verzeichnis, kann 
aber sich aber überall außerhalb dieser Directory aufhalten. In der 
/etc/vsftpd.conf habe ich
' chroot_local_user=YES ' und ' local_root=/home/sammy/ftp ' 
eingetragen/auskommentiert. Leider mache ich das zum ersten mal und die 
"Erklärungen" im Netz haben zu nix geführt. Vielleicht verstehe ich da 
fundamental etwas nicht. Kann ich das in der vsftpd.conf überhaupt 
festlegen? Wenn nein/ wie genau mache ich das? Ich bin kein Linux-guy, 
bitte kein link oder syntax-Fetzen, wenn dann mit einer kleinen 
Erläuterung.

Sorry schonmal im voraus.

von Εrnst B. (ernst)


Lesenswert?

läuft dein sftp-Zugriff überhaupt über den vsftpd?
Oder läuft das über den sshd und dessen sftp - Subsystem?

Beitrag #7292102 wurde von einem Moderator gelöscht.
von Εrnst B. (ernst)


Lesenswert?

Das themaverfehlende Schlaumeier-Geschreibsel einfach ignorieren.

falls der Zugriff über den sshd läuft:
in der /etc/ssh/sshd_config:

>> Subsystem sftp internal-sftp
und ein
1
Match User sonstwer
2
  ChrootDirectory sonstwo
3
  ForceCommand internal-sftp
4
  AllowTcpForwarding no
5
  X11Forwarding no

Weil du dem ja auch keine Shell oder Portweiterleitungen erlauben 
willst...

: Bearbeitet durch User
von Mahmut (Gast)


Lesenswert?

Εrnst B. schrieb:
> Das themaverfehlende Schlaumeier-Geschreibsel einfach ignorieren.

Es vefehlt nicht nur das Thema, mir kam das auch bekannt vor. Und siehe 
da: Beitrag "Re: Ich hasse Windows (schon wieder)"

von Troll, M.Sc. (Gast)


Lesenswert?

Εrnst B. schrieb:
> Match User sonstwer
>   ChrootDirectory sonstwo
>   ForceCommand internal-sftp
>   AllowTcpForwarding no
>   X11Forwarding no

Hi,

danke für die schnelle Antwort. Das hatte ich in der Tat auch schon

Match User sammy
   ChrootDirectory /home/sammy/ftp
   ForceCommand internal-sftp
   AllowTcpForwarding no
   X11Forwarding no

Dann schlägt aber die Anmeldung in Filezilla fehl.

von Troll, M.Sc. (Gast)


Lesenswert?

> ChrootDirectory /home/sammy/ftp

wenn ich das wieder auskommentiere, klappt die Anmeldung wieder

von Hmmm (Gast)


Lesenswert?

Troll, M.Sc. schrieb:
>> ChrootDirectory /home/sammy/ftp
>
> wenn ich das wieder auskommentiere, klappt die Anmeldung wieder

Wie sieht's im Syslog aus?

von Troll, M.Sc. (Gast)


Lesenswert?

1
testftp systemd[1]: Stopping OpenBSD Secure Shell server...
2
Dec 20 14:55:15 testftp systemd[1]: ssh.service: Succeeded.
3
Dec 20 14:55:15 testftp systemd[1]: Stopped OpenBSD Secure Shell server.
4
Dec 20 14:55:15 testftp systemd[1]: Starting OpenBSD Secure Shell server...
5
Dec 20 14:55:15 testftp systemd[1]: Started OpenBSD Secure Shell server.
6
Dec 20 14:55:19 testftp multipathd[654]: sda: add missing path
7
Dec 20 14:55:19 testftp multipathd[654]: sda: failed to get udev uid: Invalid argument
8
Dec 20 14:55:19 testftp multipathd[654]: sda: failed to get sysfs uid: Invalid argument
9
Dec 20 14:55:19 testftp multipathd[654]: sda: failed to get sgio uid: No such file or directory
10
Dec 20 14:55:24 testftp multipathd[654]: sda: add missing path
11
Dec 20 14:55:24 testftp multipathd[654]: sda: failed to get udev uid: Invalid argument
12
Dec 20 14:55:24 testftp multipathd[654]: sda: failed to get sysfs uid: Invalid argument
13
Dec 20 14:55:24 testftp multipathd[654]: sda: failed to get sgio uid: No such file or directory
14
Dec 20 14:55:29 testftp multipathd[654]: sda: add missing path
15
Dec 20 14:55:29 testftp multipathd[654]: sda: failed to get udev uid: Invalid argument
16
Dec 20 14:55:29 testftp multipathd[654]: sda: failed to get sysfs uid: Invalid argument
17
Dec 20 14:55:29 testftp multipathd[654]: sda: failed to get sgio uid: No such file or directory
18
Dec 20 14:55:30 testftp kernel: [ 6594.846440] [UFW BLOCK] IN=ens160 OUT= MAC=xxx SRC=xxx DST=xxx LEN=36 TOS=0x00 PREC=0x80 TTL=1 ID=154 PROTO=2
19
Dec 20 14:55:34 testftp multipathd[654]: sda: add missing path

: Bearbeitet durch Moderator
von Εrnst B. (ernst)


Lesenswert?

Dein Syslog-Schnipsel enthält keinen Login-Versuch.

Allerdings hat ChrootDirectory noch ein paar Anforderungen an den Pfad, 
z.B. dürfen alle Pfadelemente nur von Root beschreibbar sein, erst 
Unterordner darunter dürfen dann Schreibrechte für "sammy" haben.

Insofern wirst du deine Verzeichnisstruktur etwas anpassen müssen.

von Troll, M.Sc. (Gast)


Lesenswert?

Εrnst B. schrieb:
> Dein Syslog-Schnipsel enthält keinen Login-Versuch.
>
> Allerdings hat ChrootDirectory noch ein paar Anforderungen an den Pfad,
> z.B. dürfen alle Pfadelemente nur von Root beschreibbar sein, erst
> Unterordner darunter dürfen dann Schreibrechte für "sammy" haben.

ja, genau das möchte ich. Dann habe ich das mit Match User und 
ChrootDirectory darunter nicht verstanden.

> Insofern wirst du deine Verzeichnisstruktur etwas anpassen müssen.

Ach du lieber Himmel. Wie macht man das?

von Εrnst B. (ernst)


Lesenswert?

Troll, M.Sc. schrieb:
> Ach du lieber Himmel. Wie macht man das?

Versuch erstmal ein
ChrootDirectory /home

Dann sieht der User zwar die anderen Homedirectories, aber sollte darauf 
keine Rechte haben. Wenn das geht, kannst du weiterschauen, ob du das 
Datenverzeichis, auf das er Zugriff haben soll, woanders hinlegen 
willst.

Beitrag #7292229 wurde von einem Moderator gelöscht.
von Kalle Lauterschwachsinn (Gast)


Lesenswert?

Εrnst B. schrieb:

> Versuch erstmal ein
> ChrootDirectory /home

Öhm, damit sperrt er sich aber zielsicher aus. Das wird so nicht 
funktionieren.

von Troll, M.Sc. (Gast)


Lesenswert?

Εrnst B. schrieb:
> Troll, M.Sc. schrieb:
>> Ach du lieber Himmel. Wie macht man das?
>
> Versuch erstmal ein
> ChrootDirectory /home
>
> Dann sieht der User zwar die anderen Homedirectories, aber sollte darauf
> keine Rechte haben. Wenn das geht, kannst du weiterschauen, ob du das
> Datenverzeichis, auf das er Zugriff haben soll, woanders hinlegen
> willst.

Leider das gleiche Ergebnis, dann komme ich nicht mehr rein

von Troll, M.Sc. (Gast)


Lesenswert?

Kalle Lauterschwachsinn schrieb:
> Εrnst B. schrieb:
>
>> Versuch erstmal ein
>> ChrootDirectory /home
>
> Öhm, damit sperrt er sich aber zielsicher aus. Das wird so nicht
> funktionieren.

Und warum? Was ist der richtige Weg?

LG

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Troll, M.Sc. schrieb:
> Kann ich das in der vsftpd.conf überhaupt festlegen?

HowTo dazu: https://linuxhint.com/vsftpd_chroot_home_dir/

Da wird das Vorgehen Schritt für Schritt erklärt. Der Parameter 
chroot_local_user ist schon der richtige Weg dafür.

Denke auch daran, jegliche Änderung in der Konfigurtationsdatei dem 
FTP-Dienst durch
1
sudo systemctl restart vsftpd
bekanntzugeben. Sonst bekommt der eine Anpassung der Einstellungen 
überhaupt nicht mit.

: Bearbeitet durch Moderator
von Troll, M.Sc. (Gast)


Lesenswert?

Gesundes Neues!

Frank M. schrieb:
> HowTo dazu: https://linuxhint.com/vsftpd_chroot_home_dir/

Ich kenne den Link. Es funktioniert nicht!


> Denke auch daran, jegliche Änderung in der Konfigurtationsdatei dem
> FTP-Dienst durchsudo systemctl restart vsftpd
> bekanntzugeben. Sonst bekommt der eine Anpassung der Einstellungen
> überhaupt nicht mit.

Hahaha, so dumm bin ich nun auch wieder nicht.

von Εrnst B. (ernst)


Lesenswert?

Troll, M.Sc. schrieb:
> Ich kenne den Link. Es funktioniert nicht!

Natürlich funktioniert das. Aber: das ist ein FTP Server, alles was du 
darin konfigurierst betrifft nur FTP Clients.

Du willst einen SFTP Client verwenden. Also musst du den SFTP Server 
konfigurieren, und der ist i.A. als Subsystem im SSHD enthalten.

Also, Grundproblem: Verstehe die Unterschiede zwischen SFTP, FTP und 
FTPS.

von Troll, M.Sc. (Gast)


Lesenswert?

Ok, und wie muss ich das nun für SFTP konfigurieren?

von Εrnst B. (ernst)


Lesenswert?

Troll, M.Sc. schrieb:
> Ok, und wie muss ich das nun für SFTP konfigurieren?

siehe oben. Oder hier:

https://blog.frands.net/sftp-only-chroot-users-with-openssh-in-debian-166/

Und statt dem dort verwendeten "Match Group sftp" kannst du auch das 
oben beschriebene "Match User sammy" beibehalten.

: Bearbeitet durch User
von Troll, M.Sc. (Gast)


Lesenswert?

Ok, habe ich jetzt so gemacht. Beim Anmelden über sftp erscheint jetzt:

"Anmeldungsprotokoll (siehe Sitzungsprotokoll für Details):
Benutzername „useruser“ wird verwendet.

Anmeldung fehlgeschlagen.
"

von Εrnst B. (ernst)


Lesenswert?

Troll, M.Sc. schrieb:
> Beim Anmelden über sftp erscheint jetzt

Und deshalb, wie schon oben geschrieben: schau in den Logfiles nach 
warum der Login fehlschlägt.

Dazu brauchst du den Ausschnitt vom Logfile, der den Login-Versuch 
enthält. Nicht einfach irgendein Logfile-Schnipsel von irgendwann.

von Troll, M.Sc. (Gast)


Lesenswert?

Jetzt funktioniert es, ich hatte ein Fehler im Namen. Filezilla zeigt 
mir jetzt nur /   an. Was an sich ja so sein soll.

von Troll, M.Sc. (Gast)


Lesenswert?

Problem jetzt ob über SFTP in Filezilla oder root in Ubuntu: permission 
denied. Ich werde wie gewünscht ins Directory geschmissen und komme 
sonst nirgends hin. Ich kann aber weder daten dort reinlegen oder 
runterladen.

Ich habe dann folgendes gemacht:

chmod u+w+r /opt/ftp   (Besitzer soll schreiben und lesen können

chown ftpuser:ftp /opt/ftp     (die Gruppe ftp und der User ftpuser sind 
jetzt Besitzer dieser Directory)

das führt dazu, dass ich nicht mehr in Filezille damit durchkomme.

log:
"fatal: bad ownership or modes for chroot directory "/opt/ftp""

von Εrnst B. (ernst)


Lesenswert?

Troll, M.Sc. schrieb:
> "fatal: bad ownership or modes for chroot directory "/opt/ftp""

auch das hatten wir oben schon:

Εrnst B. schrieb:
> Allerdings hat ChrootDirectory noch ein paar Anforderungen an den Pfad,
> z.B. dürfen alle Pfadelemente nur von Root beschreibbar sein, erst
> Unterordner darunter dürfen dann Schreibrechte für "sammy" haben.

von Troll, M.Sc. (Gast)


Lesenswert?

Ich dachte, dass wäre mit der Pfadangabe geregelt. Wie soll ich sowas 
sonst machen?

von Troll, M.Sc. (Gast)


Lesenswert?

so, ich habe jetzt root bist /opt/ftp und in /ftp dann sammy:group.
im log steht immer noch bad ownership

von Εrnst B. (ernst)


Lesenswert?

Direkt das Chroot - Verzeichnis schreibbar machen geht mit dem 
openssh-sftp nicht.

Meine Lösung wäre:
/opt
und
/opt/sftp
nur schreibrechte für Root
/opt/sftpd/sammy
mit Schreibrechten für sammy.

Optional:
in der sshd-config ein "default"-Verzeichnis angeben. Viele (nicht alle) 
SFTP-Programme starten dann automatisch in dem Verzeichnis.

Die Verzeichnisangabe ist relativ zum ChrootDirectory und wird als "-d" 
Parameter zum internal-sftp-Command angegeben.

Also in der sshd-config:
 ForceCommand internal-sftp -d /sammy

(oder statt hardcodiertem Pfad: "/%u", das %u wird zum Usernamen)

Alternative: Dem user "sammy" in der /etc/passwd ein HOME-dir von 
"/sammy" einstellen.

: Bearbeitet durch User
von Troll, M.Sc. (Gast)


Lesenswert?

Εrnst B. schrieb:
> Direkt das Chroot - Verzeichnis schreibbar machen geht mit dem
> openssh-sftp nicht.
>
Ok, man kann aber sich die Daten aus dem Ordner zeihen, was mir reicht. 
Danke für deine Hilfe!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.