eigener ftp Server mit Serv-U 5.x
lima-city → Forum → Heim-PC → Software
anonymus
beispiel
benutzer
datei
direktive
dmon
gruppen
klasse
kommando
konfiguration
log
message
multi
permission
pub
single
status
syntax
verzeichnis
zugreifen
-
Servus zusammen, ich hab da nen kleines Problem.
Ich hab mir mit Serve- U 5.x nen ftp Server gemacht, dieser ist jedoch nur ?ber das Lokale Netztwerk erreichbar, nicht jedoch ?bers Internet (ftp://mapa-online.dyndns.org), wenn ich es ?bers Internet versuche ihn zu erreichen, bekomme ich folgene Fehlermeldung: Beim ?ffnen des Ordners auf dem ftp Server ist ein Fehler aufgetreten. Stellen sie sicher, das sie die erfordenlichen Zugriffsrechte f?r den Ordner haben.
Details: Das Zeitlimmit f?r den Vorgang wurde erreicht. Oder er akzeptiert die Login Daten gar nicht (?ndert sich sporadisch). Kennt sich hier jemand mit dem Programm aus und kann mir ggf. ?ber ICQ oder MSN bei der behebung des Problems und der konfiguration helfen.
Ich hab mal nen Test Acc eingerichtet, f?r alle, die es aus irgendwelchen Gr?nden, die mir helfen k?nten, (Login: Test PW:test) der Server ist unter ftp://mapa-online.dyndns.org zu erreichen.
mfG
mapa -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
vielleicht blockiert die firewall oder der router da etwas.
-
also, die Firewall im Router ist aus
-
Also an deiner Stelle wuerde ich das mit Apache machen.
-
damit kann ich aber soweit ich wei? keinen ftp aufsetzten, was ic aber machen m?chte.
edit:
mit filezilla komm ich jetzt auf den Server drauf, aber ich will, das der Server auch ?ber Internet mim Browser erreichbar ist ( was bisjetzt nur im Netztwerk funntioniert).
Beitrag ge?ndert am 5.11 20:24 von mapa -
Ist ein Turtorial von einem anderen Server! Villeicht hilfts dir weiter!
Linux als Ftp - Server
**********************
1. Grundlagen
2. Site - Planung
Hardware
Betriebsystem
Auswahl der Serversoftware
3. Installation des wu - ftp
4. Konfiguration von wu - ftp
5. Direktiven der ftp - access - Datei
6. Zugangsbeschr?nkung mit /etc/ftphosts
7. Zugangsbeschr?nkung mit /etc/ftpusers
8. Gruppenkonfiguration mit /etc/ftpgroups
9. Konversionsdatei mit /etc/ftpconversions
10. Datenstruktur f?r anonymus FTP und restricted FTP
1. Grundlagen
Es gibt zwei Arten von FTP - Servern:
den anonymus FTP - Server
den restricted FTP - Server
Der anonymus FTP - Server wird haupts?chlich genutzt, um freie
Software f?r jeden zug?nglich zu machen. Der Zugang ist anonym; das
hei?t, es ist nicht notwendig, einen Account auf dem Server zu
haben.
Der restricted FTP - Server stellt Software nur f?r einen bestimmten
Personenkreis zur Verf?gung. Das hei?t, man muss sich zuerst einen
Account auf diesem Server machen, um an diese Software zu kommen.
Beide Systeme haben eins gemeinsam. Der User hat nur beschr?nkten
Zugriff auf das Dateisystem. Das Wurzelverzeichnis ist n?mlich in
ein anderes - vom Administrator festgelegtes - Verzeichnis
verschoben worden.
2. Site - Planung
Hardware
Es kommt immer darauf an, welche Anforderungen man stellt bzw.
welche Anforderungen der Server erf?llen soll. Bei de Planung sollte
man folgende Hauptkriterien ber?cksichtigen.....
Die Anzahl der gleichzeitig m?glichen Sessions
Erm?glichung von tar und compress "on the fly"
Und den Plattenplatzbedarf...
Bei geringen Bedarf reicht es - wenn man als Basis 30 Sessions nimmt
- einen Pentium Rechner mit min. 32 MB Ram und etwa 4 GB
Festplattenkapazit?t benutzt. Wenn die M?glichkeit der Kompression
verzichtet wird, kann der Arbeitsspeicher noch weiter reduziert
werden.
Wenn mehr Sessions erm?glicht werden sollen, sollte man einen
schnellen Pentium ab 450 Mhz , mindestens 64 MB Ram und vor allem
SCSI - Festplatten verwenden. SCSI deswegen, da diese "schneller"
und leichter erweiterbar sind. Auch die Auswahl des Motherboards
spielt eine Rolle, da einige nicht in der Lage sind, gr??ere Mengen
an Arbeitsspeicher aufzunehmen. Egal, welche Konfiguration man
verwendet, es ist immer darauf zu achten, dass diese auch ohne
Probleme erweiterbar ist.....
Betriebsystem
Der FTP - Server ben?tigt in der Regel nur ein Basisbetriebssystem
ohne Compiler. Die M?glichkeit, Perl - Scripte ablaufen zu lassen,
sollte aber gegeben sein. Auf Tool's, Games, etc. sollte der
Sicherheit wegen verzichtet werden. Das System sollte auf mehrere
Partitionen installiert sein, wobei die nicht zu ver?nderten
Bereiche Read Only gemountet werden sollte.
Auswahl der Serversoftware
Die Auswahl bezieht sich immer auf die Verwendung des Servers.
Folgende Punkte spielen bei der Auswahl eine Rolle:
anonymus FTP
restricted FTP
Virtual Hosts
Access - Konfiguration
Source - Code
Support
Linux / Unix besitzt - von Haus aus - einen FTP - Daemon, der
theoretisch einen anonymen FTP - Service erm?glicht. Ich gehe hier
n?her auf den wu - ftpd ein, da dieser der am meisten eingesetzte
Daemon weltweit ist. Er besitzt sehr gro?e
Konfigurationsm?glichkeiten und vor allem sehr gute
Verwaltungstools. Des weiteren besteht die M?glichkeit, eine interne
Softwareverteilung anhand der oben aufgef?hrten Gastzug?nge zu
erm?glichen.
3. Installation des wu - ftp
Bei einigen Linux - Distrubationen wird bereits w?hrend der
Systeminstallation ein offener und anonymer FTP - Zugang
eingerichtet. Man kann mit ftp - localhost ?berpr?fen, wie der FTP -
Daemon eingerichtet ist. Ein anonymer Zugang zum System ist erst mal
unerw?nscht, da dieser sehr unsicher ist. Das Setzen eines Passworts
f?r den Benutzer ftp reicht nicht aus, da der Zugang an sich anonym
ist. Der ftp - Daemon sucht in der Datei /etc/passwd nach dem User
ftp. Wenn er diesen findet, wird eine anonyme Sitzung ge?ffnet. Um
diesem schnell entgegenzutreten, reicht es vorerst aus, den
Usernamen ftp in der /etc/passwd in z.B. wftp umzu?ndern. Es sollten
auch immer die neusten Versionen von wu - ftp auf dem System
installiert sein. Die Gr?nde hierzu liegen auf der Hand....
4. Konfiguration von wu - ftp
Zuerst sollte ?berpr?ft werden, ob der Daemon korrekt vom inetd
aufgerufen wird. Dazu muss man lediglich die Datei /etc/inetd.conf
?ffnen und die Zeile, die mit ftp beginnt betrachten. Normalerweise
sieht sie in etwa wie folgt aus:
ftp stream tcp nowait nobody /usr/sbin/tcpd in.ftpd -l -a
Die Bedeutungen der Felder sind:
<Name des Services><Socket
Typ><Protokoll><Flags><User><Serverpfad><Argumente>
Wie man sieht, wird bei der vorhandenen Distrubation der tcp -
Wrapper tcpd zwischen den inetd und den ftpd geschaltet. Des
weiteren ist der User nobody. Dies ist wichtig, um das System sicher
zu machen. Zur ausf?hrlichen Beschreibung des tcp - Wrappers kommen
wir sp?ter....
Hat man die Datei /etc/inetd.conf ge?ndert, muss der inetd mit
/bin/killa -HUP inetd zu einem erneuten Einlesen seiner
Konfiguration gezwungen werden. Des weiteren m?ssen die Dateien
ftpaccess, ftpgroups, ftphosts, ftpconversions und ftpusers aus dem
Verzeichnis ./doc/examples nach /etc kopiert werden. dadurch wird
das Verhalten des wu - ftp gezielt gesteuert.
5. Direktiven der ftpaccess - Datei
Die ftpaccess - Datei /etc/ftpaccess ist die Hauptdatei f?r die
Konfiguration der Verhaltens von wu - ftp. Die Direktive gliedern
sich in f?nf Klassen:
Zugriff (access)
Zugriffsrechte (permission)
Information (informational)
Informationssicherung (logging)
Verschiedenes (misc)
Nicht alle Direktiven m?ssen bei der Konfiguration benutzt werden.
bei denjenigen, die Default - Werte angegeben haben, wird die
Funktion mit den Default - Werten verwendet. Darf eine Direktive
mehrfach verwendet werden, ist der Status mit multi gekennzeichnet.
Hier die Direktiven im ?berblick:
alias
class
guestgroup
transfers
tar
umask
autogroup
compress
limit
message
overwrite
upload
banner
delete
loginfails
noretrieve
passwd - check
viritual
cdpath
deny
commands
private
path - filter rename
chmod
email
shutdown
Jetzt gehen wir mal auf die einzelnen Direktive etwas n?her ein....
ALIAS
Syntax: alias <string> <dir>
Klasse: misc
Status: optional
Default: kein Alias
Definiert einen Alias - String f?r ein Verzeichnis. Hiermit kann ein
Konzept mit logischen Verzeichnissen realisiert werden. Aliasse
werden nur von dem cd - Kommando ausgewertet. Beispiel:
alias honda /pub/recipies/honda
Das Problem hierbei ist, dass ein User, der vor einem anderen honda
- Verzeichnis steht, in dieses mit cd ./honda wechseln muss. Abhilfe
schafft man mit folgender Schreibweise: alias honda:
/pub/recipies/honda
AUTOGROUP
Syntax: autogroup <groupname> <class> [<class>....]
Klasse: access
Status: optional, single
Default: kein Gruppenwechsel
Wenn ein anonymer User zu einer bestimmten Klasse geh?rt, kann ihm
automatisch mit setgid() eine neue Gruppe zugeordnet werden. diese
Gruppenname <groupname> muss ein G?LTIGER Gruppenname aus /etc/group
sein. Das kann dazu verwendet werden, nur lokalen Benutzern den
Upload von Dateien zu erm?glichen.
Beispiel:
autogroup warez real, guest
Das ordnet den Benutzerklassen real und guest die Gruppe warez zu.
BANNER
Syntax: banner <path>
Klasse: infomational
Status: optional
Default: kein Banner
Bevor ein User seinen Namen und das Passwort eingibt, wird die
Banner - Datei ausgegeben. Es gibt FTP - Software, die das
sogenannte Multi Line Response nicht verarbeiten kann. Im
schlimmsten Fall ist es dem User nicht m?glich, den Server zu
nutzen.
Beispiel:
banner /var/ftpd/banner.txt
Dann wird bei Verbindungsaufbau der Inhalt der Datei an den Client
gesendet.
CDPATH
Syntax: cdpath <dir>
Klasse: misc
Status: optional, multi
Default: kein Suchpfad
Das definiert einen Suchpfad, der bei dem Kommando cd benutzt wird.
Dieser Suchpfad erm?glicht es dem User, direkt in ein Verzeichnis
oberhalb des Suchpfades zu wechseln. Die cdpath - Direktive kann
mehrfach editiert werden, wobei die Reihenfolge der Auswertung von
der Reihenfolge der Definition abh?ngig ist. Die "normale"
Suchreihenfolge beim Verzeichniswechsel ist:
aktuelles Verzeichnis
Alias
Suchpfad in der Reihenfolge der Definition
Die cdpath - Direktive kann dazu benutzt werden, um die Anzahl der
Aliasse zu verringern. Hierzu wird ein Verzeichnis angelegt, in dem
symbolische Links die leicht zu erreichenden Verzeichnisse
referenzirren.
Beispiel:
cdpath /pub
cdpath /cddir
so k?nne alle unter /pub liegenden Verzeichnisse direkt angesprungen
werden. So funktioniert auch cd linux an jeder Stelle des Servers,
es sei denn, es gibt ein gleichlautendes Verzeichnis im aktuellen
Verzeichnis oder einen Alias linux. In /cddir liegen die
symbolischen Links auf tiefer geschalteten Verzeichnisstrukturen.
CHMOD
Syntax: chmod <yes | no> <typelist>
Klasse: permission
Status: optional, single
Default: chmod erlaubt
Es erlaubt oder verbietet die Benutzung des FTP - Kommandos chmod
durch den User. Beispiel:
chmod no guest, anonymus
Es ist hier den Benutzergruppen guest und anonymus verboten, chmod
auszuf?hren bzw. zu benutzen.
!!! In der Voreinstellung ist allen Usern das FTP - Kommando chmod
erlaubt !!!
CLASS
Syntax: class <class> <typelist> <addrglob> [<addrglob>...]
Klasse: access
Status: required, multi
Default: -
Es wird eine Benutzerklasse eines bestimmten Typs und den
dazugeh?rigen Adressen definiert. Der Klassenname kann frei vergeben
werden. Es k?nnen auch Mehrfachzugeh?rige zu einer Klasse definiert
werden. Wird jedoch vergessen, eine g?ltige Klasse f?r einen Host zu
definieren, wird diesem der Zugriff verweigert. Die Typliste ist
eine durch Komma getrennte Liste aus:
real
guest
anonymus
Wenn das Schl?sselwort real verwendet wird, kann die Klasse auf User
zutreffen, die ftp auf einem realen Account machen m?chten. Das
Schl?sselwort anonymus trifft auf die Nutzer des anonymus FTP zu.
Mit guest wird die Klasse f?r den beschr?nkten Gastzugriff
eingerichtet.
Beispiel:
class local real ,guest ,anonymus *.vhonda.com
class local2 real mista.vhonda.com
class remote anonymus *
class grp1 guest *.virtual.edu
class grp2 guest *.bigdomain.mil
Die Klasse local besteht aus allen g?ltigen Typen, die aber nur von
der Domain vhonda.com stammen d?rfen. Die Klasse local2 sind reale
User von einer bestimmten Maschine. Die Klasse remote ist lediglich
vom Typ anonymus, aber weltweit. Die Klassen grp1 und grp2 sind vom
Typ guest von virtual.edu und bigdomain.mil
COMPRESS
Syntax: compress <yes | no> <classglob> [<classglob>...]
Klasse: misc
Status: optional, single
Default: keine Kompressionsm?glichkeit
Dieser "Hauptschalter" erm?glicht, "compress on fly" zu steuern.
Hierbei wird die Kompressionsm?glichkeit nur f?r die vorher mit der
Direktive class definierten Benutzerklassen freigegeben. Die
Konversionen sind in der Datei /etc/ftpconversions definiert. Im
folgenden Beispiel ist allen Benutzerklassen bis auf grp2, die
Datenkompression mit compress oder gzip erlaubt.
compress yes loc* remote grp1
compress no grp2
DELETE
Syntax: delete <yes | no> <typelist>
Klasse: permission
Status: optional, single
Default: L?schen erlaubt
Erlaubt oder verbietet die Benutzung des Kommandos delete durch den
User. Die Typeliste besteht aus den durch Kommas getrennten
Zugriffstypen anonymus, guest und real.
!!!Voreinstellung ist, dass ALLEN Usern das Kommando delete erlaubt
ist!!!
Diese Zeile sollte in jeder Konfiguration enthalten sein, da diese
guest und anonymus den Befehl delete verbietet.
Beispiel:
delete no guest, anonymus
DENY
Syntax: deny <addrglob> <message_file>
Klasse: access
Status: optional, multi
Default: keine Zugriffsverweigerung
Versagt immer den Zugriff f?r die eingetragenen Hosts und gibt die
Hinweisdatei aus. Wenn das Adressfeld den String enth?lt, so wird
allen Hosts der Zugriff verweigert, die keinen Namens - Server -
Eintrag besitzen.
Beispiel:
deny nirvana.virtual.edu /var/local/msgs/not_welcome.txt
deny locals* /var/local/msgs/no_loopback.txt
deny !nameserverd /var/local/msgs/no_nameserver.txt
Die User von nirvana.virtual.edu sind nicht willkommen. Es werden
auch alle Verbindungen, mit nicht dem Namenserver bekannten
Maschinen unterbunden.
EMAIL
Syntax: E - Mail <name>
Klasse: informational
Status: optional, single
Default: keine Mailadresse
Definiert die E - Mailadresse des FTP - Server - Verwalters. Der
String name wir immer dann ausgegeben, wenn in auszugebenden Infos
der Magic Cookie %E benutzt wird.
Beispiel:
email mike@vhonda.com
GUESTGROUP
Syntax: guestgroup <groupname> [<groupname>...]
Klasse: access
Status: optional, multi
Default: keine Gastgruppen
Dieser legt die Gastgruppen f?r die restricted - FTP - Funktion
fest. Wenn also ein realer User Mitglied dieser Gruppe ist, verh?lt
sich der FTP - Daemon analog zu der anonymus - Funktion. Das
Wurzelverzeichnis wird mit chroot() verschoben und der Benutzer darf
die Kommandos user und pass nicht mehr benutzen. Der Gruppenname
muss ein g?ltiger aus der Datei /etc/group sein. Das Verzeichnis
muss genauso wie das anonymus - Verzeichnis konfiguriert werden. Das
Feld der Datei /etc/passwd wird in zwei Felder aufgeteilt. Das erste
wird als Argument chroot() ?bergeben. Das zweite gibt das neue
Heimatverzeichnisfeld der Datei /etc/passwd an.
Beispiel:
mike:<passwd>:50:77:restricted User:/soft/softuser/
/software:/etc/dummy
Hat sich also mike eingeloggt, verschiebt der FTP - Daemon das
Verzeichnis sofort nach /soft/softuser und wechselt nach /software.
Er kann jetzt nur die Verzeichnisstruktur unter /soft/softuser
benutzen.
Beispiel:
guestgroup softuser softdist
Mike geh?rt zur Gruppe softuser und wird deswegen als guest
behandelt.
LIMIT
Syntax: limit <class> <n> <times> <message_file>
Klasse: access
Status: optional, multi
Default: unbegrenzter Zugriff
Regelt den Zugriff in der Klasse auf Benutzer zu bestimmten Zeiten
und gibt im Fall einer Verweigerung die mit messgage_file
festgelegte Datei aus. Diese Pr?fung wird nur beim Einlogen
verwendet. Wenn mehrere Limit - Direktiven betroffen sind, wird die
erste nutzbare gew?hlt. Wenn keine g?ltige vorhanden ist, oder das
Limit auf -1 gesetzt ist, gilt uneingeschr?nkter Zugriff.
Beispiel:
limit remote 50 SaSu | Any 1800-0600
/var/local/ftpd/msgs/msg.toomany
limit remote 30 Any /var/local/ftpd/msgs/msg.toomany
limit local 50 Any /var/local/ftpd/msgs/msg.toomany
Diese Konfiguration l?sst maximal 100 Sitzungen gleichzeitig zu. Man
sollte immer eine Obergrenze einrichten, um einen Kollaps der
Maschine mangels Hauptspeicher zu vermeiden. Laut der angegebenen
Konfiguration sind Samstags, Sonntags und von 18 bis 6 Uhr 50 User
der Klasse remote zugelassen. In der anderen Zeiten sind es jedoch
nur 30.
LOGINFAILS
Syntax: loginfail <number>
Klasse: access
Status: optional, single
Default: 5 vergebliche Versuche
Wenn ein User zuviel vergebliche Login - Versuche hat, wird die
Verbindung geschlossen. Im Normalfall sollten drei Versuche
ausreichen.
LOG COMMANDS
Syntax: log commands <typelist>
Klasse: logging
Status: optional, single
Default: kein logging
Schaltet das Aufzeichnen durch den Benutzer verwendeter Kommandos
ein. Die Typliste ist eine durch Kommas getrennte Liste von
Schl?sselw?rtern. Diese stellen die drei m?glichen Benutzergruppen
dar:
anonymus
guest
real
Erscheint anonymus, werden alle Kommandos beim anonymen Zugriff in
die log - Datei geschrieben. Bei guest alles Kommandos dieser Gruppe
und bei real die Kommandos der realen Benutzer.
!!! Damit der ftp - Daemon die log - Dateien schreiben kann, muss er
mit der Option -/ gestartet werden!!!
LOG TRANSFERS
Syntax: log transfers <typelist> <directions>
Klasse: logging
Status: optional, single
Default: kein logging
Zeichnet die Transfers der Benutzergruppen und die Transferrichtung
auf. Die Schl?sselw?rter, die die drei m?glichen Benutzergruppen
darstellen sind
anonymus
guest
real
Erscheint anonymus in der Liste, werden alle Transfers beim anonymen
Zugriff in die log - Datei geschrieben, bei guest alle Kommandos
dieser Gruppen und bei real die Transfers der realen User.
Zus?tzlich kann die Transferrichtung angegeben werden. die Richtung
wird mit folgenden Schl?sselw?rtern angegeben:
inbound
outbound
inbound ist der Transfer von Daten zum Server und outbound folglich
dann entgegengesetzt.
MESSAGE
Syntax: message <path> {<when> {<class>...}}
Klasse: informational
Status: optional, multi
Default: keine Ausgabe
Definiert einen Pfad auf eine auszugebende Datei. Diese kann beim
Einloggen oder beim Wechseln des Verzeichnisses ausgegeben werden.
Der <when> Parameter darf zwei Werte besitzen:
LOGIN
CWD=<dir>
Ist LOGIN gesetzt, wird die Datei nach erfolgreichem Login
ausgegeben. Bei CWD wird in dir das Verzeichnis geschrieben, bei dem
das Ausgeben der Datei getriggert werden soll. Optional k?nnen auch
die Benutzerklassen angegeben werden, bei denen die Datei angezeigt
werden soll.
In den anzuzeigenden Dateien gibt es einige Magic Cookies, mit denen
bestimmte Ersetzungen erreicht werden k?nnen:
%T Lokale Zeit
%F Freier Plattenplatz in KB des aktuellen Arbeitsverzeichnisses
%C Aktuelles Arbeitsverzeichnis
%E Email - Adresse des Server - Verwalters
%R Name des Remote - Hosts
%L Name des Local - Hosts
%u Username mit der RFC931 - Authentisierung bestimmt
%U Username zur Zeit des Logins
%M Maximal erlaubte Anzahl der User in dieser Klasse
%N Momentane Anzahl der User in dieser Klasse
Beispiel:
message /etc/msgs/welcome.msg login
message .message cwd=*
Die Datei /etc/msgs/welcoms.msg wird bei jedem Login ausgegeben.
Existiert in einem Verzeichnis die Datei .message, wird diese beim
Verzeichniswechsel angegeben.
NORETRIEVE
Syntax: noretrieve <filename> <filname> .....
Klasse: access
Status: optional, single
Default: keine Downloadbeschr?nkung
Verhindert den Download der angegebenen Dateien. Hierbei muss
zwischen absoluten Pfadnamen und Dateinamen unterschieden werden.
Relative Dateinamen wie .../group sind nicht erlaubt. Wenn z.B. die
Datei /etc/passwd gesch?tzt werden soll, so ist als Dateiname
/etc/passwd anzugeben. Sollen aber alle Dateien gesch?tzt werden,
die passwd hei?en, darf nur passwd angegeben werden.
PRIVATE
Syntax: private <yes | no>
Klasse: access
Status: optional, single
Default: kein erweiteter Zugriffsmode
Ein genereller Schalter f?r die erweiterte Zugriffsm?glichkeit. Nach
erfolgreichem Einloggen kann der User mit dem Kommando SITE GROUP
und SITE GPASS einen erweiterten Zugriffsmode einer anderen Gruppe
erhalten. Waren Gruppenname und Passwort g?ltig, wird der User
Mitglied einer Gruppe, die in /etc/ftpgroups spezifiziert ist.
README
Syntax: readme <path> {<when> {<class>}}
Klasse: Informational
Status: optional, multi
Default: kein Hinweis
Diese Direktive erm?glicht die Ausgabe eines Verweises auf die
README - Datei. Die Dateien werden aber nicht ausgegeben. Die
Funktion sollte daher benutzt werden, auf aktuelle Hinweisdateien in
den Verzeichnissen aufmerksam zu machen. Es k?nnen mehrere Klassen
angegeben werden. gibt man allerdings eine ung?ltige oder nicht
existierende Benutzerklasse an, ist somit die ganze Zeile ung?ltig.
Beispiel:
readme README* login
readme README* cwd* remote local
Liegt also in /pub ein README, wird beim ersten Wechsel in dieses
Verzeichnis folgende Ausgabe erscheinen:
250 - Please read the file README
250 - it was last modified on <Angabe des Datums der letzten
Aktualisierung>
250 - CWD command successful.
SHUTDOWN
Syntax: shutdown <path>
Klasse: misc
Status: optional, single
Default: kein automatischer Shutdown
Wenn die referenzfierende Datei <path> existiert, pr?ft der Server
diese regelm??ig um herauszufinden, ob der Server herunterf?hrt.
Wenn ein Shutdown geplant ist, wird der User vorher gewarnt, neue
Sitzungen werden unterbunden (deny), wenn eine vorher eingestellte
Zeit abgelaufen ist, und bevorstehenden Verbindungen werden zu einer
bestimmten Zeit vor dem Shutdown abgebrochen (disconnect). Die Datei
muss folgende Format besitzen:
<Jahr> <Monat> <Tag> <Stunde> <Minute> <deny_offset>
<disconnect_offset> <Text>
Jahr jedes Jahr ab 1970
Monat 0 bin 11
Tag nicht notwendig
Stunde 0 bis 23
Minute 0 bis 59
deny_offset In Stunden und Minuten, in der Form SSMM
disconnect_offset In Stunden und Minuten, in der Form SSMM
Text siehe die Direktive MESSAGE
Magic Cookies
%s Zeit, wann das System herunterf?hrt
%r Zeit, wann neue Verbindungen abgelehnt werden
%d Zeit, wann bestehende Verbindungen abgebrochen werden
Es darf nur eine shutdown - Direktive in der ftpaccess - Datei
existieren.
TAR
Syntax: tar <yes | no> <classglob> [<classglob>...]
Klasse: misc
Status: optional, single
Default: tar nicht m?glich
Der Hauptschalter, um die M?glichkeit des "tar on the fly" zu
steuern. Hierbei wird die M?glichkeit der Behandlung ganzer
Verzeichnisb?ume freigegeben. Die dazugeh?renden Konversionen sind
in der Datei /etc/ftpconversions definiert.
Beispiel:
tar yes loc* remote grp1
tar no grp2
Es ist also allen Benutzerklassen bis auf grp2 tar erlaubt.
OVERWRITE
Syntax: ocerwrite <yes | no> <typelist>
Klasse: permission
Status: optional, single
Default: ?berschreiben erlaubt
Erlaubt oder verbietet das ?berschreiben von Dateien. Die Typliste
besteht wieder durch die Kommas getrennten Zugriffstypen anonymus,
guest und real.
Beispiel:
overwrite no guest, anonymus
Es ist den Benutzergruppen guest und anonymus das ?berschreiben von
Dateien verboten.
!!!Grundeinstellung ist, dass allen Benutzern das ?berschreiben
ERLAUBT ist!!!
PASSWD - CHECK
Syntax: passwd - check <none | trivial | rcf822> (<enforce | warn>)
Klasse: permission
Status: optional, single
Default: kein Passwortcheck, der Use wird immer eingeloggt
Sie legt den Level <none | trivial | rfc822> und die "H?rte"
<enforce | warn> der Passwortpr?fung bei anonymen Logins fest. Die
verschiedenen M?glichkeiten des ersten Arguments sind:
none Keine ?berpr?fung des Passworts
Trivial Das Passwort muss ein "@" enthalten
Rcf822 Das Passwort muss eine nach rcf822 g?ltige Adresse sein
Die H?rte der Fehlerbehandlung legt das zweite Argument fest:
warn Der User wird gewarnt, ihm aber erlaubt, sich einzuloggen
enforce Der User wird gewarnt und anschlie?end ausgelohht
Beispiel:
passwd - check rcf822 enforce
Hier ist die h?rteste Passwortpr?fung aktiviert.
PATH - FILTER
Syntax: path-filter<typelist><mesg>allowed_charset>{<disallowed reg-
exp>...}
Klasse: permission
Status: optional, mulit
Default: alle Dateinamen erlaubt
F?r die Benutzerlisten definiert path - filter mit regul?ren
Ausdr?cken <allowed_charset>, wie ein g?ltiger Dateiname auszusehen
hat und wie nicht. Falls der Dateiname basierend auf den regul?ren
Ausdr?cken ung?ltig ist, wird eine Datei <mesg> ausgegeben.
Beispiel:
path - filter anonymus /etc/msgs/funnyname ^[ -A -Za -z0 - 9\ . ] *$
^\ . ^- ^ =
Die Dateinamen von anonymen Benutzern d?rfen mit Buchstaben,
Ziffern, dem Punkt und dem Bindestrich beginnen.
RENAME
Syntax: rename <yes | no> <typelist>
Klasse: permission
Status: optional, single
Default: Umbenennen erlaubt
Es wird die Benutzung des Kommandos rename durch den User erlaubt
oder verboten. Es wird wieder zwischen den Zugriffstypen anonymus,
guest und real unterschieden.
Beispiel:
Rename no guest, anonymus
Es ist also den Benutzergruppen guest und anonymus verboten, den
Befehl rename auszuf?hren.
!!! Grundeinstellung ist, dass allen Usern das Kommando rename
erlaubt ist !!!
UMASK
Syntax: umask <yes | no> <typelist>
Klasse: permission
Status: optional, single
Default: Setzen einer Maske erlaubt
Erm?glicht oder verbietet die Benutzung des Befehls umask.
Beispiel:
Umask no guest, anonymus
Es ist also den Benutzergruppen guest und anonymus verboten, den FTP
- Befehl umask auszuf?hren.
UPLOAD
Syntax: upload <root-dir><dirglob><yes | no><owner><group><mode[dirs
| nodirs]
Klasse: permission
Status: optional, multi
Default: Upload erlaubt
Definiert ein Verzeichnis mit einer Namensexpansion, dass den Upload
von Dateien erm?glicht oder verbietet. Wird der Upload erm?glicht,
geh?ren alle Dateien dem Besitzer aus <owner> und der Gruppe aus
<group>. Diese haben dann den Zugriffsmodus aus <mode>. Das letzte
Argument erm?glicht das Anlegen von Verzeichnissen mit dem Kommando
mkdir zu sperren oder zu erlauben. Die Uploaddirektive betrifft nur
die User, die ein Heimatverzeichnis haben, dass <root - dir >
entspricht.
Beispiel:
upload /home/ftp /pub/incoming yes ftpadm nobody 0400 nodirs
upload /home/ftp /bin no
upload /home/ftp /cddir no
upload /home/ftp /etc no
upload /home/ftp /lib no
upload /home/ftp * no
In allen Verzeichnissen au?er /pub/incoming ist der Upload von
Dateien erlaubt. Dateien die in /pub/incoming abgelegt werden, haben
den User ftpadm, die Gruppe nobody, den Mode 0400 (- r-------) und
d?rfen keine Verzeichnisse sein.
VIRTUAL
Syntax: virtual <adress> <root | banner | logfile> <path>
Klasse: misc
Status: optional, multi
Default: keine virtual - Host - Unterst?tzung
Regelt die Benutzung von virtuellen Server - Adressen, wobei die
Adresse <adress> die IP - Adresse des Servers darstellt. Das zweite
Argument erm?glicht die Festlegung der Referenzierung durch <path>.
Entweder zeigt der Pfad auf das Wurzelverzeichnis des Servers
<root>, auf die Bannerdatei <banner> oder auf die Transfer - log -
Datei <logfile>. Falls die Transfer - log - Datei nicht angegeben
wurde, wird die Default - Datei verwendet. Alle anderen Message -
Dateien und Zugriffsbeschr?nkungen der ftpaccess - Datei werden
grunds?tzlich von allen virtuellen Servern benutzt.
6. Zugangsbeschr?nkung mit /etc/ftphosts
In dieser Datei kann der Zugriff eingestellt werden. hier steht
allerdings mehr die M?glichkeit im Vordergrund, reale User zu
konfigurieren. F?r die Namensaufl?sung gilt mit einer Einschr?nkung
dasselbe wie bei der ftpaccess - Direktive class. Ein Stern als
Wildcard beschreibt nicht den ganzen Hostnamen. Der Stern ersetzt
nur die Werte zwischen den Punkten.
Beispiel:
# host access file
#
# Everything after a '#' is treated as comment.
#empty lines are ignored
allow mat nirvana.virtual.edu
allow mike *.vhonda.com
deny fred mista.vhonda.com 126.127.128.*
Mike, der Serververwalter, darf von allem Maschinen der Domian
vhonda.com auf den FTP -Server ftp machen. Fred hat mehrfach
versucht, sich als root einzuloggen. Daraufhin wird ihm der Zugriff
von seiner Domain verweigert. Da er aber oft bei seinem Freund Mat
ist, ist der Zugriff auch f?r ihn eingeschr?nkt. Hingegen darf Mat
von dem Rechner seiner Domain auf den Server unter seinem Account
zugreifen.
7. Zugriffsbeschr?nkung mit /etc/ftpusers
Alle Benutzer, die in /etc/ftpusers aufgelistet sind, d?rfen kein
ftp von au?en auf den Server machen. Im allgemeinen werden hier die
Systemuser eingetragen. Hierdurch wird das Einschleusen von
Trojanern erschwert.
8. Gruppenkonfiguration mit /etc/ftpgroups
Das Wechseln der Gruppe wird eher selten ben?tigt. Es ist die
Einf?hrung einer neuen Datei mit Passw?rtern auch nicht ganz
einfach. Bei anonymus FTP muss diese Datei sogar wurzelverschobenen
/etc - Verzeichnis liege. Deswegen sollte man bei der Benutzung der
Gruppen die ftpaccess - Datei sehr sorgf?ltig konfigurieren. Ein
Passwortwechsel ist mit sehr viel Kopfarbeit verbunden, zu dem auch
noch der Test des Passworts kommt.
Beispiel:
# ftpgroup file
#
# Everything after a # is treated as comment.
# empty lines are ignored
softadm:<password>:softdist
Der regul?re User softadm hat die Gruppe softuser. Bei der
Zusammenstellung von Software ist aber auch bei ftp die Gruppe
softdist notwendig, was der obige Eintrag erm?glicht.
9. Konversionsdatei /etc/ftpconversions
In dieser Datei werden die Zusammenh?nge f?r tar und compress "on
the fly" festgelegt. Bei gro?en Servern ist auch gzip mit maximaler
Kompression wegen des hohen Ressourcenverbrauchs problematisch. Hier
sollte man die Defaultwerte ?berarbeiten um den entgegenzuwirken.
Man kann auch die Endung .tgz anf?gen. Ob die M?glichkeiten der
Konversion noch weiter entwickelt werden, ist allerdings noch
fraglich. Das Dateiformat ist aber auf jeden Fall schon f?r weitere
M?glichkeiten vorbereitet.
10. Datenstruktur f?r anonymus FTP und restricted FTP
Nachdem die Konfiguration der verschiedenen Files abgeschlossen ist,
muss die Datenstruktur f?r das wurzelverschobene ftp angelegt
werden. Zuerst sollten die Gruppeneintr?ge in /etc/groups erzeugt
werden. f?r anonymus FTP sollte eine eigene Gruppe zur Verf?gung
stehen. Praktischerweise nennt man diese auch ftp. Diese Gruppen f?r
restricted FTP hat man ja bereits in der ftpaccess - Datei
festgelegt. Das waren die Gruppen softuser und softdist. Hierzu
sollte der passenden Usereintrag f?r anonymus FTP in /etx/passwd und
f?r restricted FTP angelegt werden.
Nun fehlen lediglich noch dir Verzeichnisstruktur und die wenigen
Binaries im (verschobenen) /bin - Verzeichnis.
Eine Minimalstruktur kann wie folgt aussehen:
| - - d - -x - - x - - x bin
| | - - - - - x - - x - - x compress
| | - - - - - x - - x - - x gzip
| | - - - - - x - - x - - x ls
| ' - - - - - x - - x - - x tar
| - - d - - x - - x - - x cddir
| - - d - - x - - x - - x etc
| | - - - - r - - r - - r - - group
| ' - - - - r - - r - - r - - passwd
' - - drwxr - xr - x pub
Alle Verzeichnisse und Files bis auf pub geh?ren root. Werden in bin
statisch gebundene Programme verwendet, so kann auf ein lib -
Verzeichnis mit der libc und dem ld verzichtet werden. das
Verzeichnis pub geh?rt nicht root, sondern einem User ftpadm mit der
Gruppe nobody. Dieser User ist der Administrationsuser, der auch ein
Heimatverzeichnis auf dem Server hat. Das Verzeichnis pub wird
nat?rlich nur f?r anonymus FTP ben?tigt, f?r restricted FTP wird
statt dessen ein Verzeichnis software angelegt. Es sind auch die
Permissions der Verzeichnisse und der Files zu beachten. Nur pub hat
weitergehende Permissions, um den FTP - Administrator die Arbeit zu
erleichtern. Im public - Zweig m?ssen aber f?r die Welt schreibbare
Directories und Files vermieden werden.
Arbeiten mehrere Administratoren an einem Verzeichnisbaum, muss dies
?ber die Gruppenrechte geregelt werden. weil der pub - bzw. der
software - Baum nicht root geh?rt, ist eine Personalunion von FTP -
Administrator und root nicht unbedingt notwendig. Es ist au?erdem
wichtig, dass die Dateien in etc/passwd und etc/group nur die
notwendigsten Eintr?ge enthalten und vor allem keine Passw?rter.
So enth?lt etc/passwd (nicht /etc/passwd) lediglich:
root : * : 0 : 0 :::
ftpadm: * : 504 : 99 :::
und etc/group:
root : : 0 :
nobody : : 99:
Bei restricted FTP m?chte man meistens, dass der User ftp machen
kann, sich aber nicht regul?r einloggen darf. Die erreicht man durch
den Shell - Eintrag /etc/dummy in das Shell - Feld der Users und
durch den Eintrag von /etc/dumy in /etc/shells. Der FTP - Daemon
wertet /etc/shells aus. Alle g?ltigen Shells, die von realen
Benutzern verwendet werde, m?ssen hier eingetragen sein. Will man
Fehlermeldungen bei Einlog - Versuchen von restricted Benutzern
vermeiden, kann man folgenden dummy in /etc installieren:
/* dummy shell */
#include <stdio.h>
void main (void)
{
fprintf (stderr,"\n Sorry, no permission to log in! \n \n");
}
Die Datei wird kompiliert und installiert mit:
cc -s -static dummy.c -o dummy
install -m 755 -o root -g sys dummy /etc
Damit ist die Installation vollst?ndig abgeschlossen. Der FTP -
Administrator muss sich lediglich mirror und die dazugeh?renden
Skripte konfigurieren.
Um Transferauswertungen zu erstellen, kann das Programm
~/util/xferstats verwendet werde. Die Programme ftpcount(1) und
ftpwho(1) sind n?tzlich, um den aktuellen Status des Servers
festzustellen.
Sollten noch Fragen auftauchen, auf die hier nicht eingegangen
worden ist, schreibt mir einfach ne Mail, und ich wird sehen, ob ich
euch helfen kann.
Schaut aber bitte zuerst bei folgenden Links nach, ob das Problem
nicht schon beschrieben ist....
http://www.suse.de/
http://www.linux.de/
Das Tutorial wurde geschrieben von: peterbond
Beitrag ge?ndert am 5.11 21:56 von hofnarr -
danke f?r die Tipps, nur hab ich vielleicht vergessen, das der ftp Server z.Z. unter Windows 2000 SP4 laufen sool, da ich mit Windows noch nicht so viel erfahrung habe.
Das Oben verlinke tutorial werde ich mir aufjeden Fall aml angucken.
mfG
mapa
Beitrag ge?ndert am 5.11 22:06 von mapa -
Also mit Windows kannst du das vergessen. Das ist total kompliziert. Wenn du SuSE Linux hast, geht das ganz einfach!
Ins yast gehen - ftp-Server einrichten. Es gibt meines Wissens auch eine Apache-Extension fuer ftp. -
Kann von Serv-U nur abraten. Damit ist einiges m?glich wenn man es b?se mit Dir meint!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage