- 1. FTP-Server installieren - ProFTPD
- 1.1. Eigentliche Installation
- 1.2. Konfiguration von ProFTPD
- 1.3. Neustart des FTP-Servers
- 1.4. SSL/TLS-verschlüsselte FTP-Verbindung einrichten
- 1.5. SSL/TLS-verschlüsselte FTP-Verbindung konfigurieren
- 1.6. Nutzer einrichten
- 1.7. Anonymous Zugang einrichten
- 1.8. Nutzer für anonymen Zugriff erstellen
Den dritten Teil der Installatationanleitung hatte ich mit der Einrichtung von Putty und SSH beendet. Im 2. Teil war zu sehen, dass auch bereits ein Webserver (Apache) installiert wird. Wir haben also jetzt bereits einen zwar rudimentären, aber funktionierenden Webserver auf der Basis des Debian Linux 9 Stretch in der virtuellen Maschine. Im folgenden geht es um den weiteren Ausbau des Servers (insbesondere die Installation von PHP und FTP) und die Konfiguration der Komponenten.
FTP-Server installieren - ProFTPD
Eigentliche Installation
Meist wird ProFTPD als FTP-Server auf Debian Distributionen verwendet. Einige Quellen, in denen das beschrieben wird sind:
https://www.thomas-krenn.com/de/wiki/FTP-Server_unter_Debian_einrichten
und
https://hosting.1und1.de/digitalguide/server/konfiguration/eigenen-debian-ftp-server-mit-proftpd-einrichten/
Vor der Installation neuer Pakete sollte man zunächst prüfen, ob die bereits installierten Pakete auf dem aktuellsten Stand sind:
apt-get update
apt-get upgrade
Das brachte die folgenden Updates
Die folgenden Pakete werden aktualisiert (Upgrade):
apache2 apache2-bin apache2-data apache2-doc apache2-utils base-files
ca-certificates discover dpkg file libdiscover2 libldap-2.4-2 libldap-common
libmagic-mgc libmagic1 libpam-systemd libsystemd0 libudev1 libxapian30
python3-reportbug reportbug shared-mime-info systemd systemd-sysv udev
Jetzt erfolgt die eigentliche Installation mit
apt-get install proftpd-basic
Bei der Installation werden weitere Pakete installiert:
The following additional packages will be installed:
libmemcached11 libmemcachedutil2
Vorgeschlagene Pakete:
openbsd-inetd | inet-superserver proftpd-doc proftpd-mod-ldap proftpd-mod-mysql proftpd-mod-odbc
proftpd-mod-pgsql proftpd-mod-sqlite proftpd-mod-geoip
Die folgenden NEUEN Pakete werden installiert:
libmemcached11 libmemcachedutil2 proftpd-basic
Während der Installation werden neue Nutzer und Gruppen angelegt:
Warnung: Auf das von Ihnen angegebene Home-Verzeichnis /run/proftpd kann nicht zugegriffen werden: No such file or directory
Lege Systembenutzer »proftpd« (UID 107) an ...
Lege neuen Benutzer »proftpd« (UID 107) mit Gruppe »nogroup« an ...
Erstelle Home-Verzeichnis »/run/proftpd« nicht.
Lege Systembenutzer »ftp« (UID 108) an ...
Lege neuen Benutzer »ftp« (UID 108) mit Gruppe »nogroup« an ...
Erstelle Home-Verzeichnis »/srv/ftp« ...
Konfiguration von ProFTPD
Konfigurationsdatei anlegen:
touch /etc/proftpd/conf.d/custom.conf
und mit
mcedit /etc/proftpd/conf.d/custom.conf
so füllen:
# Ftp user doesn't need a valid shell
<Global>
RequireValidShell off
</Global>
# If desired turn off IPv6
UseIPv6 off
# Default directory is ftpusers home
DefaultRoot ~ ftpuser
# Limit login to the ftpuser group
<Limit LOGIN>
DenyGroup !ftpuser
</Limit>
Neustart des FTP-Servers
systemctl restart proftpd.service
SSL/TLS-verschlüsselte FTP-Verbindung einrichten
Überprüfung mit
proftpd -vv | grep tls
zeigt, dass es bereits installiert ist. Jetzt brauchen wir ein Zertifikat:
apt install ssl-cert
ist im konkreten Fall schon installiert. Zertifikat erstellen:
make-ssl-cert generate-default-snakeoil --force-overwrite
Anzeigen mit
ls -la /etc/ssl/certs/ssl-cert-snakeoil.pem
ls -la /etc/ssl/private/ssl-cert-snakeoil.key
SSL/TLS-verschlüsselte FTP-Verbindung konfigurieren
Datei anlegen:
touch /etc/proftpd/conf.d/tls.conf
und mit
mcedit /etc/proftpd/conf.d/tls.conf
füllen:
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSRSACertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
TLSRSACertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
TLSVerifyClient off
TLSRequired on
</IfModule>
Neustart des FTP-Servers
systemctl restart proftpd.service
Nutzer einrichten
adduser ftpuser01 --shell /bin/false --home /var/www/ftpuser01
Die Meldungen sind:
Lege Benutzer »ftpuser01« an ...
Lege neue Gruppe »ftpuser01« (1001) an ...
Lege neuen Benutzer »ftpuser01« (1001) mit Gruppe »ftpuser01« an ...
Erstelle Home-Verzeichnis »/var/www/ftpuser01« ...
Kopiere Dateien aus »/etc/skel« ...
Als Passwort wurde pasewalk
eingegeben. Allerdings wurde das angegebene Home-Verzeichnis nicht erstellt. Dies geschieht aber zu einem späteren Zeitpunkt automatisch.
Login funktioniert aber nicht!!!
Anonymous Zugang einrichten
Konfigurationsdatei erstellen:
touch /etc/proftpd/conf.d/anon.conf
und mit
mcedit /etc/proftpd/conf.d/anon.conf
füllen:
<Anonymous ~ftpuser>
User ftp
Group ftp
# Users can also login with ftp
UserAlias anonymous ftp
# All files belong to ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 10
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
Nutzer für anonymen Zugriff erstellen
adduser ftp ftpuser