Probleme bei Konfiguration von vsFTPd

Status
Für weitere Antworten geschlossen.

RoaSteR

Benutzer
Mitglied seit
17. Sep 2009
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
Hallo Leute

Nachdem ich anfangs recht Mühe hatte mit mount-Befehlen, bin jetzt noch am vsFTPd am rumstolpern... kurz zur Ausgangslage. Unten dann die Fragen dazu.

Meine Config liegt in /opt/etc/vsftpd.conf.

Habe den Standard-Inhalt komplett rausgelöscht und diese Angaben eingefügt:
Rich (BBCode):
# Anonymen FTP-Zugriff erlauben? YES/NO
anonymous_enable=NO

# Anonymen Upload erlauben? YES/NO
anon_upload_enable=NO

# Dürfen anonyme User Verzeichnisse erstellen? YES/NO
anon_mkdir_write_enable=NO

# Dürfen anonyme User andere Schreiboperationen wie Umbenennen oder Löschen durchführen? YES/NO
anon_other_write_enable=NO

# Anmeldung von lokalen Usern erlauben? YES/NO
local_enable=YES

# Sollen lokale Benutzer in ihrem Homeverzeichnis eingesperrt werden? YES/NO
chroot_local_user=YES
user_config_dir=/usr/local/etc/user1.conf
user_config_dir=/usr/local/etc/user2.conf

# Die maximal erlaubte Datentransferrate in Bytes/Sekunde für lokal angemeldete User. Vorgabe = 0 (unbegrenzt)
local_max_rate=0

# Schreibrechte prinzipiell erlauben? YES/NO
write_enable=NO

# Nachrichten bei Verzeichniswechsel anzeigen? YES/NO
dirmessage_enable=YES

# Bannermeldung, welche der sich anmeldende User sieht.
ftpd_banner="Welcome on RoaSteRs NAS FTP Server"

# Protokollierung aktivieren? YES/NO
xferlog_enable=YES

# Sämtliche FTP-Aktivitäten protokollieren? YES/NO
# Achtung! Durch diesen Eintrag können sehr große Datenmengen entstehen.
log_ftp_protocol=NO

# Versichern, daß Verbindungen nur an Port 20 (ftp-data) zustande kommen. YES/NO
connect_from_port_20=YES

# Unterbrechung (time out) bei Leerlaufzeiten (idle sessions)
idle_session_timeout=600

# Zeit, nach der eine Datenverbindung unterbrochen wird.
data_connection_timeout=120

# Zugriff wird über Pluggable Authentication Modules (PAM) geregelt.
pam_service_name=vsftpd

# Standalone-Betrieb? YES/NO - abhängig vom Betriebsmodus (inetd, xinetd, Standalone)
# Des Autors FTP-Dienst wird per xinetd gestartet, deswegen lautet der Wert hier NO.
listen=NO

In der /usr/local/etc/user1.conf steht folgendes:
Rich (BBCode):
#user1-settings
local_root=/

In der /usr/local/etc/user2.conf steht folgendes:
Rich (BBCode):
#user2-settings
local_root=/volume1/FTP-Server

Die beiden hab ich in /usr/local/etc/ mit dem vi-editor erstellt und mit dem Befehl abgespeichert:
Rich (BBCode):
:w user1.conf -> ENTER

user1.conf bin ich, ich will wirklich auf's root kommen und komplette Rechte überall haben. user2.conf muss beschränkt sein, das sind die Gäste. Ich geh davon aus, das für den Zusammenhang der user dann auch wirklich gleich heissen muss wie die *.conf?

User's erstellt habe ich so:
Rich (BBCode):
adduser user1
Und dann Passwort gesetzt. Bei user2 dasselbe.


Dann wollt ich mal testen, bekam aber in Filezilla folgende Meldung:
Rich (BBCode):
500 OOPS: error opening per-user config file

Das sind die bisherigen Gegebenheiten. Nun zu meinen Fragen :)

Was wird als local User bezeichnet? Ich frag nur weil es ja für local_users nochmal verschiedenste Einstellungen gibt. Gilt local schon für solche im selben internen netzwerk? Oder kann ich das einfach ausgeschalten?

Wo muss ich da nach dem Error-Problem am ehesten suchen? In der vsftpd.conf oder den user1/user2.conf?

Ist es möglich, via user1.conf bzw. user2.conf einzustellen, auf welchem Order der User nur Leserechte hat, und in welchen Schreibrechte? Möchte drum noch 1 'Upload' Ordner machen für Gäste.

Kann ich hier auch einstellen, wieviel sich gleichzeitig mit user2 einloggen können? So dass immer nur 5 gleichzeitig drauf sind. Und natürlich jede IP nur 1x! user1 sollte aber immer drauf kommen, unabhängig von irgendwelchen max. Userzahlen. Ich hät ja jetzt einfach in die user2.conf folgende Zeilen eingefügt, weiss aber nicht ob das so stimmt?
Rich (BBCode):
max_clients=5
max_per_ip=1

