VSFTP Howto (Wheezy)

Einrichten eines FTP Server mit Hilfe von Vsftp (Very Secure FTP) unter Debian Wheezy

Update 01.02.2014: Debian Wheezy User erhalten „OOps refusing to run with writeable root inside chroot“: Blog-Kollege Maltris hat die Lösung!

Video How-To online

Weitere Videos auf: www.youtube.com/pchowtoforyou

Update: 13.09.2012: Verzeichnisberechtigungen

Ich habe mich dazu entschieden, gleich hier am Anfang noch etwas betreffend die Verzeichnisberechtigungen auf dem Linuxserver zu schreiben.

Wenn ihr die unten angeführte Konfiguration übernehmt, werden Dateien beim Transfer auf den FTP Server mit den Berechtigungen 644 erstellt. Das bedeutet, dass der Besitzer der Datei (in der Regel der FTP User) lesen und schreiben darf. Die Gruppe darf nur lesen. Ebenso dürfen alle anderen nur lesen.

Allerdings werden Ordner, die per FTP übertragen werden mit 777 übertragen. Hier empfehle ich per chmod  755 Ordnername nachzubessern, oder aber z.B.: per Filezilla die Verzeichnisberechtigungen zu ändern. (Geht in Filezilla recht komfortabel, da man die Berechtigungen u.a.  nur auf Ordner anwenden kann).

755 = Besitzer hat rwx, Gruppe hat rx, ebenso haben „alle andren“ rx.

 Nun aber zur eigentlichen Konfiguration

Vsftp ist ein relativ kompakter FTP Server, der eine Vielzahl von Konfigurationsmöglichkeiten bietet. Ich versuche in diesem How-To zu erklären, wie man VSFTP installiert und in Betrieb nimmt.

Downloadmöglichkeit der Konfigurationsfiles

Die oben verlinkten Konfigurationsfiles können heruntergeladen und in die entsprechenden Ordner kopiert werden. Ich rate allerdings dazu die bereits vorhandenen Files zu sichern, bevor die Downloaddateien verwendet werden.

Installation

Die Installation wird unter Debian Squeeze vorgenommen. Da ich davon ausgehe, dass der Server keine GUI installiert hat (was bei einem Server grundsätzlich aus Sicherheitsgründen so sein sollte) muss vsftp mittels apt-get installiert werden.

Voraussetzung ist natürlich, dass man Rootberechtigungen hat.

In eine Konsole tippt man:

  • apt-get install vsftpd
  • gefolgt von einem Return

Ist man erfolgreich, dann sollte sich nach der Betätigung von Return folgendes am Bildschirm „abspielen“ Achtung die Versionsnummern können variieren:

Wie man aus der Texausgabe erkennen kann, wird ein User ftp angelegt.

Prüfen ob der VSFTP-Dämon (Dienst) läuft

Um nun zu testen, ob der Dienst für den VSFTP läuft, tippt man in der Konsole:

  • ps -A | grep vsftpd
  • gefolgt – wie immer – von einem Return

Hier sollte die PID (Prozess ID) und zumindest vsftpd ausgegeben werden. Das bedeutet, der vsftpd ist gestartet.

Wenn man jetzt noch nachschauen will, ob der Ftpserver auch auf dem Port 21 „lauscht“ kann man das mittels:

  • netstat -a |grep ftp
  • und Return

Auch hier sollte man eine entsprechende Ausgabe erhalten, dass FTP auf Port 21 „lauscht“ (Listen)

Beide Befehle nochmals per Screenshot (So sollte es jetzt eigentlich aussehen):

Der Einfachheit halber, wäre es natürlich auch noch möglich, einfach mittels telnet eine Verbindung zum FTP Server herzustellen:

  • telnet localhost 21
  • und Return

Nun ist man mit dem VSFTP verbunden:

Da wir ja im Moment nichts zu tun haben, beenden wir die Verbindung durch die Eingabe von quit und Return.

Konfiguration mittels vsftpd.conf

