Einfacher Ubuntu FTP Server

33

Ich möchte einen einfachen FTP-Server in meiner Ubuntu Server-Installation einrichten. Ich habe mit VSFTPD gespielt, habe jedoch Probleme, den Server so zu konfigurieren, dass ich Verzeichnisse erstellen und Dateien kopieren kann. Ich habe das System so eingestellt, dass lokale Benutzer zugelassen werden. Dies bedeutet jedoch nicht, dass ich Zugriff auf das Erstellen von Verzeichnissen bekomme. Dies kann ein Fall sein, in dem ich mich im Ubuntu-Server-Setup besser auskennen muss, um diesen FTP-Server angemessen zu konfigurieren. Das Endziel ist es, Dateien von meinem lokalen Entwicklerordner in meinen WWW-Ordner für die Bereitstellung zu verschieben. Auch Verzeichnisse müssen sich bewegen können. Jede Hilfe wäre sehr dankbar.

JPrescottSanders
quelle
Sie haben erwähnt, dass Sie Dateien und Ordner vom lokalen Entwickler in den WWW-Ordner verschieben. Tun Sie dies alles auf demselben Computer oder auf verschiedenen Computern?
Marco Ceppi
Sind Sie auch komplett mit VSFTPD verkauft? Oder interessieren Sie sich für andere Arten von FTP-Software wie pureftp?
Marco Ceppi
Der lokale Entwickler ist eine separate Maschine. Ich bin mit dem Verschieben von Dateien auf Webserver über FTP vertraut. Vielleicht gibt es einen besseren Weg.
JPrescottSanders
Ich bin nicht auf VSFTPD verkauft, es war das erste, das ich beim googeln gefunden habe, wenn Sie eine einfachere Lösung haben, bin ich ganz Ohr.
JPrescottSanders

Antworten:

42

Ich werde PureFTPD empfehlen, da es meiner Meinung nach am einfachsten und am einfachsten zu verwenden war. Sie müssen es zuerst installieren: sudo apt-get install pure-ftpdSobald es installiert ist, startet es sich von selbst. Standardmäßig werden PAM-Authentifizierungen verwendet, dh es werden die bereits auf dem System vorhandenen Konten für die Authentifizierung verwendet. Sie müssen lediglich ein Benutzerkonto mit dem Basisverzeichnis als WWW-Pfad erstellen und das Kennwort für dieses Konto festlegen. Sie sollten dann in der Lage sein, eine Verbindung mit dieser Benutzer- / Pass-Kombination herzustellen, um Dateien hoch- oder herunterzuladen.

Etwas wie das:

sudo adduser ftpman --home /var/www/ --ingroup www-data

Dadurch wird der ftpmanBenutzer erstellt und in die von Apache verwendete WWW-Datengruppe eingefügt. Anschließend werden Sie durch den Rest des Setup-Skripts geführt. Sobald dies definiert ist, vergewissern chmodSie sich , dass im WWW-Ordner Fehler vorliegen, die für die von Ihnen erstellte Benutzer- / Gruppenkombination bereits vorhanden sind.

Zuletzt, wenn Sie den SSH-Zugriff für diesen Kontostart sperren möchten: sudo chsh -s /bin/false ftpmanDadurch wird die Shell dieses Benutzers in false geändert. (Ersetzen Sie ftpman durch Ihren ftp-Benutzer)

Marco Ceppi
quelle
5
PureFTP ist für mich am einfachsten einzurichten.
Nathan Osman
1
Sie haben die Angewohnheit, immer wie ein Lehrer vollständige Erklärungen abzugeben. Genial!!!
user3215
1
Ich habe es versucht, aber ich kann keine Verbindung mit dem neu erstellten Benutzer herstellen. Bestehende Benutzer funktionieren
einwandfrei
1
Das alles funktioniert einwandfrei, außer wenn ich das chshstarte, scheint dies Benutzer daran zu hindern, sich auch über FTP anzumelden. Durch Zurücksetzen auf /bin/bashkann es wieder funktionieren.
DanH
1
Vielen Dank, und ich kann bestätigen, dass ich einen ganzen Tag mit vsftpd und 5 Minuten mit pureftpd in der Setup-Zeit verbracht habe. Verwenden Sie für eine einfache und sichere Einrichtung pureftpd. Ich bin verwirrt, warum Mainstream vsftpd wirbt!
RyBolt
10

Meiner Meinung nach ist SFTP ein besserer Weg. Hey, es hat das Wort "sicher" im Namen, es muss besser sein :)

SFTP verwendet ssh, um Dateiübertragungen durchzuführen (im Gegensatz zu FTPS, im Grunde genommen FTP + TLS). Dies bedeutet, dass Sie, wenn Sie auf den Zielcomputer sshen können, fast immer SFTP für diesen Computer ausführen können, da er dieselben Authentifizierungsmechanismen verwendet und daher keine unterschiedlichen Server-Dämonen installieren und konfigurieren muss (dh kein pureftpd oder vsftpd). Solange Ihre Berechtigungen richtig eingestellt sind /var/www- was wahrscheinlich eine Frage ist sudo chmod g+w /var/www; sudo usermod -g $USER -G www-data $USER-, sollten Sie SFTP sofort verwenden können.

Die meisten Clientsoftware heutzutage machen SFTP ziemlich gut und Sie können auch scpvon einer Shell auf dem Entwickler-Server aus kopieren ( scp -Rkopiert ganze Ordner und ist sehr praktisch). Sie können sogar noch einen Schritt weiter gehen und die Anmeldung mit öffentlichen Schlüsseln automatisieren, sodass Sie keine Passwörter mehr eingeben müssen :)

Ben Williams
quelle
3
tipp tipp ... wenn Sie Windows-Clients haben, können diese WinSCP winscp.net/eng/index.php für den Zugriff auf einen SFTP-Server verwenden.
LassePoulsen
Laut Ihrem Kommentar sollte das OP natürlich vsftpd verwenden, da vs für sehr sicher steht . :-)
qbi
PureFTPD verwendet dieselbe Authentifizierung wie SFTP - sie ist meiner Meinung nach sogar sicherer, denn wenn Ihre Kontoinformationen verloren gehen, greift niemand über SSH auf Ihren Computer zu. Im schlimmsten Fall haben sie Dateizugriff.
Marco Ceppi
Was ist der Unterschied, wenn Ihre App nur FTP unterstützt und Sie es über SSH tunneln? :)
Endolith
5

Ich würde die Verwendung von vsftpd dringend empfehlen. Es ist eines der sichersten FTP-Daemons unter Linux. Viele andere hatten in der Vergangenheit Schwachstellen und es scheint, dass es schwierig ist, FTP auf sichere Weise zu implementieren.

vsftpd startet direkt nach der Installation. Mit Ubuntu können sich lokale Benutzer anmelden. Starten Sie also Ihren FTP-Client und melden Sie sich als normaler Benutzer mit Ihrem Systemkennwort an (in meinem Beispiel wird LFTP verwendet):

> lftp 127.0.0.1 ftp
lftp 127.0.0.1:~> user qbi
Password: #typing my password which I also use to log in via GDM
lftp [email protected]:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

Jetzt benutze ich eine Art Dateimanager (Nautilus, Shell usw.), um ein neues Verzeichnis zu erstellen foound zu meinem FTP-Client zurückzukehren:

ftp [email protected]:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

Das Verzeichnis ist da und ich kann cdhinein und es benutzen. Dies gilt auch, wenn Sie spezielle Benutzer haben. Dort können Sie auch Verzeichnisse anlegen, auf die sofort zugegriffen werden kann. Hier ist es wichtig, nach Zugriffsrechten zu suchen.

qbi
quelle
3

Ich empfehle demütig einen FTP-Server, den ich selbst geschrieben habe: JetFTP . Es ist sehr einfach zu installieren und zu verwenden.


Installation:

  • Füge meinen PPA zu deinen Software-Quellen hinzu und aktualisiere:

    sudo apt-add-repository ppa:george-edison55/george-edison
    
  • Führen Sie den folgenden Befehl aus:

    sudo apt-get install jetftp
    
  • Das ist es!

Die Verwendung von JetFTP ist einfach - stellen Sie einfach eine Verbindung zum Port her, 8021indem Sie einen Anmeldenamen und ein Kennwort auf dem Computer verwenden, auf dem JetFTP ausgeführt wird.

Nathan Osman
quelle
2

Verwenden Sie kein FTP , da es sich um ein von Natur aus unsicheres Protokoll handelt, das den Benutzernamen und das Kennwort im Klartext an den Server sendet. Die Implementierung von sftp ist genauso einfach und Sie erhalten einen großen Vorteil in Bezug auf die Sicherheit Ihrer Verbindung.

Stuart
quelle
klares Problem ist die beste Antwort :-)
Sajad Bahmani
0

Es gibt drei verschiedene Möglichkeiten, einen FTP-Server einzurichten:

(1) Anonymes FTP:

Die Benutzer können nur mit dem anonymen Konto und ohne Kennwort auf den Server zugreifen. Natürlich wird der Serveradministrator ein Limit für Uploads festlegen, um zu verhindern, dass Benutzer illegale Dateien wie Raubkopien von Musik / Filmen / Spielen ablegen.

(2) FTP mit anonymem Zugriff und Benutzer mit einem kennwortgeschützten Konto:

Mit dieser Methode können anonyme und kennwortgeschützte Benutzer den Server betreten. Sie haben nur Zugriff auf ein bestimmtes Verzeichnis, außer auf den Benutzer root, der alle Dateien und / oder Ordner anzeigen / ändern / löschen kann.

(3) FTP mit MySQL-Unterstützung für die Authentifizierung virtueller Benutzer:

Diese Methode ermöglicht den Zugriff auf den Server nur für einige Benutzergruppen, die kein Authentifizierungsshellkonto für virtuelle Benutzer auf dem System haben. Es verwendet einen externen MySQL-Server, der Benutzerinformationen speichert.

Erste Option: Anonymes FTP

Bevor Sie mit der Erstellung eines anonymen FTP-Servers beginnen, müssen Sie Ihrem System einen Benutzer mit dem Namen ftp und einem Basisverzeichnis hinzufügen. Dieser Schritt ist wirklich einfach, folgen Sie einfach diesen Befehlen:

useradd -d /home/ftp/ftp -s /bin/false ftp

mkdir -p /home/ftp/upload

Auf diese Weise kann nur dieses Konto in diesen Ordner schreiben. Sie können weitere Variablen verwenden, um anzugeben, was der FTP-Server tun soll. Hier sind einige Beispiele:

-e Allow access to the server only by anonymous users
-B Start the server with background demon
-i Anonymous users can't upload files
-M Let anonymous users create folders
-s ftp user files cannot be downloaded

Zweite Option: '' 'Benutzer des anonymen und des kennwortgeschützten Kontos' ''

Befolgen Sie diese kleine Anleitung, um zu ermöglichen, dass sich anonyme und kennwortgeschützte Benutzer auf demselben Server befinden:

-B ,-i ,M, -r, -s same of before
-u <uid> Enable users with a specified user id (uid) to access the server 
-V <Ip address> Only specified IPs will be able to access the server in non-anonymous mode 

Dritte Option: Virtuelle Benutzer mit MySQL

Gehen Sie folgendermaßen vor, um einen Server mit MySQL-Unterstützung zu erstellen:

Laden Sie den User Manager für PureFTPd herunter und installieren Sie ihn, den Sie hier finden: http://machiel.generaal.net/index.php?subject=user_manager_pureftpd

Dekomprimieren Sie es und laden Sie seinen gesamten Inhalt in das WWW-Verzeichnis Ihres Webservers hoch. Schreiben Sie dann in Ihren Browser diesen Link http: //localhost/ftp/install.php. Befolgen Sie alle Schritte, die Sie vom Installationsprogramm aufgefordert werden. Kopieren und speichern Sie rge pureftpd-mysql .conf in pureftpd user manager verzeichnis

Getan. Der Zugriff auf das Administrationsfenster erfolgt über diesen Link http: // localhost / ftp

Weitere Optionen, die vor dem Starten des Serverprozesses hinzugefügt werden müssen

-c <num> Max client that can connect to the server
-C <num> Max connections for a IP
-T <bandwitdh> Max bandwitdh disponible for each connection
-n <MBytes> Max MB that a user can have into its home folder
-m <Cpu Loading> Stops the anonymous uploads if the cpu loading exceed from this value 

Hier finden Sie Informationen zu einigen FTP-Serveranwendungen:
https://help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html

Sajad Bahmani
quelle
4
Wenn Sie eine Antwort von einem anderen Ort kopieren und einfügen, sollten Sie immer die Quelle gutschreiben .
Dori
0

Bei der Standardinstallation von VSFTPD sind standardmäßig keine Änderungen zum Erstellen / Ändern zulässig . Sie müssen /etc/vsftpd.confdie folgende Zeile bearbeiten und auskommentieren ...

write_enable=YES

Und zweitens müssen Sie die entsprechenden Dateisystemberechtigungen für die jeweiligen Dateien und Ordner konfigurieren.

Simon East
quelle