Wie richte ich einen FTP-Server und einen FTP-Benutzer auf meiner Lightsail Instance ein?

Lesedauer: 4 Minute
0

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
AWS OFFICIAL
AWS OFFICIALAktualisiert vor 10 Monaten