So konfigurieren Sie FTP mit TLS in Ubuntu

So konfigurieren Sie FTP mit TLS in Ubuntu
FTP (Dateiübertragungsprotokoll) wird hauptsächlich zum Übertragen von Dateien zwischen Computern verwendet. FTP arbeitet in der Client-Server-Architektur, in der der Client nach einer Datei vom Server nach fragt und der Server die erforderliche Datei an den Client zurückgibt. Auf dem Client -Computer wird die FTP -Clientanwendung verwendet, um mit dem Server zu kommunizieren. Es ist auch möglich, auf den FTP -Server im Browser zuzugreifen. Standardmäßig kommuniziert FTP über einen unsicheren Kanal, aber es ist möglich, FTP zu konfigurieren, um Daten über einen sicheren Kanal zu übertragen. In diesem Tutorial erfahren Sie, wie Sie einen FTP -Server mit TLS konfigurieren und dann Dateizilla als Client -Anwendung verwenden, um eine Verbindung mit dem FTP -Server herzustellen.

Installieren von VSFTPD

VSFTPD (sehr sicherer FTP -Daemon) ist ein Softwareprogramm, mit dem FTP auf einem Server konfiguriert wird. In diesem Tutorial wird VSFTPD verwendet, um den FTP -Server auf der Maschine zu konfigurieren. Aktualisieren Sie vor der Installation von VSFTPD die Repositorys in Ihrem Server, indem Sie den folgenden Befehl ausgeben.

Ubuntu@Ubuntu: ~ $ sudo apt -Get -Update -y

Installieren Sie als nächstes VSFTPD mit dem folgenden Befehl.

Ubuntu@ubuntu: ~ $ sudo apt -Get Installieren Sie vsftpd -y

Überprüfen Sie schließlich die Installation, indem Sie die Version von VSFTPD mit dem folgenden Befehl überprüfen.

Ubuntu@ubuntu: ~ $ vsftpd -v

Der obige Befehl gibt die Version von VSFTPD aus, wenn die Installation erfolgreich ist.

FTP im aktiven Modus

Im aktiven Modus startet der FTP -Client die Sitzung, indem die TCP -Steuerungsverbindung von einem beliebigen zufälligen Port auf dem Client -Computer zum Port 21 des Servers erstellt wird. Anschließend startet der Client mit einem zufälligen Port X für eine Datenverbindung und informiert den Server über die TCP -Steuerverbindung, dass der Client auf die Datenverbindung auf Port X wartet. Danach stellt der Server eine Datenverbindung von seinem Port 20 zum Port X auf dem Client -Computer her.

Ein Problem kann auftreten, wenn sich der Kunde hinter einer Firewall befindet und Port X blockiert ist. In diesem Fall kann der Server keine Datenverbindung mit dem Client herstellen. Um dieses Problem zu vermeiden, wird der FTP -Server hauptsächlich im passiven Modus verwendet, den wir später in diesem Artikel diskutieren werden. Standardmäßig verwendet VSFTPD den passiven Modus, sodass wir ihn in den aktiven Modus ändern müssen.

Öffnen Sie zunächst die VSFTPD -Konfigurationsdatei.

Ubuntu@Ubuntu: ~ $ sudo nano /etc /vsftpd.Conf

Fügen Sie die folgende Zeile zum Ende der Datei hinzu.

pasv_enable = Nr

Stellen Sie außerdem sicher, dass die Option 'Connect_from_port_20' auf 'Ja gesetzt ist.'Diese Option stellt sicher, dass die Datenverbindung auf Port 20 des Servers festgelegt ist.

Erstellen Sie als Nächstes ein Verzeichnis, mit dem der FTP -Server Dateien speichern kann. Für dieses Tutorial konfigurieren wir '/home/ubuntu/ftp/' als Stammpfad für den FTP -Server.

Ubuntu@Ubuntu: ~ $ sudo mkdir/home/ubuntu/ftp

Geben Sie nun dieses Verzeichnis in der Konfigurationsdatei an, indem Sie die Option "Local_root" ändern. Der folgende Parameter konfiguriert den Stammpfad des Servers.

local_root =/home/ubuntu/ftp

Die Option 'write_enable' muss aktiviert sein, damit Benutzer auf den FTP -Server schreiben können.

Jedes Mal, wenn Sie die Konfigurationsdatei ändern, starten Sie den Server immer neu.

Ubuntu@Ubuntu: ~ $ sudo systemctl neu starten vsftpd

