Ein weiterer zentraler Dienst in einem Intranet, der besonders dem Transport von Dateien auf andere Systeme dient, ist das File Transfer-Protokoll. Hierbei werden zwei Betriebsmodi unterschieden:
In beiden Fällen ist es möglich, Verzeichnisse einzusehen und sie zu wechseln, oder auch Dateien zu empfangen bzw. zu senden. Der Unterschied liegt in den Privilegien, die ein Benutzer besitzt. Während im ersten Fall der User eine Zugangsberechtigung zum System benötigt, so hat ein Gastzugang nur eine eingeschränkte Sicht auf den Datenbereich des Servers, was als einfacher Sicherheitsmechanismus anzusehen ist.
Die Vorteile von FTP liegen in den effizienten Verfahren zur Übertragung von Dateien beliebigen Formats und der Tatsache, daß der Zugriff von beliebigen Internet-Teilnehmern erfolgen kann. Auf der anderen Seite kann bei größeren Archiven schnell die Übersicht verloren gehen, wenn die Datenbestände nicht vernünftig sortiert sind, bei umfangreichen Dateibäumen ist hingegen die Navigation durch die Verzeichnisse eine zeitraubende Angelegenheit.
Gegenüber der Funktionalität von Standard-FTP-Daemonen, die normalerweise bei Unix-Systemen zum Lieferumfang gehört, bietet das Programmpaket aus dem Archiv der Washington University einige Erweiterungen, die gerade für den Einsatz im Intranet von Vorteil sein können. So unterstützt es die Definition von Benutzerklassen für Zugriffsbeschränkungen auf den Datenbestand. Weiterhin ist der Server zur Entlastung der Leitungen in der Lage, Dateien vor der Übertragung zu komprimieren. Zu den komfortablen Erweiterungen zählen der Logging-Mechanismus und das Benachrichtigen von Benutzern, sollte der Server einmal heruntergefahren werden.
Der FTP-Daemon der Washington University findet sich als Datei
im Internet in deren Archiv unter der URL
ftp://wuarchive.wustl.edu/packages/wuarchive-ftpd/ |
oder in einem der zahlreichen Mirrors, die diese Datei spiegeln. Das Entpacken in ein Unterverzeichnis erfolgt mit dem in Kapitel 3.2.1 bereits beschriebenen tar-Befehl.
Als Vorbereitung zur Installation müssen einige Verzeichnisangaben
in der Datei src/pathnames.h an das System
angepaßt werden. Tabelle 3.6 zeigt die verwendeten Einstellungen. Die
einzelnen Pfadangaben haben hierbei folgende Bedeutung:
Der Installationsvorgang wird von einem Shellscript durchgeführt, das mit den Befehlen
build sol -prefix=/usr/local/www |
build install |
gestartet wird. Unter Umständen ist hierbei im Unixsystem die Datei
/usr/include/arpa/ftp.h |
mit der Version support/ftp.h aus dem Paket zu ersetzen.
Im Gegensatz zum Webserver läuft ein FTP-Daemon nicht die ganze Zeit, sondern wird durch den inetd-Prozeß gestartet. Der inet-Daemon ist eine Art Superserver, der im Auftrag verschiedener Dienstprogramme auf einem Unix-System gleich mehrere Netzwerk-Ports abhört. Das heißt er überwacht das System bis ein Dienst angefordert wird (über den entsprechenden Port) und startet dann den zugehörigen Prozeß. FTP verwendet standardmäßig die Ports 21 (Kontrolleitung) und 20 (Datenleitung). Da in Unix ein FTP-Daemon standardmäßig enthalten ist, muß in der Konfigurationsdatei /etc/inetd.conf , der Eintrag für den Server nur abgeändert werden. Der richtige Eintrag lautet:
ftp stream tcp nowait root /usr/local/etc/ftpd -l -i -d |
Die Parameter bestimmen, daß alle Kontakte mitprotokolliert werden und auch Debug-Information aufgezeichnet werden.
Um den FTP-Dienst auch für Leute zur Verfügung zu stellen, die keine Zugriffsberechtigung auf dem Server besitzen wird ein anonymer User mit dem Namen ftp eingerichtet. Er erhält ein eigenes Home-Verzeichnis, das beim Betrieb mit dem chroot()-Kommando zum Hauptverzeichnis dieses Benutzers wird. Er hat also nur eine eingeschränkte Sicht auf das System. Ein weiterer wichtiger Punkt ist, daß es nicht möglich sein darf, sich als Anonymous an einen anderen Unix-Dienst anzumelden, oder sogar mit einer Shell Befehle abzusetzen. Dies wäre eine grobe Verletzung der Systemsicherheit. Der Eintrag zum Anlegen dieses Benutzers in der Datei /etc/passwd lautet:
ftp:*:39027:2:Anonymous FTP user:/usr/local/www/ftp.home: |
/bin/false |
Die einzelnen Felder sind mit einem ': ' getrennt und haben folgende Bedeutung:
Nachdem der Benutzer eingetragen wurde, muß in seinem Home-Bereich eine bestimmte Verzeichnisstruktur erstellt werden. Durch die Einschränkung der Sicht auf den Dateibaum darf aber nicht die Fuktionalität des FTP-Prozesses behindert werden, besonders nicht durch fehlende Bibliotheken oder Hilfsprogramme. Zu diesem Zweck wird zunächst das Home-Verzeichnis angelegt:
/usr/local/www/ftp.home |
In diesem Verzeichnis müssen nun diejenigen Subdirectories angelegt werden, die das System nach dem Change Root noch erwartet oder die FTP benötigt. Dies sind:
Darüber hinaus ist es möglich, daß bestimmte Betriebssysteme noch weitere Verzeichnisse brauchen.
Nachdem nun die Verzeichnisstruktur erzeugt ist, müssen noch einige Dateien angelegt werden, die Unix zum Betrieb benötigt. Im bin/- Verzeichnis müssen sich von den ausführbaren Programmen nur der ls -Befehl (Anzeigen eines Verzeichnisses) befinden. Im etc/ -Verzeichnis befindet sich zum einen die Paßwortdatei. Die Dokumentation weist ausdrücklich darauf hin, daß nicht einfach die Systemdatei kopiert werden soll, sondern daß nur diejenigen Einträge erscheinen sollen, die für Anonymous-Betrieb sinnvoll sind. Für den installierten Daemon sind dies folgende Einträge:
ftp:*:527:1:Anonymous FTP user:/usr/local/www/ftp.home:
bin:*:2:2::/:/bin/false
root:*:0:3::/:/bin/false
Eine weitere Systemdatei, etc/groups mit den Gruppeneinträgen ist zu erstellen (Auch hier nicht eine Kopie des Originals !!):
user:*:1:
bin:*:2:
other:*:3:
Abschließend sind für den gesamten Verzeichnisbaum noch geeignete
Zugriffsrechte und Eigentümer zu setzen. Die Dokumentation schlägt
hier Vorgabewerte vor, die in Tabelle 3.7 aufgelistet sind.
Zum Schluß ist noch die Datei /usr/local/www/etc/ftpaccess zu erstellen, bzw. aus dem Sourceverzeichnis zu kopieren. In ihr sind die Regeln enthalten, nach denen der Daemon vor bzw. nach der Übertragung eine Kompression (Dekompression) durchführt.
Für den Einsatz auf Systemen unter den Betriebssystemen Solaris und SunOS sind noch weitere Aktionen durchzuführen, um die Besonderheiten dieser Systeme zu unterstützen. Zum einen sind dies die dynamischen Bibliotheken, die erst zur Laufzeit zum Programm hinzugelinkt werden, und auch für den eingeschränkten Anonymous-Dateibaum zur Verfügung gestellt werden müssen. Eine andere Besonderheit sind spezielle Gerätedateien /dev/zero , die ebenfalls für den reibungslosen Betrieb erforderlich sind. Folgende Befehle sind hierfür einzugeben:
cd /usr/local/www/ftp.home |
mkdir usr/lib |
cp /usr/lib/ld.so* usr/lib |
cp /usr/lib/libc.so* usr/lib |
chmod 555 usr |
chmod 555 usr/lib |
mkdir dev |
cd dev |
mknod zero c 13 12 |
mknod tcp c 11 42 |
mknod udp c 11 41 |
mknod ticotsord c 105 1 |
cd .. |
chmod 555 dev |
Die mitgelieferte Dokumention empfiehlt, noch weitere Bibliotheken in das Unterverzeichnis usr/lib/ zu kopieren. Insgesamt müssen folgende Dateien enthalten sein:
ld.so | ld.so.1 | libsocket.so | libsocket.so.1 |
libc.so | libc.so.1 | nss_files.so | nss_files.so.1 |
libdl.so | libdl.so.1 | nss_nisplus.so | nss_nisplus.so.1 |
libintl.so | libintl.so.1 | nss_dns.so | nss_dns.so.1 |
libnsl.so | libnsl.so.1 | nss_nis.so | nss_nis.so.1 |
libw.so | libw.so.1 | straddr.so | straddr.so.2 |
Die Konfiguration des FTP-Daemons ist gesamt in der Datei ftpconversions geregelt. Für das FH-Intranet sind dabei folgende Regeln festgehalten:
\
.]*$ ^\
. ^-
\
.]*$ ^\
. ^-