Wär's einfacher die User's in einer userlist zu erfassen? Wenn ja wie sieht die dann Inhaltlich aus?

Das wär glaub für gröbste, hoffe ihr könnt mir da helfen :)
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
FTP hat keine eigene Rechteverwaltung sondern verlässt sich auf die Rechte des Dateisystems.
Ein lokaler Benutzer verfügt normalerweise über einen lokalen Account auf dem Zielserver.
Du kannst bei vsFTP auch chroot verwenden, um bestimmte Benutzer in bestimmte Verzeichnisse einzuschliessen.
Darf der FTP Server die Userfiles überhaupt lesen? Resp wieso gibst du bei einer Var die ein "dir" verlangt ein File an? dort musst du ein Verzeichnis angeben und dann unterhalb davon die einzelnen Userfiles anlegen.
Von dem her liegt der Fehler in der config Datei
 

RoaSteR

Benutzer
Mitglied seit
17. Sep 2009
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
FTP hat keine eigene Rechteverwaltung sondern verlässt sich auf die Rechte des Dateisystems.
Ein lokaler Benutzer verfügt normalerweise über einen lokalen Account auf dem Zielserver.
Du kannst bei vsFTP auch chroot verwenden, um bestimmte Benutzer in bestimmte Verzeichnisse einzuschliessen.
Darf der FTP Server die Userfiles überhaupt lesen? Resp wieso gibst du bei einer Var die ein "dir" verlangt ein File an? dort musst du ein Verzeichnis angeben und dann unterhalb davon die einzelnen Userfiles anlegen.
Von dem her liegt der Fehler in der config Datei

Alles klar, dann erstelle ich da einfach Ordner mit Leserechten drauf, und einen mit Schreibrechten? :)

Habe jetzt nur die Pfadangabe drin, Datei hab ich entfernt. Nun kommt wenigstens nicht mehr der 500er Error :)

Nun hab ich aber anscheinend ein durcheinander mit den Usern. Wenn ich 'deluser user2' machen will (damit ich die neu erstellen kann), gibt er ne Fehlermeldung in /etc/passwd. Kann nicht löschen. Hab blöderweise gestern beim rumprobieren in passwd mit 'dd' die Zeile rausgelöscht, weiss nicht ob er nun deshalb ein Problem hat. Wenn ich den User von Hand wieder in der /etc/passwd eingebe, dann kommt bei erneutem 'deluser user2' ein Error mit /etc/shadow.

Schnalle es langsam nicht mehr ;)

Erstellen kann ich logischerweise auch nicht neu (adduser user2), dann meint er die Gruppe (?) bestehe bereits?!


Wie kriege ich den user2 wieder komplett weg?

Und wie erstelle ich ihn dann richtig? Einfach 'adduser user2' oder muss noch ne option dazwischen -> 'adduser /volume1/FTP-Server user2'?
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
die Userverwaltung solltest du über den DSM machen. Die Shadow Datei enthält ebenfalls jeder User UND dessen Passwort Hash. Ausserdenm wird normalerweise pro User der angelegt wird auch eine gleichnamige Gruppe angelegt. Solange diese Gruppe noch existiert, wird das Neuanlegen des Users nicht klappen. Die Datei ist /etc/group (oder /etc/groups bin nicht ganz sicher ob Ein- oder Mehrzahl).
Wenn du die Verwaltung auf dem DSM machst, dann brauchst du dich um die einzelnen Datein nicht zu kümmern, das erledigt dann die Firmware.
Was ich nicht kapiert habe ist was du mit dd gemacht hast :confused:
 

RoaSteR

Benutzer
Mitglied seit
17. Sep 2009
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
die Userverwaltung solltest du über den DSM machen. Die Shadow Datei enthält ebenfalls jeder User UND dessen Passwort Hash. Ausserdenm wird normalerweise pro User der angelegt wird auch eine gleichnamige Gruppe angelegt. Solange diese Gruppe noch existiert, wird das Neuanlegen des Users nicht klappen. Die Datei ist /etc/group (oder /etc/groups bin nicht ganz sicher ob Ein- oder Mehrzahl).
Wenn du die Verwaltung auf dem DSM machst, dann brauchst du dich um die einzelnen Datein nicht zu kümmern, das erledigt dann die Firmware.
Was ich nicht kapiert habe ist was du mit dd gemacht hast :confused:

Also im DSM hab ich ausser admin und guest (deaktiviert) nichts mehr an User drin. Gruppe ist nur die standardmässige 'users' drin.

Ich habe gestern Abend etwas rumprobiert. Hab user2 erstellt, und wollte den dann wieder löschen. Hab dann aber den Befehl (deluser user2) nicht gewusst und die Zeile in /etc/passwd einfach per vi-Editor (Befehl 'dd') gelöscht. Weil die Zeile in passwd nun fehlt kann ich den user2 wohl auch nicht löschen per 'deluser user2'. Werd am Abend versuchen noch die Group zu löschen und hoffe, es klappt dann.