Festlegen eines Kennworts für einen Benutzer

Der FTP -Client stellt eine Verbindung mit dem Server mit einem Benutzernamen und einem Passwort her. Stellen Sie das Kennwort für Ihren Benutzer auf dem Computer mit dem folgenden Befehl ein.

Ubuntu@Ubuntu: ~ $ sudo passwd ubuntu

Im obigen Befehl wird nach dem Passwort für den Benutzer "Ubuntu" gefragt.

Konfigurieren der Firewall für den aktiven Modus

Wenn FTP im aktiven Modus verwendet wird, verwendet der FTP -Server zwei Ports, um mit dem Client zu kommunizieren, Ports 21 und 22. Port 21 wird verwendet, um Befehle an den Client weiterzuleiten, und Port 20 wird verwendet, um Daten an einen zufälligen Port des Clients zu übertragen. Wir werden UFW verwenden, um die Firewall auf dem Server zu konfigurieren. Installieren Sie UFW über den folgenden Befehl.

Ubuntu@ubuntu: ~ $ sudo apt-Get Install uFW

Jetzt öffnen wir auf der Serverseite die Ports 20, 21 und 22 (für die SSH -Verbindung).

Ubuntu@ubuntu: ~ $ sudo ufw erlauben von einem beliebigen Port -Proto -TCP

Aktivieren und überprüfen Sie den Status von UFW mit den folgenden Befehlen.

Ubuntu@Ubuntu: ~ $ sudo ufw aktivieren
Ubuntu@Ubuntu: ~ $ sudo ufw Status

NOTIZ: Wenn Sie Ihren FTP -Server in der Cloud konfigurieren, müssen Sie auch Ports 20, 21 und 22 in der Sicherheitsgruppe zulassen.

WARNUNG: Aktivieren Sie Port 22 immer zusammen mit den erforderlichen Ports, bevor Sie UFW auf dem Remote -System aktivieren. Standardmäßig blockiert UFW den Datenverkehr aus Port 22, sodass Sie mit SSH nicht auf Ihren Remote -Server zugreifen können, wenn Sie UFW aktivieren, ohne den Datenverkehr von Port 22 zuzulassen.

Installieren des FTP -Clients

Jetzt ist unser Server im aktiven Modus konfiguriert, und wir können auf der Clientseite darauf zugreifen. Für die Client -Anwendung verwenden wir Filezilla, eine FTP -Client -Anwendung. Installieren Sie FileZilla mit dem folgenden Befehl.

Ubuntu@ubuntu: ~ $ sudo apt -Get Installieren Sie FileZilla -y

Öffnen Sie die FTP -Client -Anwendung und geben Sie die öffentliche IP -Adresse und andere Anmeldeinformationen des FTP -Servers ein.

Wenn Sie auf "QuickConnect" klicken, stellen Sie eine Verbindung zum FTP -Server her und werden automatisch in das in der Option "local_root" angegebene Verzeichnis in der Konfigurationsdatei "/home/ubuntu/ftp" übertragen.

Probleme im aktiven Modus

Die Verwendung von FTP im aktiven Modus wirft Probleme auf, wenn sich der Kunde hinter der Firewall befindet. Nach dem Eingeben der anfänglichen Steuerbefehle kann der Port von der Firewall im Client blockiert werden. FTP kann im passiven Modus verwendet werden, um diese Firewall -Probleme zu lösen.

FTP im passiven Modus

Im passiven Modus erstellt der Client eine Steuerverbindung mit dem Server auf Port 21 des Servers. Der Client sendet dann den Befehl "PASV" von "PASV", um den Server darüber zu informieren, dass die Datenverbindung vom Client anstelle des Servers festgelegt wird. Als Antwort empfängt der Client die Server -IP und die Zufallsportnummer (diese Portnummer wird auf dem Server konfiguriert). Der Client verwendet diese IP- und Portnummer, um eine Datenverbindung mit dem Server zu erstellen. Im passiven Modus werden sowohl die Daten als auch die Steuerverbindungen vom Client festgelegt, sodass die Firewall die Kommunikation zwischen dem Client und dem Server nicht stört.

Öffnen Sie die FTP -Konfigurationsdatei in Ihrem bevorzugten Editor.

Ubuntu@Ubuntu: ~ $ sudo nano /etc /vsftpd.Conf

