SFTP-Zugang unter Ubuntu 16.04 anlegen

Aus Nitradopedia
Wechseln zu: Navigation, Suche
Public Cloud Server.jpg

Melde dich hier zur Closed Beta an

Um sein LAMP System vereinfacht administrieren zu können empfiehlt es sich neben PHPMyAdmin auch einen FTP-Zugang einzurichten. In unserem Beispiel verwenden wir hierfür "vsftpd".

Installation

vsftpd lässt sich direkt über den Paketmanager über folgenden Befehl installieren:

#apt-get install vsftpd

Rechteverwaltung

Gruppe erstellen

Nach der Installation ist es empfehlenswert einen neue Gruppe zu erstellen um Nutzer für den FTP-Zugang besser verwalten zu können. In unserem Beispiel nennen wir die Gruppe ftpnutzer. Gruppen kann man über direkt folgenden Befehl erstellen:

#groupadd ftpnutzer

Nutzer anlegen

Nun legen wir unseren ersten Nutzer "Nutzer1" an und fügen ihn unserer Gruppe ftpnutzer hinzu . Gleichzeitig erhält dieser Zugriff auf das /var/www Verzeichnis. Um dies zu realisieren genügt folgender Befehl:

#useradd -g ftpnutzer -d /var/www Nutzer1

Ist der Benutzer angelegt, kann das Passwort direkt über folgenden Befehl gesetzt werden:

#passwd Nutzer1

Rechtevergeben

Im letzten Schritt werden die Dateisystemrechte für das Root-Verzeichnis noch entsprechend angepasst, damit die FTP-Benutzergruppe auch lesen und schreiben darf:

#chown -R www-data:ftpnutzer /var/www

#chmod -R 775 /var/www


Konfiguration anpassen

Die Konfigurationsdatei ist unter folgendem Pfad zu finden: /etc/vsftpd.conf

Um diese zu öffnen kann man folgenden Befehl verwenden:

#nano /etc/vsftpd.conf


Die folgenden Zeilen zeigen die Änderungen die abweichend zur Standardkonfiguration vorgenommen wurden. Beachten Sie, dass sich zwischen Konfigurationsparameter, = und Wert keine Leerzeichen befinden dürfen.

# Allow anonymous FTP? (Disabled by default)
anonymous_enable=NO
 
local_umask = 022
 
# Uncomment this to allow local users to log in.
local_enable=YES
# Uncomment this to enable any form of FTP write command.
write_enable=YES
# chroot_list_enable below.
chroot_local_user=YES
 
# You may fully customise the login banner string:
ftpd_banner=Welcome @home baby!
 
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
nopriv_user=www-data
 
 
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list

Zugang absichern

Userlist

Um den Zugriff kontrollieren zu können empfiehlt es sich von der Funktion "Userlist" gebrauch zu machen. Hierbei handelt es sich um eine Textdatei welche eine Auflistung aller lokalen Benutzer die sich per FTP anmelden dürfen enthält. Diese kann über folgenden Befehl erstellt werden:

#nano /etc/vsftpd.user_list

Hier können nun die Namen der angelegten Nutzern eingetragen werden. Zu beachten ist hierbei dass lediglich ein Name pro Zeile verwendet wird.

Shell Zugriff

Da ein angelegter Nutzer standartmäßig Shellzugriff erhält sollte dies über die folgende Methode blockiert werden.

Zunächst müssen Sie die verwendete Shell für die einzelnen FTP-Benutzer in der Datei /etc/passwd von /bin/bash auf /bin/false ändern. Diese lässt sich über folgenden Befehl öffnen: #nano /etc/passwd Für unseren FTP-Benutzer würde der Eintrag damit in etwa wie folgt lauten:

Nutzer1:x:1000:1000::/var/www:/bin/false

Danach muss noch die Sicherheitseinstellung im pam-Modul umkonfiguriert werden. Dazu kommentieren Sie die folgende Zeile in der Datei /etc/pam.d/vsftpd aus (#nano /etc/pam.d/vsftpd):

auth required pam_shells.so

Hierbei ist einfach eine Raute vor die Zeile zu setzen.

Verbindung testen

Im letzten Schritt kann die Verbindung über einen FTP-Client wie Beispielsweise FTP - WinSCP versucht werden. Hierzu entsprechend Bei "Server" die IP-Adresse des Servers angeben. Bei "Benutzername" der angelegte Benutzer und bei "Passwort" das angelegte Passwort. Wichtig ist hierbei den Port 22 zu verwenden, da hierbei auf SFTP gesetzt wird.