![]() ![]() ![]() |
![]() ![]() |
Das Kommando ftp dient der Übertragung von Daten von einem Internetrechner zu einem anderen. Die Besonderheit des zugehörigen Protokolls liegt in den getrennten Kanälen für die Daten und die Steuerung (Abbildung) sowie in der Datenübertragung ohne Verwendung eines Spoolers.
Im RFC 959 ist für FTP TCP-Port 20 als Steuerungskanal und TCP-Port 21 als Datenkanal festgelegt. FTP verwendet als Transportprotokoll immer TCP, da dieses bereits Vorkehrungen für einen sicheren Datentransfer enthält und FTP sich darum nicht zu kümmern braucht.
Abbildung: File Transfer Protokoll
Einrichtung des Servers
Per Voreinstellung sollte das Paket bereits installiert sein: In den Dateien /etc/inetd.conf und /etc/services müssen die entsprechenden Einträge vorhanden sein:
user@sonne> less /etc/inetd.conf ... # Option -a bewirkt die Auswertung der Datei /etc/ftpaccess # ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd -a ... user@sonne> less /etc/services ... ftp 21/tcp ...
Beeinflusst wird die Arbeit des FTP-Servers durch drei (vier) Dateien:
/etc/ftpusers: enthält die Nutzerkennzeichen, die FTP nicht verwenden dürfen:
user@sonne> less /etc/ftpusers # # ftpusers # This file describes the names of the users that may # _*NOT*_ log into the system via the FTP server. # This usually includes "root","uucp", "news" and the # like, because those users have too much power to be # allowed to do "just" FTP... # root lp news uucp games man at mdom gnats nobody # End.
Die mit dem Paket installierten Dateien sollten in den meisten Fällen den Ansprüchen genügen. Auf Client-Seite ist keinerlei Konfiguration notwendig. Eine kleine Beispielsitzung soll die Installation testen:
user@sonne> ftp sonne Connected to sonne.galaxis.de. 220 sonnegalaxis.de FTP server (Version wu-2.4.2-academ[BETA- 18](1) Fri Dec 11 19:58:25 /etc/localtime 1998) ready. Name (sonne:user): 331 Password required for user. Password: 230 User user logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/home/user" is current directory. ftp> ? Commands may be abbreviated. Commands are: ! debug mdir sendport site $ dir mget put size account disconnect mkdir pwd status append exit mls quit struct ascii form mode quote system bell get modtime recv sunique binary glob mput reget tenex bye hash newer rstatus tick case help nmap rhelp trace cd idle nlist rename type cdup image ntrans reset user chmod lcd open restart umask close ls prompt rmdir verbose cr macdef passive runique ? delete mdelete proxy send ftp> cd /usr/local 250 CWD command successful. ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 10 drwxr-xr-x 10 root root 1024 Feb 15 15:52 . drwxr-xr-x 23 root root 1024 Feb 15 15:54 .. drwxr-xr-x 2 root root 1024 Feb 15 15:48 bin drwxr-xr-x 7 root root 1024 Apr 20 13:15 ftp drwxr-xr-x 6 root root 1024 Dec 12 01:20 httpd drwxr-xr-x 4 root root 1024 Feb 15 15:52 httpsd drwxr-xr-x 2 root root 1024 Feb 15 15:48 include drwxr-xr-x 2 root root 1024 Feb 15 15:05 info drwxr-xr-x 2 root root 1024 Feb 15 15:48 lib drwxr-xr-x 12 root root 1024 Apr 19 08:47 man 226 Transfer complete. ftp> bye 221 Goodbye.
Der einfachste Weg um anonymes FTP zuzulassen (Nutzerkennzeichen ftp oder anonymous), ist unter SuSE die Installation des Paketes ftpdir aus der Serie n. Die Schritte zur Realisierung per Hand sollen hier in knapper Form abgehandelt werden.
In der /etc/passwd muss ein Account unter dem Kennzeichen ftp existieren:
root@sonne> less /etc/passwd | grep ftp ftp:x:40:2:ftp account:/usr/local/ftp:/bin/bash
Das eingetragene Homeverzeichnis ist gleichzeitig die Basis für die anzulegenden Dateien und Verzeichnisse.
Im FTP-Basisverzeichnis sind folgende Unterverzeichnisse mit den angegebenen Rechten zu erzeugen:
root@sonne> ls -l /usr/local/ftp total 7 drwxr-xr-x 2 root root 1024 Apr 20 15:00 bin drwxr-xr-x 2 root root 1024 Apr 20 15:00 dev drwxr-xr-x 2 root root 1024 Apr 20 15:00 etc drwxr-xr-x 2 root root 1024 Apr 20 15:00 lib drwxr-xr-x 2 root root 1024 Apr 20 15:00 msgs drwxr-xr-x 2 root root 1024 Apr 20 15:00 pub drwxr-xr-x 3 root root 1024 Apr 20 15:00 usr
Ins Unterverzeichnis ./bin sind die Programme compress, ls und tar zu installieren. Diese Programme werden vom FTP-Dämonen benötigt (minimal reicht bereits ls). Achtung: Es werden die statisch gelinkten Versionen der Kommandos benötigt:
root@sonne> file ls ls: ELF 32-bit LSB executable, Intel 80386, version 1, statically linked, stripped
Im Unterverzeichnis ./etc müssen die Dateien passwd und group mit den Rechten 644 erzeugt werden:
root@sonne> vim etc/passwd root:x:0:0:Super User:/root:/bin/bash root@sonne> vim etc/group root:x:0:root users:x:100:root
Das Kommando ls zeigt anhand dieser Dateien die Zuordnung der UIDs und GIDs für die gespeicherten Dateien an.
Neben FTP existiert ein weiteres Datentransfer-Protokoll mit minimalen Anforderungen: Trivial File Transfer Protocol. Im Unterschied zum FTP verwendet TFTP das User Datagram Protocol (UDP) zum Transport der Daten.
Als Folge daraus muss das Protokoll sich selbst um Sicherungsfunktionen kümmern. Auch entfällt das Einloggen auf dem Server, so dass TFTP serverseitig starken Restriktionen unterworfen ist (nur für "weltweit" lesbare und schreibbare Dateien). Einsatzgebiet von TFTP ist das Bootstrapping plattenloser Rechner, da die hierfür notwendigen Daten (Netzwerktreiber, IP, UDP, das Protokoll selbst) in einem EEPROM Platz finden.
![]() ![]() ![]() |
![]() ![]() |