ProFTPD Installation

  • In diesem Tutorial möchte ich euch zeigen wie einfach es ist ProFTPD, auf eurem Server zu installieren und zu konfigurieren.
    Außerdem versuche ich über einige Anfänger Fehler aufzuklären.
    1. Installation:

    Als Erstes müssen wir unseren ProFTPD-Server installieren, da es nicht bei allen Server Instanzen vorinstalliert ist.

    Code
    apt-get install proftpd


    2. Konfiguration:

    Nach einer erfolgreichen Installation müssen wir noch einige Änderungen an unserem FTP-Server vornehmen.

    Standardmäßig kann man sich zum Beispiel per SSH bzw. Shell einloggen, was nicht der Zweck ist.


    Um die Shell zu deaktivieren erzeugen wir erst eine "Fake" Shell welche später für den Login nicht genutzt werden kann.

    Code
    ln -s /bin/false /sbin/nologin


    Als Nächstes müssen wir unsere Shell noch allgemein für den Server registrieren.

    Dafür könnt ihr entweder manuell die Datei bearbeiten oder den Eintrag automatisch über den Befehl beifügen.

    Code
    echo /sbin/nologin >>/etc/shells


    Da ProFTPD Standardmäßig prüfen tut, ob es sich um eine "Echte" Shell handelt müssen wir dies auch noch deaktivieren.

    Der Eintrag in der Config ist meist mit einem "#" deaktiviert, falls der Eintrag aber nicht zu finden muss er manuell beigetragen werden.

    Alle unteren Config Variablen werden unter "/etc/proftpd/proftpd.conf" eingetragen.

    Code
    RequireValidShell off


    Jetzt wäre der Server schonmal ein "Richtiger" FTP Server der nicht mit einer Shell nutzbar ist.

    Wer bereits versucht hat irgendwas hochzuladen oder zu löschen, wird gemerkt haben, dass nur Fehler erscheinen.

    Der Grund dafür ist meist, dass der Server kein Home Verzeichnis für den Nutzer zugewiesen bekommen hat.

    Er versucht nun aus "/home/{Nutzer}" Dateien zu lesen, aber was ist nun, wenn wir einen anderen Pfad brauchen?

    Code
    DefaultRoot ~


    Bei einer falschen Verschlüsselung werden oft Fehler von der aktuellen Session des FTP Clients erscheinen.

    Für den normalen Gebrauch ist dies aber nicht dringend notwendig, weshalb wir es einfach ausstellen.

    Code
    TLSOptions NoSessionReuseRequired


    Um unsere Änderungen wirksam zu machen, müssen wir den ProFTPD Dienst neustarten.

    Code
    service proftpd restart


    3. Benutzer anlegen

    Wir haben dem Server bereits mitgeteilt, dass wir eine "Fake" Shell ignorieren.

    Damit das ganze jetzt aber noch reibungslos funktioniert, müssen wir dem Nutzer selbst noch die Shell zuweisen.

    Code
    useradd {Nutzername} -d {Verzeichnis} -s /sbin/nologin


    Jetzt haben wir den Benutzer erstellt und ihm ein Verzeichnis zugewiesen.

    Damit der Benutzeraccount auch nutzbar ist, müssen wir ihm noch ein Passwort vergeben.

    Code
    passwd {Nutzername}


    Damit der Benutzer in seinem Verzeichnis nun Dateien/Ordner hochladen/editieren kann, müssen wir ihm noch die benötigten Rechte setzten

    Code
    chmod 777 {Verzeichnis}


    4. Schluss

    Ich hoffe, dass ich mit diesem Tutorial einigen von euch weiterhelfen kann.

    Bei Fehlern oder Verbesserungsvorschlägen würde ich mich über eine kleine Rückmeldung freuen.


    !! FROHES SCHAFFEN !!


    Mit freundlichen Grüßen

    Jan H.