open_Netcenter Forum |
Autor | Thema: VSFTP konfigurieren für Newbies |
---|---|
ivenae Ist öfters hier ID # 144 -979-261-40 |
Erstellt am 04. Oktober 2007 01:25 (#1)
Zitat
PN E-Mail
Dieses Tutorial erklärt, wie man vsftpd von Grund auf konfiguriert.
Kurz einen Überblick über VSFTPD: VSFTPD ist klein, resourcenschonend, schnell und sicher (wenn man ihn optimal konfiguriert), daher empfiehlt er sich zum Einsatz. Doch die Konfiguration ist recht kompliziert und es gibt einiges zu beachten, insbesondere, um ihn sicher zu machen. VSFTPD nutzt als User die USER der Datei passwd, man kann auch virtuelle User erstellen, dies ist jedoch weitaus komplexer, daher wird hierauf in diesem Tutorial nicht eingegangen. Was müssen wir also tun? -VSFTPD installieren (im Epias bereits enthalten) -VSFTPD über vsftpd.conf konfigurieren -User erstellen -VSFTPD beim hochfahren automatisch starten -Zugriff via Internet :installieren Hierauf soll nicht eingegangen werden, zum einen ist der Dämon in der Epias Firmware bereits integriert, zum anderen sollte die manuelle Installation via ipkg einfach sein. :konfigurieren Erst einmal eine Beispiel Config. Diese kann irgendwo auf der Platte abgelegt werden. Wie sie später genutzt wird, folgt weiter unten.
Auf den Server bekommt ihr diese Datei, indem ihr sie in eines eurer Freigaben kopiert. Viele Parameter sind selbsterklärend, doch auf einige Parameter soll hier eingegangen werden: listen=yes Ist listen auf no gesetzt, so lauscht vsftpd nicht selbst, sondern überlässt dies dem (x)inetd. Sollte dieser verwendet werden, so ist dieser Parameter auf no zu setzen. anonymous_enable=no Der Anonymous-User ist dafür da, auf den ftp auch ohne Passwort zuzugreifen. Bei Anonymous handelt es sich um den Standard-namen, falls beim ftp-Protokoll kein Passwort angegeben wird. Zwar eigentlich ziemlich praktisch, hat allerdings einige Tücken: Man benötigt für ihn einen zusätzlichen User Namens ftp. Meine Devise: Dann kann ich mir auch gleich einen System-User namens anonymous anlegen und diesen verwenden. Das machen wir später auch. check_shell=no Normalerweise prüft vsftpd die Datei /etc/shell ab, welche Shells im System gültige Shells sind. Nur User mit gültiger Shell dürfen sich anmelden. Das ist fatal! Die Datei shell liegt in einem nicht beschreibbaren Verzeichnis, wir können sie nicht ändern. Folglich ist die einzig-gültige Shell die /bin/sh. Das heißt de fakto: Jeder für vsftpd gültige User kann sich automatisch auch via Telnet einloggen. Das möchten wir auf keinen Fall. Also muss diese Variable unbedingt auf no gesetzt werden, damit wir Usern, die zwar ftp nutzen sollen, aber kein telnet (z.B. der Anonymous-User ohne Passwort) eine Shell ohne Loginmöglichkeit ( /bin/false ) zuweisen können. local_enable Ermöglicht erst, dass System-User sich anmelden können. :User erstellen User erstellt man durch editieren der passwd in /etc/passwd Passwörter können wahlweise ebenfalls in die /etc/passwd geschrieben werden, alternativ in die /etc/shadow Hier gibt es jedoch wieder einige Tücken: Am einfachsten ist es, eine Kopie der /etc/passwd in /opt/etc/passwd anzulegen und diese bei Systemstart zu kopieren. Wir können jedoch ins Verzeichnis /etc/ nicht schreiben, glücklicherweise hat Epias mitgedacht und hier lediglich einen Verweis auf /tmp/passwd erstellt. Wir kopieren also bei jedem Systmstart über die rc.start
Anschließend noch die Berechtigungen setzen (sicher ist sicher).
Einen Strich durch die Rechnung macht uns jedoch das Webinterface des WD-Netcenters. Nach jedem Öffnen des Netcenters wird die temporäre Version /etc/passwd respektive /tmp/passwd überschrieben. Entweder dürfen wir also das Webinterface nicht mehr öffnen (oder müssen die Platte anschließend neustarten), oder wir schalten das Webinterface gänzlich ab und konfigurieren auch Samba über Telnet. Hierzu werde ich ebenfalls noch ein Tutorial erstellen. Erst einmal kopieren wir uns die aktuelle Version der /etc/passwd und der /etc/shadow auf unsere Festplatte und erstellen die obigen Einträge der in der rc.start, die diese bei jedem Hochfahren zurückkopieren. Anschließend kopieren wir die aktuellen Versionen einmalig auf unser Laufwerk # cp /tmp/passwd /opt/etc/passwd # cp /tmp/shadow /opt/etc/shadow Nun lassen wir uns die aktuellen User der passwd anzeigen mit # cat /tmp/passwd Meine Datei sieht nun so aus
Nun, ihr könnt beispielsweise meinen Anonymous übernehmen. Kopiert die Zeile in einen Texteditor
Dies soll euer Anonymous werden. Wichtig hier: Vor dem ersten Doppelpunkt ist der Name. Diesen wollen wir beibehalten. Das x im Anschluss steht dafür, dass das Kennwort in der /etc/shadow Datei steht. In diesem Fall könnt ihr hier auch gar nichts hinschreiben, dann habt ihr kein Kennwort. Damit wir die shadow nicht auch noch bearbeiten müssen, ziehe ich das nun einmal vor. Im Anschluss folgen Gruppennummern und sonstige IDs, die können so stehen bleiben, der Vorletzte Eintrag gibt das Home-Verzeichnis an, nur dieses mitsamt sämtlicher Unterverzeichnisse ist via ftp einsehbar. Der letzte Eintrag gibt die Shell an. In diesem Fall möchte ich nicht, dass der User auch via Telnet zugreifen kann, also trage ich die /bin/false als Shell ein. Das FTP Verzeichnis modifiziert ihr und schreibt dann folgendes in die Kommandozeile: # echo anonymous::35000:42000:guest:/shares/Main/share/ftproot:/bin/false > /etc/passwd Der Nutzer ist nun lediglich temporär im System vorhanden, geht etwas schief, könnt ihr einfach neustarten. Ihr erstellt nun so viele Nutzer wie ihr wollt. Wir erstellen noch gemeinsam einen Nutzer ftpuser mit Zugriff auf /shares/Main/share, unsere Hauptfreigabe. Als Root, damit wir sämtliche Schreibrechte haben: Groß- und Kleinschreibung ist bei der Pfadangabe wichtig! # echo ftpuser:x:0:0:root:/shares/Main/share:/bin/false > /etc/passwd Im Anschluss könnt ihr den Nutzern mit dem Befehl # /bin/passwd ftpuser ein Passwort zuweisen. Nun müsst ihr noch einmalig den vsftpd starten. Das geht mit # vsftpd /shares/Main/share/vsftpd.conf & Den Pfad zur Konfig-Datei passt ihr nach eurem Pfad an, wo auch immer ihr diese gespeichert habt. Das & heißt, dass der Dienst im Hintergrund gestartet wird, damit ihr auf der Shell weiterarbeiten könnt. Nun probiert die Verbindung aus. Klappt alles, dann könnt ihr die passwd und shadow Dateien auch auf eurer Festplatte sichern. Wie vorher mit # cp /tmp/passwd /opt/etc/passwd # cp /tmp/shadow /opt/etc/shadow Ab nun könnt ihr diese Dateien von der Festplatte mit ftp und Nutzer root auf euren Rechner kopieren, dort bearbeiten und anschließend wieder zurückkopieren. Weiterhin müsst ihr jetzt vsftpd auch über die rc.start starten. Hier tragt ihr den obigen Eintrag zum Starten, den ihr vorhin in die Shell eingegeben habt in die rc.start. :Zugriff aus dem Internet Der Zugriff klappt nun hoffentlich schon vom lokalen Rechner. Zwei Dinge sind zu beachten, um den Zugriff auch aus dem Internet zu ermöglichen: Eure Festplatte muss ins Internet kommen, hier hat das Netcenter wohl ein Problem nach dem Neustart. Hier muss der Eintrag
als erster Eintrag in die rc.start, falls noch nicht geschehen, wobei 10.10.10.10 die IP eures Internetrouters ist. Weiterhin ist es im Übrigen sinnvoll, auch das Netcenter auch Namensauflösungen zu ermöglichen. Nicht unbedingt notwendig für FTP, hier jedoch kurz zwischengeschoben:
Wobei 10.10.10.10 die Adresse eures Routers oder ein funktionierender Nameserver eures Providers ist. Diesen Abschnitt ebenfalls in die rc.start. Damit ihr aus dem Internet zugreifen könnt, benötigt ihr einen Dyndns Account oder einen Noip Account. Irgendetwas, was eure dynamische Adresse zu einem Statischen Namen macht. Ich gehe mal davon aus, ihr besitzt so etwas schon. Falls ihr schon einen dyndns Account besitzt, aber ihr auch zu den Unglücklichen gehört, deren Router diesen nicht aktualisieren können, findet ihr ebenfalls hier unter den How To's einen Eintrag, der beschreibt, wie ihr die Festplatte dazu bringen könnt, diesen stets zu aktualisieren. Jetzt müsst ihr auf eurem Internetrouter noch die Ports 20 und 21 zu eurer Festplatte weiterleiten. Nun sollte der Zugriff auch vom Internet aus funktionieren. |
Beiträge: 40 | Mitglied seit: Oktober 2007 | IP-Adresse: gespeichert |
| open_Netcenter Web - Infos, Handhabung, Anleitungen | Boardregeln
Tritanium Bulletin Board 1.6
© 2010–2014 Tritanium Scripts