FTP (File Transfer Protocol) ist wahrscheinlich die beliebteste Methode zum Hochladen von Dateien auf einen Server. ProFTPD ist ein beliebter und einfach konfigurierbarer FTP-Server für Linux-Systeme, der SSL/TLS-Verschlüsselung unterstützt.
FTP ist ein unsicheres Protokoll, da alle Passwörter und alle Daten im Klartext (als Klartext) übertragen werden. Durch die Verwendung von TLS kann die gesamte Kommunikation verschlüsselt werden, wodurch FTP ein sicheres Protokoll zum Übertragen von Dateien wird. Dieser Artikel beschreibt wie man proftpd mit TLS in Ubuntu Server 15.04 konfiguriert .
Voraussetzungen
- Ubuntu-Server 15.04 64-Bit
- sudo/root-Berechtigungen
Was wir in diesem Tutorial tun werden:
- Installieren Sie Proftpd und OpenSSL
- Proftpd konfigurieren
- Benutzer konfigurieren
- TLS mit proftpd konfigurieren
- Testen
Installieren Sie Proftpd und OpenSSL
Proftpd und OpenSSL sind im Ubuntu-Repository verfügbar und können mit dem Befehl apt installiert werden. Wie bei Installationsbefehlen üblich, führen wir den apt-Befehl über sudo aus, um ihn mit Root-Rechten auszuführen:
sudo apt-get install -y proftpd openssl
Wenn die Installation beginnt, werden Sie gefragt, ob Sie Proftpd als inetd- oder eigenständigen Dienst ausführen möchten. Wählen Sie hier die eigenständige Option und dann Ok.
Proftpd konfigurieren
Sobald Proftpd installiert ist, müssen Sie einige Konfigurationsdateien ändern. Die Proftpd-Konfigurationsdatei befindet sich im Verzeichnis /etc/proftpd/. Ich werde die proftpd.conf-Datei mit dem Nano-Editor bearbeiten.
cd /etc/proftpd/
nano proftpd.conf
Ändern Sie in der Zeile ServerName den Namen in Ihren Hostnamen oder Ihre Domain:
ServerName "myhostname"
Entkommentieren Sie DefaultRoot:
# Use this to jail all users in their homes DefaultRoot ~
und Proftpd neu starten:
systemctl restart proftpd
Fügen Sie einen FTP-Benutzer hinzu
Es gibt zwei gängige Möglichkeiten, auf einen FTP-Server zuzugreifen:
1.Anonymes FTP , FTP-Server bietet jedem Zugriff, ohne dass ein Benutzerkonto und ein Passwort erforderlich sind.
2. Zugriff mit Benutzername und Passwort , nur Nutzer, die über ein Nutzerkonto und Passwort verfügen, die auf den FTP-Server zugreifen können.
Ich werde Option 2 hier konfigurieren. Anonymes FTP war zu Beginn des Internetzeitalters beliebt, aber heute würden anonyme FTP-Server so häufig missbraucht, dass diese Option nur in geschlossenen Umgebungen wie einem Heim- oder Firmennetzwerk verwendet werden kann.
Bevor Sie einen Benutzer für Proftpd erstellen, fügen Sie bitte /bin/false zu Ihrer /etc/shells-Datei hinzu.
echo "/bin/false" >> /etc/shells
und jetzt erstellen Sie einen Benutzer mit einem Home-Verzeichnis, auf das er per FTP zugreifen kann. Ich werde den Shell-Zugriff für diesen Benutzer deaktivieren, indem ich ihm die Shell „/bin/false“ zuweise, um sicherzustellen, dass er sich nicht per SSH anmelden kann. Mein Nutzername heißt „yuuki“, bitte ersetzen Sie yuuki im nächsten Befehl durch Ihren Nutzernamen.
adduser --home /home/yuuki --shell /bin/false yuuki
Der obige Befehl erstellt einen neuen Benutzer namens yuuki mit dem Home-Verzeichnis /home/yuuki/ und ohne Shell-Zugriff /bin/false.
Und jetzt konfigurieren Sie Proftpd so, dass der Benutzer yuuki auf den FTP-Server zugreifen kann.
cd /etc/proftpd/
nano proftpd.conf
fügen Sie diese Konfiguration hinzu, damit sich Benutzer yuuki anmelden und Dateien in/aus seinem Home-Verzeichnis /home/yuuki hochladen/herunterladen kann:
<Directory /home/yuuki> Umask 022 022 AllowOverwrite off <Limit LOGIN> AllowUser yuuki DenyALL </Limit> <Limit ALL> Order Allow,Deny AllowUser yuuki Deny ALL </Limit> <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD> AllowUser yuuki Deny ALL </Limit> </Directory>
und starten Sie dann den Proftpd neu.
systemctl restart proftpd
Bis zu diesem Zeitpunkt kann FTP bereits ohne Verschlüsselung verwendet werden. Jetzt machen wir es sicher, indem wir TLS aktivieren.
TLS in Proftpd konfigurieren
Zur Verwendung von TLS müssen Sie ein SSL-Zertifikat erstellen. Ich erstelle das SSL-Zertifikat mit dem OpenSSL-Befehl:
openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
Der Befehl generiert eine Zertifikatsdatei proftpd.crt im /etc/ssl/certs/-Verzeichnis und eine Zertifikatsschlüsseldatei proftpd.key im /etc/ssl/private/-Verzeichnis.
Ändern Sie die Dateiberechtigungen der Zertifikatsdateien auf 600 um den Zugriff durch andere Nutzer zu verhindern:
chmod 600 /etc/ssl/certs/proftpd.crt
chmod 600 /etc/ssl/private/proftpd.key
Gehen Sie nun zurück zum Proftpd-Verzeichnis und konfigurieren Sie Proftpd so, dass es das von Ihnen generierte SSL-Zertifikat verwendet.
cd /etc/proftpd/
nano proftpd.conf
Entkommentieren Sie die tls-Zeile:
Include /etc/proftpd/tls.conf
Speichern Sie es und bearbeiten Sie die tls-Datei:
nano tls.conf
Entkommentieren Sie alle diese Zeilen:
TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSRSACertificateFile /etc/ssl/certs/proftpd.crt TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key TLSOptions NoCertRequest TLSVerifyClient off TLSRequired on
Speichern und schließen. Der letzte Schritt besteht darin, den Proftpd-Server neu zu starten:
systemctl restart proftpd
Testen
Um die Konfiguration zu testen, versuchen Sie, sich mit einem FTP-Client mit Ihrem FTP-Server zu verbinden. Ich verwende FileZilla hier. Geben Sie die Server-IP, den Benutzernamen, das Passwort und den Port ein:
Server IP : 192.168.1.108 username : yuuki Password ****** Port : 21
und klicken Sie dann auf Schnellverbindung. Sie werden aufgefordert, das SSL-Zertifikat zu bestätigen, klicken Sie einfach auf OK.
Nun sind Sie mit dem TLS/SSL-Zertifikat beim FTP-Server angemeldet .