Setzen Sie die Option "pasv_enable" in "Ja" in der Datei, damit der Server im passiven Modus mit dem Client kommunizieren kann. Setzen Sie außerdem die Option 'local_root' fest, um das Root -Verzeichnis des Servers anzugeben und die Option "write_enable" auf "Ja" festlegen, damit Benutzer Dateien auf den Server hochladen können.

Wie bereits erwähnt, wird die Datenverbindung vom Client hergestellt, und der Server sendet seine öffentliche IP und einen zufälligen Port an den Client, um eine Datenverbindung zu erstellen. Dieser zufällige Port auf dem Server kann aus einem Bereich von Ports in der Konfigurationsdatei angegeben werden.

Die Datenverbindung zwischen dem Server und dem Client wird auf einem Port zwischen 1024 und 1048 festgelegt. Starten Sie den FTP -Server neu, nachdem Sie die Konfigurationsdatei geändert haben.

Ubuntu@Ubuntu: ~ $ sudo systemctl neu starten vsftpd

Konfigurieren der Firewall im passiven Modus

Wenn wir FTP im passiven Modus verwenden, wird die Datenverbindung über einen beliebigen Port von 1024 bis 1048 hergestellt, sodass alle diese Ports auf dem FTP -Server zuzulassen sind.

Ubuntu@ubuntu: ~ $ sudo ufw erlauben von einem beliebigen Port -Proto -TCP

Aktivieren Sie die UFW, nachdem Sie alle Ports auf der Firewall zugelassen haben, indem Sie den folgenden Befehl ausführen.

Ubuntu@Ubuntu: ~ $ sudo ufw aktivieren

Lassen Sie die Ports auf dem Server immer zu, bevor Sie die Firewall aktivieren. Andernfalls können Sie nicht über SSH als UFW auf Ihren Server zugreifen, der standardmäßig Port 22 blockiert.

Testen der Verbindung

Jetzt haben wir den FTP -Server im passiven Modus eingerichtet und können die FTP -Verbindung mit der Client -Anwendung überprüfen. Öffnen Sie dazu Filezilla in Ihrem System, dies zu tun.

Nachdem Sie den Host, den Benutzernamen, das Passwort und den Port eingegeben haben, können Sie jetzt eine Verbindung zu Ihrem Server herstellen. Nachdem Sie jetzt mit dem im passiven Modus ausgeführten FTP -Server verbunden sind, können Sie Dateien auf den Server hochladen.

Konfigurieren von SSL -Zertifikaten mit dem FTP -Server

Standardmäßig stellt der FTP -Server die Verbindung zwischen dem Client und dem Server über einen ungesicherten Kanal her. Diese Art der Kommunikation sollte nicht verwendet werden, wenn Sie sensible Daten zwischen dem Client und dem Server freigeben möchten. Um über einen sicheren Kanal zu kommunizieren, müssen SSL -Zertifikate verwendet werden.

Generieren von SSL -Zertifikaten

Wir werden SSL -Zertifikate verwenden, um eine sichere Kommunikation zwischen dem Client und dem Server einzurichten. Wir werden diese Zertifikate mit OpenSSL generieren. Der folgende Befehl generiert SSL -Zertifikate für Ihren Server.

Ubuntu@Ubuntu: ~ $ sudo opensensl req -x509 -nodes -day 365 -Newkey RSA: 2048 -Keyout/etc/ssl/privat/vsftpd.pem -out/etc/ssl/privat/vsftpd.Pem

Wenn Sie den obigen Befehl ausführen, werden Sie einige Fragen gestellt. Nachdem Sie diese Fragen beantwortet haben, werden die Zertifikate generiert. Sie können nach den Zertifikaten im Terminal suchen.

Ubuntu@ubuntu: ~ $ sudo ls/etc/ssl/privat/

Verwenden von Zertifikaten in der Konfigurationsdatei

Jetzt sind unsere Zertifikate verwendet zu verwenden. Wir werden das 'vsftpd konfigurieren.Conf 'Datei, um die SSL -Zertifikate für die Kommunikation zu verwenden. Öffnen Sie die Konfigurationsdatei mit dem folgenden Befehl.

Ubuntu@Ubuntu: ~ $ sudo nano /etc /vsftpd.Conf

Fügen Sie die folgenden Zeilen zum Ende der Dateien hinzu. Diese Änderungen stellen sicher, dass der FTP -Server die neu generierten SSL -Zertifikate verwendet, um sicher mit dem Client zu kommunizieren.

ssl_enable = ja
cross_local_data_ssl = Nr. Nr
cross_local_logins_ssl = Nr
SSL_TLSV1 = Ja
SSL_SSLV2 = Nr
SSL_SSLV3 = Nr
RSA_CERT_FILE =/etc/ssl/privat/vsftpd.Pem
rsa_private_key_file =/etc/ssl/privat/vsftpd.Pem

Starten Sie den FTP -Server neu, um diese Änderungen anzuwenden.

Ubuntu@Ubuntu: ~ $ sudo systemctl neu starten vsftpd

Versuchen Sie nach der Neustart des Server. In diesem Zeitpunkt wird in der Client -Bewerbung Sie gefragt, ob Sie diesen Zertifikaten vertrauen sollen.

Wenn Sie Zertifikate von einer vertrauenswürdigen Zertifikatsbehörde haben, sollte diese Warnung nicht angezeigt werden. Wir haben unsere Zertifikate mit OpenSSL generiert, was keine vertrauenswürdige Zertifikatsbehörde darstellt. Jetzt können wir zwischen dem Client und dem Server über einen sicheren Kanal kommunizieren.

Anonyme Konfiguration

Sie können auch eine anonyme Anmeldung auf Ihrem FTP -Server aktivieren. Mit dieser konfigurierten Konfiguration kann sich jeder Benutzer mit einem beliebigen Benutzernamen und Kennwort auf dem FTP -Server anmelden. Die folgenden Parameter in der Konfigurationsdatei machen den FTP -Server anonym zugänglich.

Die obige Konfiguration setzt den Root -Pfad für anonyme Benutzer auf '/home/ubuntu/ftp/anon' und fordert das Kennwort nicht auf, wenn sich ein anonymer Benutzer anmeldet.

NOTIZ: Stellen Sie sicher, dass der Pfad '/Home/Ubuntu/FTP/Anon' auf dem FTP -Server vorhanden ist.

Starten Sie nun den FTP -Server neu.

Ubuntu@Ubuntu: ~ $ sudo systemctl neu starten vsftpd

Nach dem Neustart des Servers versuchen wir, über den Google Chrome -Browser eine Verbindung zum Server herzustellen. Gehen Sie zur folgenden URL.

ftp: // 3.8.12.52

Die obige URL führt Sie zum Stammverzeichnis des FTP -Servers, wie in der Konfigurationsdatei angegeben. Wenn Sie mit einem anonymen Anmeldung deaktiviert sind, werden Sie zuerst nach Authentifizierung gebeten, wenn Sie versuchen, eine Verbindung zum FTP -Server mit einem Browser herzustellen, und dann werden Sie in das Stammverzeichnis des Servers gebracht.

Konfigurieren Sie den lokalen Zugriff

Wir können den lokalen Zugriff auf den FTP -Server auch zulassen oder blockieren, indem wir die Konfigurationsdatei ändern. Derzeit können wir auf unseren FTP -Server lokal zugreifen, ohne die FTP -Client -Anwendung zu verwenden, aber wir können diesen Zugriff blockieren. Dazu müssen wir den Parameter 'local_enable' ändern.

Starten Sie zunächst den FTP -Server neu.

Ubuntu@Ubuntu: ~ $ sudo systemctl neu starten vsftpd

Versuchen Sie nach dem Neustart des Server. Melden Sie sich mit SSH auf Ihren Remote -Server an.

Ubuntu@Ubuntu: ~ $ ssh [email protected] -i

Geben Sie nun den folgenden Befehl aus, um sich lokal auf dem FTP-Server mit der Befehlszeilenschnittstelle anzumelden.

Ubuntu@Ubuntu: ~ $ ftp localhost

Wenn Sie den obigen Befehl ausführen, wird ein 500 -Fehler geworfen.

Abschluss

Das Dateiübertragungsprotokoll wird seit vielen Jahren zum Übertragen von Dateien und Dokumenten über das Internet verwendet. VSFTPD ist eines der Pakete, die als FTP -Server auf Ihrem Computer verwendet werden. VSFTPD enthält verschiedene Konfigurationen, mit denen Sie Ihren FTP -Server anpassen können. Dieses Tutorial hat Ihnen gezeigt, wie Sie einen FTP -Server mit TLS für erweiterte Sicherheit konfigurieren. Weitere Informationen zu FTP -Konfigurationen finden Sie im folgenden Link.

http: // vsftpd.Biester.org/vsftpd_conf.html