Wie richte ich einen FTP-Server und einen FTP-Benutzer auf meiner Lightsail Instance ein?
Ich möchte einen File Transfer Protocol-Server (FTP) und einen FTP-Benutzer auf meiner Amazon Lightsail-Instance einrichten, auf der Amazon Linux 2, CentOS, Ubuntu oder Debian ausgeführt wird.
Lösung
Hinweis: FTP überträgt alle Daten und Passwörter als Klartext. Das SSH File Transfer Protocol (SFTP) ist eine sicherere Methode, um eine Verbindung zu Ihrer Instance herzustellen und Daten zu übertragen. Informationen zur Verwendung von SFTP finden Sie unter Herstellen einer Verbindung zu Ihrer Linux- oder Unix-Instance in Amazon Lightsail mithilfe von SFTP.
Einen FTP-Server und einen FTP-Benutzer einrichten
1. Führen Sie den folgenden Befehl aus, um das VSFTPD-Paket zu installieren:
Amazon Linux 2 und CentOS:
sudo yum install vsftpd -y
Ubuntu und Debian:
sudo apt install vsftpd -y
Wenn Sie eine Fehlermeldung erhalten, die besagt, dass das Paket nicht verfügbar ist, führen Sie den folgenden Befehl aus, um die Paketlisten zu aktualisieren:
sudo apt update -y
2. Bearbeiten Sie die Datei vsftpd.config, um die Variablen für Ihre Umgebung zu aktualisieren.
Der Speicherort der Datei vsftpd.config variiert je nach Betriebssystem:
- Amazon Linux 2 und CentOS: /etc/vsftpd/vsftpd.conf
- Debian und Ubuntu: /etc/vsftpd.conf
Aktualisieren Sie im folgenden Beispiel die Variablen für Ihren Anwendungsfall. Die folgenden Parameter sind für alle Betriebssystemen gleich.
anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=NO xferlog_std_format=YES chroot_local_user=YES allow_writeable_chroot=YES listen=YES pam_service_name=vsftpd userlist_enable=YES userlist_deny=NO listen_port=10021 pasv_enable=YES pasv_min_port=21000 pasv_max_port=21999 pasv_addr_resolve=NO
Hinweis: Port 21 ist der Standardport für FTP. Aus Sicherheitsgründen wird im vorherigen Beispiel jedoch der benutzerdefinierte Port 10021 als FTP-Port verwendet. Um den Port anzupassen, ändern Sie den listen_port auf den gewünschten Port und setzen Sie connect_from_port_20 auf NEIN. Stellen Sie sicher, dass Sie die Ports, die Sie für FTP verwenden möchten, auf Ihrer Instance-Firewall aktivieren. Für das vorherige Beispiel sind die Ports 10021 und 21000–21999 auf der benutzerdefinierten Firewall und der Lightsail-Firewall aktiviert. Außerdem können die Parameter listen und listen_ipv6 nicht gleichzeitig in der Datei enthalten sein. Aktualisieren Sie Ihre Konfigurationsdatei, sodass nur eine Datei auf JA gesetzt ist.
Die folgenden Parameter sind betriebssystemspezifisch. Bearbeiten Sie zusätzlich zum vorherigen Beispiel die folgenden Variablen für Ihr Betriebssystem.
Amazon Linux 2 und CentOS
chroot_list_file=/etc/vsftpd/chroot_listuserlist_file=/etc/vsftpd/user_list
Debian und Ubuntu:
chroot_list_file=/etc/vsftpd.chroot_listuserlist_file=/etc/vsftpd.userlist
3. Führen Sie den folgenden Befehl aus, um den FTP-Benutzer hinzuzufügen:
sudo useradd -m ftp_user
Hinweis: Ersetzen Sie im vorherigen Beispiel ftp_user durch einen Benutzernamen Ihrer Wahl.
4. Führen Sie den folgenden Befehl aus, um ein Passwort für den Benutzer zu erstellen:
sudo passwd ftp_user
5. Führen Sie den folgenden Befehl aus, um den Eigentümer der Datei /home/ftp_user zu ändern. Dieser Befehl macht ftp_user zum Eigentümer der Datei.
sudo chown ftp_user:ftp_user -R /home/ftp_user/
6. Führen Sie den folgenden Befehl aus, um den neuen Benutzer zu vsftpd user_list hinzuzufügen. Verwenden Sie das Flag -a, um es an die Datei anzuhängen.
Amazon Linux 2 und CentOS
sudo echo "ftp_user" | sudo tee -a /etc/vsftpd/user_list
Debian und Ubuntu
Führen Sie den folgenden Befehl aus, um die Datei userlist zu erstellen und den neuen Benutzer zur Datei hinzuzufügen:
sudo echo "ftp_user" | sudo tee -a /etc/vsftpd.userlist
7. Starten Sie den Dienst vsftpd neu:
sudo systemctl restart vsftpd
8. Stellen Sie eine Verbindung zum FTP-Server her. Das folgende Beispiel verwendet Filezilla Plain FTP.
Status: Connecting to 54.xxx.xxx.x2:10021... Status: Connection established, waiting for welcome message... Status: Plain FTP is insecure. Please switch to FTP over TLS. Status: Logged in Status: Retrieving directory listing... Status: Server sent passive reply with unroutable address. Using server address instead. Status: Calculating timezone offset of server... Status: Timezone offset of server is 0 seconds. Status: Directory listing of "/" successful Status: Connecting to 54.xxx.1xx.52:10021... Status: Connection established, waiting for welcome message... Status: Plain FTP is insecure. Please switch to FTP over TLS. Status: Logged in Status: Starting upload of C:\Users\Administrator\Documents\FTPtest.txt Status: Server sent passive reply with unroutable address. Using server address instead. Status: File transfer successful, transferred 10 bytes in 1 second Status: Retrieving directory listing of "/"... Status: Server sent passive reply with unroutable address. Using server address instead. Status: Directory listing of "/" successful
Fehlerbehebung bei der Einrichtung eines FTP-Servers
Wenn die Parameter der Konfigurationsdatei vsftpd.conf nicht korrekt eingestellt sind, startet der FTP-Server möglicherweise nicht. Führen Sie in diesem Fall den folgenden Befehl aus, um die Optionen zu ermitteln, die nicht korrekt konfiguriert sind:
Amazon Linux 2 und CentOS
sudo /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Debian und Ubuntu
sudo /usr/sbin/vsftpd /etc/vsftpd.conf
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 9 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 10 Monaten
- AWS OFFICIALAktualisiert vor 8 Monaten