Dann meinst du, einfach den User im DSM erfassen? Nur User und Passwort setzen, oder muss ich da noch was speziell anwählen auf was der Zugriff hat?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Dann meinst du, einfach den User im DSM erfassen? Nur User und Passwort setzen, oder muss ich da noch was speziell anwählen auf was der Zugriff hat?
Das Bearbeiten via DSM bewahrt dich genau vor solchen Problemen. Bei den Zugriffsrechten musst du afaik nichts spezielles setzen, denn diese betreffen nur die default Syno Applikationen. Und du verwendest ja einen anderen FTP Server als denjenigen von Synology. Wichtig ist bei lokalen Benutzern, dass die über ein gültiges Homeverzeichnis und eine gültige Shell verfügen. Afaik prüft vsftpd die Gültigkeit der in passwd angegebenen Shell und verweigert eine Anmeldung

check_shell

Note! This option only has an effect for non-PAM builds of vsftpd. If disabled, vsftpd will not check /etc/shells for a valid user shell for local logins.Default: YES
Das gültige Homeverzeichnis in passwd wird erst dann wichtig wenn du beabsichtigst bestimmte User in ihre Homeverzeichnisse einzusperren
Code:
[B]chroot_list_enable
[/B][B]chroot_local_user
[/B]Mehr zu den Konfig Vars gibt es z.B. bei http://vsftpd.beasts.org/vsftpd_conf.html
 

RoaSteR

Benutzer
Mitglied seit
17. Sep 2009
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
Vielen Dank für deine Erläuterungen :)

Dann werd ich folgendermasse vorgehen:

Erstmal in /etc/groups die Gruppen killen die da noch fälschlicherweise drin hängen.

Danach User & Passwort über DSM erstellen.

Soll ich check_shell disablen um Problemen aus dem Weg zu gehen?

Die User möchte ich eigentlich schon in ein Home-Verzeichnis einsperren:
- user1 = ich, admin, möchte auf 'root' und Zugriff auf alles haben
- user2 = LAN-Party Gäste welche nur in den FTP-Server Ordner dürfen

Aber das sollten ja meine 2 files (user1.conf & user2.conf) regeln die ich hinterlegt hab? Muss einfach schauen das die User's die ich erfasse identisch mit dem Dateinamen sind mein ich?! Für user1 brauchts zwar gar keine, der soll ja Vollzugriff haben.
Rich (BBCode):
chroot_local_user=YES
user_config_dir=/usr/local/etc/


Kannst du mir noch sagen ob ich die beiden Angaben 'max_clients=5' + 'max_per_ip=1' auch gleich in die user2.conf packen kann?


Danke danke danke für deine Hilfe :)
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Zugriff auf ALLES für einen nicht-root Nutzer, der nicht zufällig admin heisst, ist kaum machbar. Es gibt etliche Files, die nur root lesen kann. Sonst niemand.
Ich bin nicht sicher ob du deine beiden Angaben in die Userfiles setzen kannst, denn es gibt gewisse Vars die sind global pro Server und können nicht pro User gesetzt werden. imho würde diese beiden Vars in den globalen Teil gehören. Zumindest bei max_per_ip kann ich mir kaum vorstellen, dass die in dem File die gewünschte wirkung zeigen würde. Die Beschränkung gilt pro IP und die kennt der Server lange bevor er weiss welcher User sich anmelden will.
 

RoaSteR

Benutzer
Mitglied seit
17. Sep 2009
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
Zugriff auf ALLES für einen nicht-root Nutzer, der nicht zufällig admin heisst, ist kaum machbar. Es gibt etliche Files, die nur root lesen kann. Sonst niemand.
Ich bin nicht sicher ob du deine beiden Angaben in die Userfiles setzen kannst, denn es gibt gewisse Vars die sind global pro Server und können nicht pro User gesetzt werden. imho würde diese beiden Vars in den globalen Teil gehören. Zumindest bei max_per_ip kann ich mir kaum vorstellen, dass die in dem File die gewünschte wirkung zeigen würde. Die Beschränkung gilt pro IP und die kennt der Server lange bevor er weiss welcher User sich anmelden will.


Dann müsst ich mich ja eigentlich auch mit dem bestehenden admin oder sogar root anmelden können am ftp... dann muss ich den user1 gar nicht erst erstellen!

Bei 'max_clients=5' bin ich der Meinung, dass man dies pro user müsste setzen können - sonst komm ich als admin ja nicht mehr drauf sobald 5 Gäste drauf sind.

Bei 'max_per_ip=1' macht's Sinn wenn's global ist, da hast du Recht.

Was meinst du zum check_shell, gleich von Anfang an disablen?

Ich hoff ich krieg das hin... :rolleyes:
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat