VSFTPD Howto – Virtuelles Webhosting + FTP Zugang

7 11 2007

VSFTPD ist einer der sichersten FTP Server, welcher auf Linux Systemen zum Einsatz kommt. Dieser gibt die möglichkeit, Daten über das FTP Protokoll auf den jeweiligen Zielserver zu laden.

Doch wie richtet man einen FTP Server für mehere User ein, welche alle auf einem Webserver liegen?

Dieses Howto wurde auf Basis von Ubuntu 7.10 erstellt und beschreibt den Aufbau eines VSFTPD Servers für eine vielzahl von virtuellen Webs auf einem Server.


Schritt1:
Installation des VSFTPD Servers:
apt-get install vsftpd


Schritt2:
Angleichen der /etc/vsftpd.conf. Folgende Änderungen sollten übernommen werden:
anonymous_enable=NO # Verbieten von Anonymous-Logins
listen=YES #Standalone betrieb – kein inetd/xinetd
local_enable=YES
# Erlaubt das anmelden von Lokalen Benutzerkonten
write_enable=YES
# Erlaubt den Upload von Dateien
local_umask=002
# Rechtevergabe der Upload Dateien/Verzeichnisse (rw- rw- r–)
xferlog_file=/var/log/vsftpd.log
# Aktivierung der Log-Funktion
chroot_local_user=YES
# Begrenzt User auf ihr Homedirectory in der /etc/passwd


Schritt3:
Angleich der /etc/shells. Hinzufügen von /bin/false. VSFTPD lässt nur Anmeldungen mit gültiger Shell zu. Da die einzelnen FTP Benutzer aber keinen SSH-Zugang bekommen sollen, sperren wir über den Eintrag /bin/false in der /etc/passwd den Zugang für den jeweiligen Benutzer (dazu später mehr).

Hinzufügen zu /etc/shells:
/bin/false # Setzt /bin/false als gültige Shell um den Login per VSFTPD zu ermöglichen.


Schritt4:
Als nächstes müssen die einzelnen Useraccounts eingerichtet werden. Jeder FTP User muss als lokaler Benutzer existieren.

Anlegen eines FTPUsers:

adduser <ftp-username> –ingroup <apache2-gruppe> # Achtung! apache2-gruppe ist Standartmäßig www-data

Öffen der /etc/passwd und angleichen des neuen Users <ftp-username>:
test1:x:1006:33:f,f,,:/home/test1:/bin/bash
wird geändert in

test1:x:1006:33:f,f,,:<webpräsenz für test1>:/bin/false

Angleichung des Webpräsenz-Verzeichnisses:
chown test1:www-data <webpräsenzverzeichniss von test1> # Ändern des Besitzers.
chmod -R 775
<webpräsenzverzeichniss von test1> # Ändern der Rechte in (rwxrwxr-x) für das Web.

Webpräsenzverzeichniss ist der Pfad in welchem die Virtuelle Site des Benutzers liegt, welche über den Apache2 konfiguriert wurde. (z.B. /var/www/test1).

Achtung! die Verzeichnisse in diesem Verzeichniss müssen ausführbar gemacht werden, da sie sonst nicht geöffnet werden können!

Schritt5:
Restarten des VSFTPD:
/etc/init.d/vsftpd stop # Stoppen des Daemons
/etc/init.d/vsftpd start # Starten des Daemons

Viel Spaß beim Testen! Fragen einfach als Kommentar mit E-Mail hinterlassen. Ich werde schnellstmöglich Antworten.
———————————————————————————————————

Update 25.Juli 2008

Einige Leute berichten von Problemen mit dem Login über den FireFox wo das Passwort nicht abgefragt wird, und ein Login nur über eine UsernamePasswort Syntax in der Adresszeile möglich ist.

Ich hab mich ein wenig mit diesem Problem beschäftig…
Fügt folgendes in die vsftpd.conf hinzu, und es sollte funktionieren:

# Dirlist – Für Firefox
dirlist_enable=YES

Advertisements

Aktionen

Information

6 responses

22 02 2008
Christian Sturm

Unter Ubuntu Server 7.10 heißt der Befehl chown und nicht chowner…

Lieber Gruß
Chris

Antwort:
Wurde angeglichen. Vielen Dank! 🙂

Mfg,
Maximilian

2 03 2008
Pascal Heinrich

Hi,

ich hab meinen vsftpd eingerichtet und er funktioniert auch, leider aber nur über das Terminal oder einen FTP Clienten.

Nicht im Browser direkt.
Wenn ich den FTP Server anwähle dann kommt immer 530 permission Denied

warum kommt da kein Login Prompt ?

wie gesagt über das Terminal oder einen FTp Clienten geht alles so wie es soll

Antwort:
Hallo Pascal,

diese Problem habe ich nun öfters gehört. Kann es nur leider nicht Rekonstruieren. Es scheint nicht an diesem Howto zu liegen. Bei anderen Howtos passiert wohl das gleiche. Ich habe den Server nun 3x nach diesem Howto aufgesetzt, und habe nie Probleme das Webinterface zu benutzen.

Falls noch jemand damit Probleme hat, bitte kurz Posten. Würde mich interessieren woran dies liegt. Lösungen werden natürlich auch gerne gesehen!!! 🙂

Den Mozilla/Firefox kannst du zwar wie folgt austricksen, jedoch ist das wohl auch keine wirkliche Lösung für dich:

ftp://login@IP

Wie gesagt, ich höre zwar öfters von diesem Problem, jedoch habe ich noch nicht geschafft es zu rekonstruieren.

Proxy oder etwas in der Art benutzt du nicht im Browser oder?

Mfg,
Maximilian

16 03 2008
Sergio Arévalo

Hallo,

muss man nicht die Iptables so einrichten, dass Port 20 und 21 offen sein müssen?
Funktioniert vsftpd ohne eine Regel in den iptables zu erstellen?

Antwort:
Hallo Sergio,
es kommt natürlich drauf an, ob du IPTables aktiviert hast. Dieses Howto geht davon aus, das IPTables keine Regeln enthält. Da dieses Programm ja bestandteil des Kernels ist, wird es standartmäßig aktiviert (enthält jedoch keine Regeln). Sollte es jedoch Chains bzw. Regeln in IPTables geben, müssen diese natürlich für VSFTP angeglichen werden.

Dies kannst du testen über iptables --list. Sollte die Liste wie folgt aussehen, hast du keine Regeln aktiv, und VSFTPD sollte ohne angleichung funktionieren:

Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Mfg,
Maximilian

19 08 2008
Alex

Wenn ich den FTP Server anwähle dann kommt immer 530 permission Denied

<<< Die Ausgabe im Browser liegt meist daran, dass kein Browser standardmäßig sFTP kann…vsftpd ist wie der name schon sagt ein very secure ftp deamon und übertrgägt daher die Daten via sFTP…sFTP benötigt den Port 22 und nicht 20/21 wie http://FTP…Windows-geschädigte haben hier das Problem, dass der IE-Explorer keine sFTP Verbindung aufbauen kann und es auch kein Tool gibt, ihm das beizubringen (das tool winscp schafft hier Abhilfe)…safari und opera usern gehts da ähnlich…..lediglich der Firefox hat durch die Implementierung von FileZilla direkt die Möglichkeit auf Port 22 zuzugreifen…

11 09 2008
Yoschi

Schritt4:
Als nächstes müssen die einzelnen Useraccounts eingerichtet werden. Jeder FTP User muss als lokaler Benutzer existieren.

Gibt es keine andere Möglichkeit?

17 09 2009
≈ Relations › links for 2009-09-16

[…] VSFTPD Howto – Virtuelles Webhosting + FTP Zugang « DIN-Town – Thats life! VSFTPD ist einer der sichersten FTP Server, welcher auf Linux Systemen zum Einsatz kommt. Dieser gibt die möglichkeit, Daten über das FTP Protokoll auf den jeweiligen Zielserver zu laden. […]

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s




%d Bloggern gefällt das: