Jaminto hat die Frage hervorragend beantwortet, aber ich habe den Prozess kürzlich selbst durchlaufen und wollte Jamintos Antwort erweitern.
Ich gehe davon aus, dass Sie bereits eine EC2-Instanz erstellt und dieser eine elastische IP-Adresse zugeordnet haben.
Schritt 1: Installieren Sie vsftpd
SSH zu Ihrem EC2-Server. Art:
> sudo yum install vsftpd
Dies sollte vsftpd installieren.
Schritt 2: Öffnen Sie die FTP-Ports Ihrer EC2-Instanz
Als Nächstes müssen Sie die FTP-Ports auf Ihrem EC2-Server öffnen. Melden Sie sich bei der AWS EC2 Management Console an und wählen Sie in der Navigationsstruktur links Sicherheitsgruppen aus. Wählen Sie die Ihrer EC2-Instanz zugewiesene Sicherheitsgruppe aus. Wählen Sie dann die Registerkarte Eingehend und klicken Sie auf Bearbeiten:
Fügen Sie zwei benutzerdefinierte TCP-Regeln mit den Portbereichen 20-21 und 1024-1048 hinzu. Als Quelle können Sie "Überall" auswählen. Wenn Sie Source auf Ihre eigene IP-Adresse festlegen möchten, beachten Sie, dass sich Ihre IP-Adresse möglicherweise ändert, wenn sie über DHCP zugewiesen wird.
Schritt 3: Aktualisieren Sie die Datei vsftpd.conf
Bearbeiten Sie Ihre vsftpd conf-Datei, indem Sie Folgendes eingeben:
> sudo vi /etc/vsftpd/vsftpd.conf
Deaktivieren Sie anonymes FTP, indem Sie diese Zeile ändern:
anonymous_enable=YES
zu
anonymous_enable=NO
Fügen Sie dann die folgenden Zeilen am Ende der Datei vsftpd.conf hinzu:
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=<Public IP of your instance>
Ihre vsftpd.conf-Datei sollte ungefähr so aussehen - außer dass Sie die pasv_address durch Ihre öffentlich zugängliche IP-Adresse ersetzen müssen:
Um Änderungen zu speichern, drücken Sie die Esc-Taste, geben Sie ein und drücken Sie :wq
die Eingabetaste.
Schritt 4: Starten Sie vsftpd neu
Starten Sie vsftpd neu, indem Sie Folgendes eingeben:
> sudo /etc/init.d/vsftpd restart
Sie sollten eine Nachricht sehen, die wie folgt aussieht:
Wenn dies nicht funktioniert, versuchen Sie:
> sudo /sbin/service vsftpd restart
Schritt 5: Erstellen Sie einen FTP-Benutzer
Wenn Sie einen Blick auf / etc / vsftpd / user_list werfen, sehen Sie Folgendes:
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
Dies bedeutet im Grunde: "Erlauben Sie diesen Benutzern keinen FTP-Zugriff." vsftpd ermöglicht jedem Benutzer, der nicht in dieser Liste aufgeführt ist, den FTP-Zugriff.
Um ein neues FTP-Konto zu erstellen, müssen Sie möglicherweise einen neuen Benutzer auf Ihrem Server erstellen. (Wenn Sie bereits ein Benutzerkonto haben, das nicht in / etc / vsftpd / user_list aufgeführt ist, können Sie mit dem nächsten Schritt fortfahren.)
Das Erstellen eines neuen Benutzers auf einer EC2-Instanz ist ziemlich einfach. Geben Sie beispielsweise Folgendes ein, um den Benutzer 'bret' zu erstellen:
> sudo adduser bret
> sudo passwd bret
So wird es aussehen:
Schritt 6: Beschränken der Benutzer auf ihre Home-Verzeichnisse
Zu diesem Zeitpunkt sind Ihre FTP-Benutzer nicht auf ihre Home-Verzeichnisse beschränkt. Das ist nicht sehr sicher, aber wir können es ziemlich einfach beheben.
Bearbeiten Sie Ihre vsftpd conf-Datei erneut, indem Sie Folgendes eingeben:
> sudo vi /etc/vsftpd/vsftpd.conf
Kommentar aus der Zeile entfernen:
chroot_local_user=YES
Sobald Sie fertig sind, sollte es so aussehen:
Starten Sie den vsftpd-Server erneut wie folgt neu:
> sudo /etc/init.d/vsftpd restart
Alles erledigt!
Anhang A: Überleben eines Neustarts
vsftpd startet nicht automatisch, wenn Ihr Server startet. Wenn Sie wie ich sind, bedeutet dies, dass Sie nach dem Neustart Ihrer EC2-Instanz einen Moment des Terrors verspüren, wenn FTP defekt zu sein scheint - aber in Wirklichkeit läuft es einfach nicht!. Hier ist eine praktische Möglichkeit, dies zu beheben:
> sudo chkconfig --level 345 vsftpd on
Wenn Sie redhat verwenden, können Sie Ihre Dienste auch mithilfe dieser raffinierten grafischen Benutzeroberfläche verwalten, um zu steuern, welche Dienste automatisch gestartet werden sollen:
> sudo ntsysv
Jetzt wird vsftpd automatisch gestartet, wenn Ihr Server hochfährt.
Anhang B: Ändern des FTP-Ausgangsverzeichnisses eines Benutzers
* HINWEIS: Iman Sedighi hat eine elegantere Lösung zur Einschränkung des Benutzerzugriffs auf ein bestimmtes Verzeichnis veröffentlicht. Bitte beziehen Sie sich auf seine ausgezeichnete Lösung als Antwort *
Möglicherweise möchten Sie einen Benutzer erstellen und dessen FTP-Zugriff auf einen bestimmten Ordner beschränken, z. B. / var / www. Dazu müssen Sie das Standard-Ausgangsverzeichnis des Benutzers ändern:
> sudo usermod -d /var/www/ username
In diesem speziellen Beispiel ist es typisch, dem Benutzer Berechtigungen für die Gruppe 'www' zu erteilen, die häufig dem Ordner / var / www zugeordnet ist:
> sudo usermod -a -G www username