Ich versuche, FTP auf Amazon Cloud Server einzurichten, aber ohne Glück. Ich suche über das Netz und es gibt keine konkreten Schritte, wie es geht.
Ich habe folgende Befehle zum Ausführen gefunden:
$ yum install vsftpd
$ ec2-authorize default -p 20-21
$ ec2-authorize default -p 1024-1048
$ vi /etc/vsftpd/vsftpd.conf
#<em>---Add following lines at the end of file---</em>
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=<Public IP of your instance>
$ /etc/init.d/vsftpd restart
Aber ich weiß nicht, wo ich sie schreiben soll.
linux
amazon-web-services
amazon-s3
amazon-ec2
ftp
SharkTheDark
quelle
quelle
Antworten:
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:
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:
Deaktivieren Sie anonymes FTP, indem Sie diese Zeile ändern:
zu
Fügen Sie dann die folgenden Zeilen am Ende der Datei vsftpd.conf hinzu:
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:
Sie sollten eine Nachricht sehen, die wie folgt aussieht:
Wenn dies nicht funktioniert, versuchen Sie:
Schritt 5: Erstellen Sie einen FTP-Benutzer
Wenn Sie einen Blick auf / etc / vsftpd / user_list werfen, sehen Sie Folgendes:
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:
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:
Kommentar aus der Zeile entfernen:
Sobald Sie fertig sind, sollte es so aussehen:
Starten Sie den vsftpd-Server erneut wie folgt neu:
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:
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:
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:
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:
quelle
step 3
nach Zeilen in der Datei hinzufügen, wie ich es retten kann?Um passives FTP auf einem EC2-Server zu aktivieren, müssen Sie die Ports konfigurieren, die Ihr FTP-Server für eingehende Verbindungen verwenden soll, und anschließend eine Liste der verfügbaren Ports für die FTP-Client-Datenverbindungen öffnen.
Ich bin mit Linux nicht so vertraut, aber die Befehle, die Sie veröffentlicht haben, sind die Schritte zum Installieren des FTP-Servers, zum Konfigurieren der ec2-Firewall-Regeln (über die AWS-API) und zum Konfigurieren des FTP-Servers für die Verwendung der Ports, die Sie für die ec2-Firewall zugelassen haben .
In diesem Schritt wird der FTP-Client (VSFTP) installiert.
> yum install vsftpd
Diese Schritte konfigurieren den FTP-Client
Die beiden anderen Schritte werden jedoch einfacher über die Amazon-Konsole unter EC2-Sicherheitsgruppen ausgeführt. Dort müssen Sie die Sicherheitsgruppe konfigurieren, die Ihrem Server zugewiesen ist, um Verbindungen an den Ports 20, 21 und 1024 bis 1048 zuzulassen
quelle
Danke @ clone45 für die nette Lösung. Aber ich hatte nur ein wichtiges Problem mit Anhang b seiner Lösung. Unmittelbar nachdem ich das Home-Verzeichnis in var / www / html geändert hatte, konnte ich über ssh und sftp keine Verbindung zum Server herstellen, da immer die folgenden Fehler angezeigt werden
oder in FileZilla habe ich diesen Fehler erhalten:
Ich konnte jedoch über eine normale FTP-Verbindung auf den Server zugreifen.
Wenn Sie auf denselben Fehler gestoßen sind, machen Sie einfach den Anhang b der @ clone45-Lösung rückgängig, indem Sie das Standard-Ausgangsverzeichnis für den Benutzer festlegen:
Wenn Sie jedoch das Standard-Ausgangsverzeichnis des Benutzers festlegen, hat der Benutzer Zugriff auf viele andere Ordner außerhalb von / var / www / http. Führen Sie die folgenden Schritte aus, um Ihren Server zu sichern:
1- Nur sftponly-Gruppe erstellen Erstellen Sie eine Gruppe für alle Benutzer, deren Zugriff nur auf ftp und sftp auf var / www / html beschränkt werden soll. um die Gruppe zu machen:
2- Die Chroot sperren Um den Zugriff dieser Gruppe auf den Server über SFTP einzuschränken, müssen Sie die Chroot ins Gefängnis bringen, damit die Benutzer der Gruppe nicht auf einen Ordner außer dem HTML-Ordner in ihrem Ausgangsverzeichnis zugreifen können. Öffnen Sie dazu /etc/ssh/sshd.config im vim mit sudo. Am Ende der Datei kommentieren Sie bitte diese Zeile:
Und fügen Sie dann diese Zeile darunter hinzu:
Also haben wir das Subsystem durch internal-sftp ersetzt. Fügen Sie dann folgende Zeilen hinzu:
Nach dem Hinzufügen dieser Zeile habe ich meine Änderungen gespeichert und dann den SSH-Dienst neu gestartet durch:
3- Benutzer zur sftponly-Gruppe hinzufügen Jeder Benutzer, dessen Zugriff eingeschränkt werden soll, muss Mitglied der sftponly-Gruppe sein. Deshalb schließen wir uns sftponly an durch: sudo usermod -G sftponly username
4- Beschränken des Benutzerzugriffs auf nur var / www / html Um den Benutzerzugriff auf nur den Ordner var / www / html zu beschränken, müssen Sie ein Verzeichnis im Ausgangsverzeichnis (mit dem Namen 'html') dieses Benutzers erstellen und dann / var einbinden / www to / home / username / html wie folgt:
5- Festlegen des Schreibzugriffs Wenn der Benutzer Schreibzugriff auf / var / www / html benötigt, müssen Sie den Benutzer unter / var / www einsperren, der root: root-Besitz und Berechtigungen von 755 haben muss. Anschließend müssen Sie / var / angeben. www / html Besitz von root: sftponly und Berechtigungen von 775 durch Hinzufügen der folgenden Zeilen:
6- Blockieren des Shell-Zugriffs Wenn Sie den Zugriff auf den Nicht-Zugriff auf die Shell beschränken möchten, um die Sicherheit zu erhöhen, ändern Sie die Standard-Shell wie folgt in bin / false:
quelle
sudo mount --bind /var/www /home/username/html
mir gesagt, dass es keinen WWW-Ordner gibt. Ich gehe davon aus, dass dies vom Stamm aus erfolgt (wo sich der Ordner / home befindet).sudo chown root:www /var/www/html
Zustände chown: ungültige Gruppe: 'root: www'sudo usermod -s /sbin/nologin username
wegen der Standard-Shell-Einschränkungen des vsftpd-Pam-Moduls sein (und es scheint in meinem Fall besser zu funktionieren). Und Teil 4mount
muss bei jedem Neustart durchgeführt werden, daher ist es eine gute Idee, ihn in rc.local zu platzieren.Großartiger Artikel ... hat unter Amazon Linux AMI wie ein Kinderspiel funktioniert.
Zwei weitere nützliche Befehle:
So ändern Sie den Standard-FTP-Upload-Ordner
Schritt 1:
Schritt 2: Erstellen Sie einen neuen Eintrag am Ende der Seite:
Um Lese-, Schreib- und Löschberechtigungen auf die Dateien im Ordner anzuwenden, können Sie diese mit einem FTP-Gerät verwalten
quelle
Wenn Sie ufw aktiviert haben, denken Sie daran, ftp hinzuzufügen:
Ich habe 2 Tage gebraucht, um festzustellen, dass ich ufw aktiviert habe.
quelle
Es wird nicht in Ordnung sein, bis Sie Ihren Benutzer mit den folgenden Befehlen zur Gruppe www hinzufügen:
Dies löst das Berechtigungsproblem.
Legen Sie den Standardpfad fest, indem Sie Folgendes hinzufügen:
quelle
Vergessen Sie nicht, Ihre iptables-Firewall zu aktualisieren, wenn Sie eine haben, die die Bereiche 20-21 und 1024-1048 zulässt.
Tun Sie dies aus / etc / sysconfig / iptables
Zeilen wie folgt hinzufügen:
Und starten Sie iptables mit dem folgenden Befehl neu:
quelle
Ich habe die Schritte von clone45 vereinfacht:
Öffnen Sie die Ports wie erwähnt
quelle
Ich folgte der Antwort von clone45 bis zum Ende. Ein toller Artikel! Da ich den FTP-Zugriff benötigte, um Plug-Ins für eine meiner WordPress-Sites zu installieren, habe ich das Home-Verzeichnis in / var / www / mysitename geändert. Dann fügte ich meinen FTP-Benutzer wie folgt zur Apache- (oder WWW-) Gruppe hinzu:
Danach sah ich immer noch diesen Fehler auf der Installationsseite des WP-Plugins: "WordPress-Inhaltsverzeichnis (wp-content) konnte nicht gefunden werden". Diese Lösung wurde in einer Q & A-Sitzung auf wp.org gesucht und gefunden: https://wordpress.org/support/topic/unable-to-locate-wordpress-content-directory-wp-content und am Ende von wp- Folgendes hinzugefügt config.php:
Danach wurde mein WP Plugin erfolgreich installiert.
quelle
Vielleicht zusätzlich zur Antwort von clone45 erwähnenswert :
Hinweis: Probleme mit Schreibberechtigungen können wie folgt auftreten: FileZilla- Fehler:
Referenzen: Das
Korrigieren von Schreibberechtigungen für Chrooted-FTP-Benutzer in vsftpd
VSFTPd funktionierte nach dem Update nicht mehr
quelle
Falls Sie ein falsches 530-Passwort erhalten
1 weiterer Schritt erforderlich
in der Datei / etc / shells
Fügen Sie die folgende Zeile hinzu
/ bin / false
quelle
FileZila ist ein gutes FTP-Tool zum Einrichten mit Amazon Cloud.
Sie müssen diesen Schritt nur einmal ausführen. Später werden Inhalte auf dieselbe IP-Adresse und dieselbe Site hochgeladen.
quelle