Um den VSFTP zu konfigurieren, greift man auf die Datei vsftpd.conf zurück, die sich im Verzeichnis /etc befindet.

Mit dem Texteditor seiner Wahl, kann man diese Datei editieren. Ich greife auf vim zurück. Vim ist anfangs etwas gewöhnungsbedürftig, aber gut 🙂

Beispielkonfiguration

Die wichtigsten Eckpunkte der unten stehenden Konfiguration sind:

  • Kein anonymer User kann sich einloggen
  • Die User werden in Ihrem Verzeichnis eingesperrt
  • Nur User erhalten Zugriff, die in einer definierten Liste (vsftpd.user_list) aufgeführt sind
  • Die Dateiberechtigungen beim Upload werden so gesetzt, dass nur der uploadende User Vollzugriff auf die Dateien hat.
1. write_enable=YES
2. dirmessage_enable=YES
3. nopriv_user=ftpsecure
4. ftpd_banner="Welcome"
5. local_enable=YES
6. file_open_mode=0644
7. local_umask=0000
8. userlist_deny=NO
9. userlist_enable=YES
10. chroot_local_user=YES
11. local_max_rate=50000
12. anonymous_enable=NO
13. anon_world_readable_only=NO
14. anon_upload_enable=NO
15. log_ftp_protocol=YES
16. xferlog_enable=YES
17. vsftpd_log_file=/var/log/vsftpd.log
18. xferlog_file=/var/log/xfer.log
19. connect_from_port_20=YES
20. pam_service_name=vsftpd
21. listen=yes
22. allow_writeable_chroot=YES (Anmerkung: für Debian Wheezy nach Installation des Paketes lt. Anleitung von Maltris-Blog!)

Hat man alle Parameter in die vsftpd.conf eingegeben kann man testen, ob die Konfiguration von vsftp akzeptiert wird. Hierfür macht man folgendes:

  • /etc/init.d/vsftpd stop (+Return)
  • vsftpd (+Return)

Ist alles ok, sollte man keine Rückmeldung erhalten! Mittels der Tastenkombination STRG+C bricht man das Ganze nun ab.

Die Datei vsftpd.user_list

Die Datei befindet sich muss normalerweise im Verzeichnis /etc angelegt werden. Wenn der Name vsftpd.user_list eingehalten wird, dann muss in der vsftpd.conf NICHT explizit der Pfad zu dieser Datei angegeben werden.

Der Aufbau der Datei ist simpel. Die Usernamen werden einfach untereinander in die Datei hineingeschrieben.

User1
User2

Wie kommt man zu den Usern?

Update: Es kann sein, dass der User ftpsecure noch nicht angelegt ist. Ohne diesen User läuft VSFTPD nicht! Deshalb muss dieser User eventuell auch erst angelegt werden. Der Befehl hierzu lautet:

useradd ftpsecure -d /var/www/ftpsecure -s /bin/false

Danach sollte man noch ein Passwort setzen!

 

Die User sind wie normale Anwender anzulegen. Es gibt aber ein paar Dinge, die es zu beachten gilt:

  1. FTP User erhalten keine Login-Shell (Ein FTP User muss sich nicht lokal am System anmelden können!)
  2. FTP User sollten als Homeverzeichnis das Verzeichnis zugewiesen bekommen, in das sie Ihre FTP Daten ablegen dürfen.
  3. Das Passwort sollte (wie überall) nicht zu einfach sein, wobei allerdings zu beachten ist, dass die Standardkonfiguration des VSFTP (wie oben gezeigt) KEINE Verschlüsselung vornimmt. D.h. also Klartext-Kennwörter! Mit VSFTP ist es aber durchaus möglich, auch verschlüsselte FTP Sitzungen zu realisieren. (Dazu mehr in einem späteren Beitrag)

Anlegen eines User „test“ ohne Login-Shell mit einem Homeverzeichnis „/var/www/test“ + erstellen einer Gruppe ftp und Zuordnung des User „test“ zu dieser Gruppe

Das oben angegebene Verzeichnis /var/www muss bereits vorhanden sein, um den Befehl useradd – siehe unten – erfolgreich ausführen zu können.  Das Rootverzeichnis des Apachewebserver ist standardmäßig /var/www weshalb wir auch den Anwender „test“ als ein Unterverzeichnis von /var/www anlegen. Das Homeverzeichnes des User „test“ ist dann also /var/www/test.

In der Konsole tippt man:

  • useradd test -d /var/www/test -s /bin/false -m (User wird ohne Loginshell und Homeverzeichnis /var/www/test erstellt)
  • Setzen des Passwort für User test mittels passwd test und eintippen des frei wählbaren Kennwortes.
  • Erstellen der Gruppe ftp mittels: groupadd ftp
  • Zuordnung des User Test zur Gruppe ftp per usermod -g ftp test
  • Um nun noch entsprechend auf das Verzeichnis /var/www/test/ Zugriff zu erhalten, muss mittels Befehl chown der Besitzer des Verzeichnis „/var/www/test“ zugeordnet werden: chown test /var/www/test und die Gruppe desselben Verzeichnis auf ftp gesetzt werden: chgrp ftp /var/www/test

WICHTIG: Den User test muss man ausserdem noch in die Datei /etc/vsftpd.user_list eintragen!

Anpassung der /etc/pam.d/vsftpd

Um bei der Authentifizierung auf die angelegeten Userkonten + Passwörter zugreifen zu können, öffnet man die Datei /etc/pam.d/vsftpd mit einem Editor. Der Inhalt sieht wie folgend aus (die letzte Zeile ist gemeint!):

Diese Zeile ändert man wie folgend ab:

auth    required        pam_localuser.so

Der finale Test – Jetzt oder nie 🙂

Wenn alles fertig konfiguriert ist, sollte man den FTP Dienst erneut starten. Dies erreicht man durch die Eingabe von:

  • /etc/init.d/vsftpd restart
  • und Return

Natürlich kann man auch gleich den PC neu starten, jedoch ist das nicht notwendig. Ist alles glatt gelaufen, sollte der Login ausschließlich mit dem Usernamen test und dem vergebenen Passwort klappen, alles andre sollte mit einer Meldung:

530 Permission Denied
Login failed

quittiert werden.

Sollte jemand Probleme, Tips oder Verbesserungsvorschläge haben, bitte einfach per Kommentar oder Email melden.

Linux Mint Debian Edition + AMD Catalyst 12.3 + höher = funktionierender fglrx

Obwohl ich die Hoffnung eigentlich schon fast aufgegeben hatte, startete ich gestern noch einen letzten Versuch, um wenigstens irgend eine Art „Debian“ auf mein System zu installieren. Die Vorgabe „Der Grafikkartentreiber muss funktionieren“, schien ja bis zuletzt nur ein Wunschtraum zu sein…

Kurzerhand Linux Mint Debian Edition (aktuellste Version) heruntergeladen und per Unetbootin auf USB Stick verbannt.

Nach dem zügigen Boot vom USB Stick starte ich die Installation, die gewohnt unspektakulär von statten geht (gut so!).

Der standardmäßig verwendete X.org Treiber (radeon) liefert mir eine Auflösung von 1280×1024. Für meinen 22″er nicht die native Auflösung. Ich habe keine Chance die Auflösung höher zu schrauben. Es wird einfach keine höhere Auflösung angeboten.

Ich vermute, dass ich über Modelines in der xorg.conf noch einiges hätte schrauben können, das ist aber nicht mein Ziel. (Übrigens gibts sogar einen Onlinemodeline-Generator).

Da bei Linux Mint Debian bereits die build-essential + Kernelheader installiert sind, lade ich mir den Catalyst 12.3 von der Homepage von AMD herunter und installiere ihn. (Eigentlich habe ich hier schon gedacht, dass es ohnehin wieder nicht klappt…)

Nach dem Restart des Systems, staunte ich allerdings nicht schlecht… Der Treiber wird geladen und ich habe eine – meinem Monitor entsprechende – Auflösung bereits eingestellt (DDC sei Dank!).

Fazit: Linux Mint Debian + Catalyst 12.3 = funktionierendes System :-).

Fazit: Linux Mint Debian + Catalyst 12.3 + höher = funktionierendes System.

Cinnamon finde ich übrigens genial!

Update: Allerdings gibts wohl ab Kernel 3.4 mit dem fglrx (Version 12.4 und höher) Probleme…

Ärgernis AMD Radeon fglrx und Debian Wheezy?

Gestern habe ich (wiedermal) Debian Wheezy installiert. Irgendwie hatte ich im Hinterkopf, dass ich zuletzt ja Probleme mit der Grafikkarte (Treiber) gehabt habe. Bei der Grafikkarte handelt es sich um eine recht neue AMD Radeon HD 7950.

Frohen Mutes also schnell mal Debian Wheezy installiert. In X bekomme ich zwar ein Bild, jedoch in einer recht niedrigen Auflösung.

Dennoch – ich kann mit dem Standard (radeon) Xserver keine höhere Auflösung einstellen. In die (Un)-tiefen der xorg.conf mag ich mich nicht begeben.

Wozu schließlich bietet AMD einen proprietären Treiber an.

Kurzerhand build-essential und die Kernelheaders installiert und den aktuellen AMD Treiber für meine Grafikkarte runtergeladen.

In einem Rootterminal gebe ich der gerade heruntergeladenen Datei das Ausführrecht mit chmod +x amd-driver-installer-12-4-x86.x86_64.run.

Danach führe ich selbige Datei aus: ./amd-driver-installer-12-4-x86.x86_64.run

Das Setup scheint ohne Probleme durch zu laufen – GUT!

Sicherheitshalber starte ich das System neu und warte auf das Loginfenster…

…das aber leider nicht erscheint… einzig ein blinkender Cursor oben links zeigt mir, dass das System sich nicht verabschiedet hat. Es macht aber eben nicht das, was ich erwartet hatte.

Per STRG + ALT + F2 öffne ich ein Terminallogin und logge mich ein. Ein Blick in die Logdatei von Xorg schließlich meldet einen SERVER ERROR und irgendwas mit einem VT-Console Problem…

Per Google finde ich zwar einen Thread in einem Forum, der das Problem analysiert, jedoch keine Lösung.

Auf #debian (IRC) meint man schließlich, dass der XORG von Wheezy zu neu ist und nicht mit dem proprietären Treiber von AMD zusammen arbeitet…

Irgendwie könnt ich mich Ohrfeigen, wieso bin ich nicht bei Nvidia geblieben?!

WICHTIG: Mit Debian Squeeze läuft der AMD Treiber ordnungsgemäß!

MS Flight erschienen

Ein kurzer Test des heute erschienen MS Flight hat mich persönlich doch sehr enttäuscht. Alle, die hier einen FSX Ersatz erwartet haben, werden wohl bitter enttäuscht sein. MS Flight ist wohl in erster Linie etwas für Feierabendflieger.

Es erinnert sehr stark an ein Arcadegame, bietet ein Punktesystem mit „Beförderungen“ und belohnt den Spieler mit Punkten für die kleinste Kleinigkeit.

Positiv ist, dass man sich Flight kostenlos herunter laden kann. Allerdings bleibt der Spielspaß dann auf 2 Flugzeuge und 1 Insel begrenzt.

Grafisch gesehen befinde ich mich im Zwiespalt. Schönere Texturen wie der FSX, ja… Vom Hocker haut es mich aber nicht.

Viele Dinge wirken zu grell, zu bunt und intensiv.

Kurzes Fazit:

Spielspaß für Gelegenheitsspieler: JA, auf jeden Fall
Ernsthafte Simulation: Im jetzigen Zustand sicher nicht!

Ein kleines Video von meinen ersten Flugversuchen: