FTP-Server lukemftpd 1.1 konfigurieren ...

Diskutiere mit über: FTP-Server lukemftpd 1.1 konfigurieren ... im MacUser Tipps und Tricks Forum

  1. Hairfeti

    Hairfeti Thread Starter Banned

    Beiträge:
    462
    Zustimmungen:
    0
    Registriert seit:
    08.11.2003
    Teil 1 ...

    Wie dieser FTP-Server An - und Abgeschaltet wird wissen wir alle, das muß ich also nicht erklären. Was allerdings interessant ist und jeder wissen sollte:

    Mac OS X, als Unix-System enthält mehrere Sicherheits - und Abwehr-Mechanismen welche vor einem Arbeitsprozeß wie eine Schutzmauer fungieren. Das ist auch für den FTP-Server der Fall, da er für das System an sich genommen ein Risikofaktor darstellt. Man ist nicht nur mit dem Netzwerk Internet direkt verbunden, sondern es werden Programme und Prozesse dabei ausgeführt die bei Unachtsamkeit zu Verwüstung und Zerstörung führen können.

    Dafür gibt es die Tools "xinetd" und "inetd" welche den Betrieb eines FTP-Server ausreichend absichern und Angriffe auf unser internes Betriebssystem abwehren.

    Wenn wir also unseren FTP-Server jetzt starten werden, wird er nicht direkt gestartet, sondern mit Hilfe von "xinetd", welches die TCP und UDP-Ports nach Störungen und Fehlerquellen ablauscht.

    Bei Verwendung der in Mac OS X internen FireWall werden automatisch die notwendigen Ports geöffnet, darum muß man sich also nicht kümmern.

    Nun öffnen wir zwei Fenster im Programm Terminal und geben ein:

    Fenster 1:

    Fenster 2:

    Eure Dynamische IP-Adresse sollte dazu beim Anbieter http://www.dyndns.org/ bereits geupdatet sein.

    Schauen wir uns also an was passiert, "tail" schreibt dazu die Log-Datei mit.

    Wir geben unseren Usernamen ein, unser Kennwort und erhalten promt Zugriff.

    Bis hierhin alles gut. Nun geben wir mal diesen Befehl ein, damit wird erwirkt daß der FTP-Server uns in unser Homeverzeichnis schickt:

    Dann geben wir ein daß wir die Daten aufgelistet erhalten:

    Doch was ist das? Das ist ja gar nicht unser Homeverzeichnis. Wir sind ja im Root-Verzeichnis des Systems. Wie kommt das denn und kann das jeder User der sich per Name und Kennwort anmeldet?

    Die Antwort: Ja das kann jeder und wenn man dabei geschickt ist, läßt sich so auch komfortabel der Mach-Kernel des Systems löschen ... (Angst ist mein zweiter Vorname)

    Bis hierhin zunächst, ich hoffe die Aufmerksamkeit erregt zu haben.

    ... Kaffe-Pause ...

    Ist das nun wirklich ein zweites Sicherheitsproblem was sich da auftut? Ist das von Apple so gewollt oder eine Lücke im Sicherheits-Netz?

    Ich würde sagen keines von beiden. Denn:

    Erstens benötigt man für einen Zugriff Name und Passwort, zweitens muß der FTP-Server aktiviert sein. Drittens muß der Computer eingeschaltet sein ...

    Jetzt mal im Ernst:

    Die Firma Apple nimmt wahrscheinlich an, daß man als stinknormaler End-Anwender einen FTP-Server sowieso nicht benutzt. Hiermit ist aber das Gegenteil bewiesen. Weiterhin denkt sich Apple daß jeder der ihn doch benutzt, so schlau sein müßte um ihn auch hundertprozentig sicherheitstechnisch konfigurieren zu können. (Danke für das Vertrauen) Daß das nicht der Fall ist, stellen wir heute auch fest. Eine Erklärung des FTP-Server ist in den Man-Pages über das Terminal abrufbar. Damit ist der FTP-Server jedoch nicht eindeutig beschrieben, zumal noch auf Englisch.

    Also ich spreche da jetzt nur für mich, aber mir gefällt einfach der Gedanke nicht daß ein anderer Nutzer meines Computers mir Dateien in meinem Root-Verzeichnis auf diesem Wege löschen oder verändern könnte. Das muß doch nicht sein, dieses Problem werden wir hier ein für alle Mal beseitigen.

    Mein FTP-Server hat die kleine Tour bereits hinter sich und ist für jeden erreichbar unter ftp://treff.homeip.net// wohlbemerkt wenn mein iMac online ist.

    Was können wir also tun?

    Wir werden allen gewünschten Benutzern einen Zugang auf den FTP-Server gewähren so wie gehabt, mit dem einzigen Unterschied jedoch: Jeder Besucher wird auf sein Home-Verzeichnis beschränkt, sprich: dort eingesperrt. Das Home-Verzeichnis wird das Root-Verzeichnis sein, eine höhere Hirarchie zu erreichen ist damit ausgeschlossen.

    Dann werden wir einen Anonymous-Zugang einrichten für einen User mit beschränkten Zugriffsmöglichkeiten. Dieser kann sich ebenfalls nur im Rahmen seiner Verzeichnis-Struktur bewegen und wird nur Daten lesen können sowie in ein dafür angelegtes Verzeichnis Daten uploaden dürfen, welche aber eine bestimmte Größe (KB) nicht überschreiten werden.

    Zuletzt werden wir dann noch einen Test durchführen und darüber entscheiden welche Clients (FTP-Programme) zur Zeit in Frage kommen um diesen Service FTP auch effizient nutzen zu können. Ich benutze z.B. Captain FTP, ein sehr schönes Programm. Noch in der Entwicklungsphase aber es enthält jetzt schon wesentliche Features die ich heute nicht mehr missen möchte. Version 3.1 liegt seit gestern vor. Ich habe das Programm bereits schon gekauft weil ich meine, daß es große Zukunft hat. Das nur nebenbei ...

    Was brauchen wir dazu?

    Einige Text-Dateien die zum größten Teil im System fehlen, da Apple wie schon erwähnt diesen Bereich nicht ausreichend supportet.
    Drei Verzeichnisse die wir später noch anlegen werden. Ein User den wir mit Hilfe des Programms "Netinfo-Manager" erstellen, nicht im Terminal. Und Einrichten von erforderlichen Benutzer - und Zugriffsrechten, mit dem Terminal. Alle Dateien gehören in das Verzeichnis "/etc/", dafür benötigen wir Root-Rechte oder die eines "sudo".

    Als da wären:

    ftpusers (Diese Datei, auch wenn sie vom Namen her etwas anderes vermuten läßt, enthält die Namen der Benutzer des Systems die nicht auf den FTP-Server zugreifen dürfen. Das wären root, www und andere die bereits auch schon vorhanden und eingetragen sind. Ihr selbst müßt euren Namen dort entfernen, ansonsten könnt ihr den FTP-Server nicht verwenden.)

    ftpchroot (Diese Datei wird die Namen der System-User enthalten die auf ihr Home-Verzeichnis beschränkt werden, außer der Anonymous der nicht)

    ftpd.conf (Das ist die eigentliche Konfigurations-Datei des Servers, dort werden wir die nötigen Anweisungen an den FTP-Server eintragen.)

    ftpwelcome (Diese Datei ist optional und von jedem Nutzer nach seinen Wünschen zu bestücken, sie wird beim Start des Servers als Information oder Begrüßung an den Client gesendet)

    motd (Mit dieser Datei kann man dem Client eine Nachricht anzeigen wenn er ein Verzeichnis besucht in dem bestimmte Voraussetzungen gelten, die Datei muß dazu in jenem Verzeichnis liegen wo sie angezeigt werden soll. Vorgesehen vorallem für den Anonymous-Zugriff.)

    Es gibt noch weitaus mehr Dateien die den Betrieb des FTP-Server beinflussen können, diese benötigen wir jedoch für unser Vorhaben nicht.

    Fortsetzung folgt ...
     
    Zuletzt bearbeitet: 21.11.2003
  2. Hairfeti

    Hairfeti Thread Starter Banned

    Beiträge:
    462
    Zustimmungen:
    0
    Registriert seit:
    08.11.2003
    Teil 2 ...

    Wir legen also die von mir genannten Dateien der Reihe nach im Verzeichnis "/etc/" mit dem Terminal und dem Texteditor "pico" an, ausgenommen die Datei "ftpusers" die schon vorhanden ist und die Datei "motd" die zwar auch vorhanden ist aber nicht zum FTP-Server gehört. Sie gehört zum Terminal mit dem wir arbeiten. Bei Aufruf des Terminal werden wir damit begrüßt. ("Welcome to Darwin")

    Nun bearbeiten wir die Datei "ftpusers" und tragen die User ein die eurer Meinung nach den FTP-Server nicht benutzen sollten.

    Dann öffnen wir Datei "ftpchroot" und tragen dort die User untereinander ein die später den FTP-Server benutzen werden und auf ihr Home-Verzeichnis beschränkt werden sollen.

    Jetzt folgt die Begrüßungs-Nachricht in der Datei "ftpwelcome" die ihr selbst bestimmen könnt. Die Nachricht kann so lang sein wie ihr wollt, darf aber nur Text enthalten und nicht etwa HTML-Code.

    Nun öffnen wir die Datei "ftpd.conf" und tragen zunächst mal folgende Zeilen ein, Erklärungen gebe ich dazu später noch. Alle Eingaben einer Zeile müssen mindestens durch eine Leerzeile oder besser durch ein TAB voneinander getrennt sein. Auskommentiert werden Zeilen mit "#" am Anfang der Zeile. Damit werden diese Einstellungen vom FTP-Server ignoriert.

    In der Standardeinstellung des FTP-Server und ohne Datei "ftpd.conf" sind grundsätzlich alle erweiterten Funktionen verboten und untersagt. Wenn wir also eine Funktion aktivieren wollen, so müssen wir das in der Einstellungsdatei erst erlauben.

    Wir speichern nun ab und legen im Root-Verzeichnis ein neues Verzeichnis mit Namen "ftp" an:

    Nun gehen wir in dieses Verzeichnis hinein und legen dort zwei weitere Vezeichnisse an "incoming" und "pub":

    Dann vergeben wir den Verzeichnissen erforderliche Rechte:

    Nun legen wir noch die Datei "motd" ins Verzeichnis "/ftp" und tragen dort ein was wir wollen:

    Jetzt verlassen wir kurz das Terminal und öffnen das Programm "Netinfo-Manager" und melden uns dort mit Kennwort als Administrator an.

    Wir suchen uns die Bezeichnung "users" heraus und wählen diese aus. Im Bereich "users" markieren wir den User "www" und betätigen oben im Menü den Befehl "Duplizieren". Der User "www" sollte nun zweimal da sein. Wir markieren die Kopie und verändern dort die Einträge so:

    Die anderen Einstellungen sind OK und bleiben so wie sie sind. Nun schließen wir den Manager und müssen unsere Änderungen noch bestätigen. Wer allzu lange für den Vorgang gebraucht hat, muß nun auch wieder sein Kennwort eingeben.

    Im System gibt es nun einen neuen User namens "ftp". Dieser kann sich jedoch nicht am System anmelden und ist auch im Anmelde-Dialog nicht vorhanden.
    Es ist der Benutzer "Anonymous". Dieser steht nun dafür daß sich Besucher per FTP mit unserem System verbinden können. Jeder kann nun mit einem FTP-Programm, einem Webbrowser mit FTP-Unterstützung oder einem Terminal auf den Anonymous-Bereich zugreifen. Es ist dafür kein Kennwort erforderlich, die Anmeldung erfolgt mit Username "ftp" oder "anonymous" und als Kennwort ist die E-Mailadresse des Clients oder einfach nur ein Punkt "." einzugeben. FTP-Programme tun das automatisch.

    Das wollen wir jetzt mal testen. Zunächst beenden wir den FTP-Server und starten ihn neu daß auch alle neuen Einstellungen eingelesen werden.

    Nun geben wir im Terminal den Befehl ein:

    Name

    Passwort

    Und schon befinden wir uns im erforderlichen FTP-Verzeichnis welches wir erstellt haben. Mit den Befehlen:

    oder

    lassen wir uns nun den Inhalt des Verzeichnisses anzeigen und erhalten die Übersicht über zwei weitere Verzeichnisse "incoming" und "pub"

    Soweit so gut. Ihr könnt nun euer FTP-Verzeichnis "pub" mit euren Daten füllen welche Besucher vorfinden sollen.

    Jetzt noch einige Erklärungen zur Datei "ftpd.conf":

    Die Eingaben für die Einstellungen verstehen sich ja fast von selbst wenn man sie denn erst einmal weiß und zuordnen kann. Der FTP-Server unterteilt seine Clients in so genannte Classes. So ist es auch verständlich daß in einer Standardkonfiguration weder ein Anonymous-Zugriff möglich ist noch ein User in ein Home-Verzeichnis gechrootet werden kann. Denn dem FTP-Server sind die Classes "CHROOT" und "GUEST" noch gar nicht bekannt. Erst in der Einstellungsdatei kann man ihm mitteilen welche Funktionen er aktivieren soll.

    Nun will ich mal kurz und knapp übersetzen was wir unserem Server mitgeteilt haben. Dazu nehmen wir die "ftpd.conf" mal etwas genauer in Augenschein.
    Also der Reihe nach werde ich jede Funktion kommentieren. Die Eingabe der Funktionen ist so zu verstehen:

    Name der Funktion---Name der Classes für die der Befehl gilt---Der Befehl ansich

    und

    Name der Funktion---Funktion an oder aus---Funktionswert

    Beispiel:

    HASSO---HUND---WAU WAU WAU

    Ihr solltet nun die Konfigurationsdatei euren Bedürfnissen anpassen. Die Einstellungen die ihr von mir übernommen habt sind für euch vielleicht nicht zutreffend.

    Nun wären wir eigentlich fertig mit der Theorie, es folgt nun die Praxis wo ihr euren FTP-Server ausgiebig testen könnt. Solltet ihr noch Fragen zum Thema haben, werden diese von anderen Mitgliedern und mir hier beantwortet.

    MfG Rüdiger

    Nachtrag Wichtig:

    Ich bin heute von einem netten Teilnehmer auf einen Fehler in meinen Ausführungen hingewiesen worden. Vielen Dank dafür. Um den Fehler zu vermeiden, ist einfach nur die Reihenfolge einer meiner Anweisungen zu ändern. Man muß zuerst User und Gruppen im Netinfo-Manager anlegen und kann natürlich dann erst die betreffenden Rechte von den Verzeichnissen mit den Befehlen "chmod" und "chown" ändern. User die dem System noch gar nicht bekannt sind, können von diesen Programmen natürlich noch nicht verwendet werden.
     
    Zuletzt bearbeitet: 29.02.2004
  3. Marduk

    Marduk MacUser Mitglied

    Beiträge:
    499
    Zustimmungen:
    34
    Registriert seit:
    13.10.2003
    Vielen, vielen Dank. Hat wunderbar funktioniert. clap
    Das sollte allerdnigs erst später kommen, nachdem man den Benutzer ftp angelegt hat.

    Man kann keine Rechte an einen Benutzer geben den es gar nicht gibt :p
    Für alle die diese Anleitung später befolgen wollen: Diese Zeile erst NACH dem erstellen des Benutzters ftp eingeben.
     
  4. Guru Spack

    Guru Spack MacUser Mitglied

    Beiträge:
    186
    Zustimmungen:
    1
    Registriert seit:
    12.01.2004
    Erstmal danke für die gute Anleitung, allerdings habe ich ein Problem.
    Wenn ich mich als ftp einlogge kann ich nichts hochladen, auch nicht in den Ordner incoming. Wie kann ich das ändern, habe alles genau so gemacht wie hier beschrieben?
    Als ich allerdings die Zugriffsrechte für die Ordner pub und incoming per Terminal ändern wollte, bekam ich immer die Fehlermeldung: Operation not Permited. Obwohl ich den FTP-User vorher angelegt hatte. Vielleicht hängt das damit zusammen?
     
  5. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    vielleicht gehören die Verzeichnisse noch nicht dem ftp user:

    sudo chown ftp:staff /incoming
    sudo chown ftp:staff /pub

    und dann:

    sudo chmod ... usw.

    wenn die verzeichnisse dem user ftp gehören, dar nur er oder root die Berechtigingen ändern.
     
  6. peppermint

    peppermint MacUser Mitglied

    Beiträge:
    7.380
    Zustimmungen:
    85
    Registriert seit:
    06.06.2003
    super

    das is ja alles schon sehr gut beschrieben, auch für anfänger,
    doch geht das nich einfacher und schneller, ich würde nur ein paar dateien mit Freunden austauschen, über ftp?
     
  7. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    dann richte denen doch ein Konto (ein konto für alle) auf deinem Mac ein.
    mit der Kennung melden sie sich an.
    Bei der Anmeldung landen die in Ihrem Homedirectory. Von dort aus können Sie auf alle Dateien zugreifen, auf die Sie auch lokal Zugriff hätten (mit den selben Rechten).
     
  8. Hairfeti

    Hairfeti Thread Starter Banned

    Beiträge:
    462
    Zustimmungen:
    0
    Registriert seit:
    08.11.2003
    Besser, einfacher, schneller und komfortabler ist es mit Apache WEBDAV. Hätte ich damals schon die aktuelle Version dieser Software gehabt, könnte ich das Thema FTP-Server getrost ausgelassen haben. Man spart sich mit WEBDAV die User, die Ports und eine nicht einfach zu erstellende ftpd.conf. Darüber hinaus kann man gleichzeitig iCal, einen Web-Kalender veröffentlichen und abbonieren lassen und online bearbeiten.

    Dazu hier eine wunderbare Anleitung von einem anderen Benutzer:

    http://www.powermaki.de/

    Und FTP kann man getrost abschalten, denn je nach Einstellungen und Rechtevergabe kann man DAV als Virtuelle Disk auf jedem Desktop mounten lassen. Ob man nun diese "iDisk" an eine Gruppe oder an einen einzelnen Benutzer freigibt, das ist jedem selbst überlassen. Einstellungen lassen sich sogar mit einer .htaccess-Datei einzeln für jedes Verzeichnis ändern und erweitern. Viel Spaß.
     
  9. peppermint

    peppermint MacUser Mitglied

    Beiträge:
    7.380
    Zustimmungen:
    85
    Registriert seit:
    06.06.2003
    danke fü den tip

    danke, das mit apache hört sich sehr gut an...
    nur noch kurze eine frage, die ich mir evtl. auch selbst beantworten kann, weil ich darüber nur wenig weiss:

    zu apache webdav:
    hab mir zwar die www.webdav.org faqs durchgelesen, aber so für
    laien ist das trotzdem etwas schwierig:

    was ist der wesentliche unterschied zw. einem apache dav server zu betreiben
    oder einfach nur filesharing zu aktivieren bzw. kdx server?
    nehme an das apache einfach mehr sicherheit und kontrolle bietet.

    gruss
    pepper
     
  10. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    hallo hairfeti,

    auch wieder mal da ;)

    mit WebDAV das ist ne feine Sache.
    Und wenn man eh nen Apachen hat, dann ist es ja auch fix eingerichtet.

    -----
    Ergänzung:
    WebDAV geht über den Port 80 und verbraucht am Server keine zusätzlichen Resourcen.
    Am Router (wenn man einen verwendet) braucht man keinen zusätzlichen Port freischalten und an der Firewall kann man sich die üblichen ftp-Krämpfe sparen.

    FileSharing ist ein allgemeiner Begriff - Hier könnte man von "Filesharing über WebDAV sprechen".
    wie kdx genau funktioniert weiss ich nicht - scheint aber mehr wie ein Board zu sein, das zudem Chatfunktionen und persönlichen fileAustausch und sowas anbietet.
     
    Zuletzt bearbeitet: 12.05.2004

Diese Seite empfehlen

Benutzerdefinierte Suche