Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

FTP-Server im BS2000

&pagelevel(3)&pagelevel

Der FTP-Server nimmt Aufträge von FTP-Clients am lokalen Netz entgegen und führt sie aus.

Voraussetzung für die Benutzung des FTP-Servers an einem BS2000-Partner-Rechner ist, dass vom Systembetreuer der FTP-Server hochgefahren wurde.

Bild 1: FTP-Server im BS2000

In der Folge wird der Rechner mit dem FTP-Server als ferner Rechner bezeichnet, damit die Server-Beschreibung mit der Client-Beschreibung konsistent ist (obwohl, vom Standpunkt des Servers betrachtet, der lokale Rechner sein eigener ist).

Arbeitsweise

Für jeden Verbindungswunsch eines Client (Kommando open) erzeugt der Server eine eigene BS2000-Task. Die dazu benötigten Daten (Benutzerkennung, Abrechnungsnummer, Passwort) werden vom Client angefordert. Danach wird ein Programm (FTPDC) gestartet, das den eigentlichen Dateitransfer und die vom Client angestoßenen lokalen Dateizugriffe durchführt. Die DMS-Zugriffsrechte des BS2000 (RDPASS, WRPASS, EXPASS, SHARE=YES|NO, ACCESS=READ|WRITE) werden dabei vollständig beachtet; ebenso die Zugriffsrechte von POSIX.

Wenn sich mehrere Clients zum exakt gleichen Zeitpunkt am Server anmelden, kann es zur Ablehnung des Verbindungswunsches kommen. In diesem Fall muss der Client den Verbindungsaufbau wiederholen.

Passwortschutz

Im BS2000 können einzelne DVS-Dateien durch Passwörter geschützt sein. Der BS2000-FTP-Server erwartet Funktionsaufrufe mit Dateinamen in der Form

dateiname,C'passwort' oder dateiname,X'passwort'.

Dies gilt nicht für das POSIX-Dateisystem.

Beispiel

Von einem Unix-System aus (Dateiname ZWATON) soll die mit dem Lese-Passwort OTTO geschützte BS2000-Datei ANTON überschrieben werden:

put ZWATON ANTON,C'OTTO'

Dateien, die mit unterschiedlichen Passwörtern geschützt sind (z.B. RDPASS=C'OTTO' und WRPASS=C'KARL'), können nicht direkt angesprochen werden. Es muss zumindest eines der beiden Passwörter mit der Funktion site exec des Kommandos quote vorher eingegeben werden:

quote site exec PASSWORD C'KARL'

quote site exec darf nur verwendet werden,

  • wenn der FTP-Zugang nicht mit FTAC kontrolliert wird bzw.

  • wenn es nicht mithilfe der Server-Option -disableSiteExecCommand deaktiviert wurde (siehe Handbuch „interNet Services Administratorhandbuch“).

PASSIVE-Modus

Der PASSIVE-Modus erlaubt es, von einem Client aus eine Datenübertragung zwischen zwei Servern zu initiieren. Der FTP-Client im BS2000 unterstützt dieses Verfahren durch das Client-Kommando proxy (siehe "proxy - Verbindung zu zwei fernen Rechnern steuern").

Im BS2000-FTP-Server wird diese Funktionalität durch die Server-Kommandos PASV bzw. EPSV unterstützt. Im BS2000-FTP-Client kann der PASSIVE-Modus durch das Client-Kommando passive (siehe "passive - PASSIVE-Modus ein-/ausschalten") eingestellt werden.

Im PASSIVE-Modus wird der Server veranlasst, an einem Datenport einen Verbindungswunsch zu erwarten, anstatt selbst aktiv eine Verbindung aufzubauen. Der Verbindungsaufbau zwischen den beiden Server-Tasks erfolgt über die erste generierte Leitungsadresse. Falls über diese Leitung keine Verbindung zwischen den beiden Servern möglich ist, wird der Verbindungswunsch abgelehnt (Returncode 425, can’t build data connection).

Der PASSIVE-Modus wird außerdem verwendet, wenn auf einen FTP-Server hinter einer Firewall zugegriffen werden soll, da vom Server ausgehende Verbindungen oft Konflikte mit den Firewall-Regeln verursachen. Angesichts dessen nutzen viele Clients standardmäßig den PASSIVE-Modus.

Umfang der Implementierung

Die Funktionen eines FTP-Servers sind in genormten Protokollelementen (Serverkommandos) realisiert.

Die folgende Tabelle enthält eine Übersicht über die Funktionen des FTP-Servers im BS2000.

Serverkommando

Server-Funktion

Im Server auf
BS2000

Korrespondierendes
(k) /
absetzendes (a)
Client-Kommando

(DVS)

(POSIX)

acct

Abrechnungsnummer bekannt geben

+

+


abor

Dateiübertragung abbrechen

+

+


allo

Speicher zuweisen

(+)

(+)


appe

Datei an eine bestehende Datei anhängen

+

+

append (a)

auth

TLS/SSL-Verbindung initiieren

+

+

open (a)

ccc

TLS-Absicherung der Kontrollverbindung ausschalten

+

+

ccc (a)

cdup

Wechsel in das nächsthöhere ADV (POSIX) bzw. Entfernen der Teilqualifizierungsstufe (DVS)

+(1)

+

cdup (a)

cmod

1:1-Übertragung einschalten

+

+

copymode(k)

cwd

Arbeits-Dateiverzeichnis wechseln (POSIX) bzw. Teilqualifizierung ändern (DVS)

+

+

cd (a)

dele

Eine Datei löschen

+

+

delete (a)

eprt

extended port command für IPv6

+

+


epsv

extended passive command für IPv6

+

+


feat

Neue Features des Servers anzeigen

+

+


help

Hilfe anfordern

+

+


list

Dateiverzeichnisse und Dateinamen auflisten

+

+

dir (a)

mdtm

Datum und Uhrzeit der bislang letzten Änderung einer Datei ausgeben

+

+


mkd

Dateiverzeichnis einrichten

-

+


mlsd

Dateinamen und -eigenschaften auflisten

+

+

mlsd (a)

mlst

Dateieigenschaften auflisten

+

+

mlst (a)

mode

Übertragungsmodus definieren

+

+

mode (a,k)

nlst

Dateinamen auflisten

+

+

ls (a)

noop

nichts tun

+

+


opts

Optionen angeben

+

+


pass

Passwort bekannt geben

+

+


pasv

PASSIVE-Modus einstellen

+

+


pbsz

Speicher für Datenverschlüsselung zuweisen

(+)

(+)

private (a)

port

Datenverbindungs-Port definieren

+

+


prot

Verschlüsselung der Datenverbindung aktivieren/deaktivieren

+

+

private (a)

pwd
(identisch mit xpwd)

Aktuelles Arbeits-Dateiverzeichnis ausgeben

+

+

pwd (a)

quit

Sitzung beenden

+

+

close (a)

rest

Datei-Position spezifizieren, an der ein Datentransfer aufsetzen soll

+

+

reget (a)
reput (a)

retr

Eine Datei wiedererlangen

+

+

get (a)

rmd
(identisch mit xrmd)

Dateiverzeichnis löschen

-

+


rnfr

Eine Datei umbenennen: alten Namen angeben

+

+

rename (a)

rnto

Eine Datei umbenennen: neuen Namen angeben

+

+

rename (a)

site

Präfix für BS2000-spezifische Funktionen des FTP-Servers

+

+


size

Größe einer Datei ausgeben

+

+


stat

Server-Status-Informationen ausgeben

+

+

status (k)

stor

Eine Datei abspeichern

+

+

put (a)

stou

Eindeutiges Speichern von Dateien

+

+

put (a)

stru

Übertragungsstruktur definieren

+

+

struct (a+k)

syst

Systeminformation über den Server

+

+

system (a)

type

Übertragungs-Typ definieren

+

+

type (a+k)

user

Benutzer-Name definieren

+

+

user (a)

xcup
(identisch mit cdup)

Wechsel in das nächsthöhere ADV (POSIX) bzw. Entfernen der Teilqualifizierungsstufe (DVS)

+(1)

+


xcwd
(identisch mit cwd)

Arbeits-Dateiverzeichnis wechseln (POSIX) bzw. Teilqualifizierung ändern (DVS)

+

+


xmkd

Dateiverzeichnis einrichten

-

+

mkdir (a)

xpwd

Aktuelles Arbeits-Dateiverzeichnis ausgeben

+

+

pwd (a)

xrmd

Dateiverzeichnis löschen

-

+

rmdir (a)

FTP-Server-Funktionen

Legende

ADV
+
(+)
-
(a)
(k)
(a+k)

Arbeits-Dateiverzeichnis
Die Funktion ist realisiert.
Die Funktion ist als Leerfunktion realisiert.
Die Funktion ist nicht realisiert.
Client-Kommando setzt Server-Kommando ab.
Client-Kommando hat die Bedeutung des Server-Kommandos.
Client-Kommando hat die Bedeutung des Server-Kommandos und setzt Server-Kommando ab.

(1)cdup und xcup erfüllen im BS2000-Server die Funktion „Ändern des Arbeits-Dateiverzeichnisses (ADV)“ durch Entfernen einer Teilqualifizierungsstufe.


BS2000-spezifische Funktionen des FTP-Servers

Die folgende Tabelle gibt einen Überblick über die BS2000-spezifischen Funktionen des FTP-Servers.

Serverkommando

Server-Funktion

Im Server auf
BS2000
(DVS)                (POSIX)

Korrespondierendes

Client-Kommando

cmod

1:1-Übertragung einschalten

+

+

copymode (k)

exec

Kommando an fernes Betriebssystem reichen

+

+


file

DVS-Dateiattribute wechseln

+

+

file (k)

ftyp

Dateibearbeitungstyp wechseln

+

+

ftyp (k)

help

Information zu FTP-Kommandos

+

+

help (k)

modc

Zeichenkette (String) für Wechsel POSIX / DVS ändern

+

+

modchar (k)

setc

Code-Tabellen wechseln

+

+

setcode (k)

sfil

Spezielle EOF-Marker für PAM-Dateien ein-/ausschalten;
Auffüllen von leeren SAM-Records ein-/ausschalten

+

(+)

setfile (k)

sopt

Setzen von Variablen, die Serververhalten steuern

+

+

set (k)

svfs

TVFS aktivieren/deaktivieren

+

+


trce

Ein-/Ausschalten Debug-Ausgabe und Socket-Trace

+

+

debug (k) / trace (k)

exit

Parameter für Exit-Routinen definieren

+

+

rexit (a)

BS2000-spezifische Funktionen des FTP-Servers


Legende

+
(+)
(k)

Die Funktion ist realisiert.
Die Funktion ist als Leerfunktion realisiert.
Client-Kommando hat die Bedeutung des Server-Kommandos.

Es empfiehlt sich, die BS2000-spezifischen Funktionen des FTP-Servers immer mit dem Präfix site aufzurufen, obwohl aus Kompatibilitätsgründen vorerst noch bei den Kommandos file, ftyp, modc und setc auch die Verwendung ohne vorangesetztes site möglich ist.

Insbesondere beim Erstellen von Prozeduren wird aber dringend empfohlen, immer die aktuelle Form mit vorangesetztem site zu verwenden, um Problemen vorzubeugen, die eventuell bei Erweiterung des FTP-Standards auftreten können.

Folgt auf site keines der in der Tabelle genannten Kommandos, so wird site in der Bedeutung von site exec interpretiert. Die auf site folgende Zeichenkette wird dann als Kommando an das ferne Betriebssystem gereicht und wird wie in früheren FTP-Server-Versionen interpretiert.

Aufruf der FTP-Server-Funktionen durch den FTP-Client des Partnerrechners

Für die meisten Funktionen des FTP-Servers gibt es einen Kommando-Aufruf im Client des Partnerrechners. Für Funktionen ohne einen entsprechenden Kommando-Aufruf im Client kann mit dem Client-Kommando quote (siehe Abschnitt „quote - Aufruf von Server-Funktionen“) die Funktion direkt über den FTP-Server aufgerufen werden.

Für FTP-Clients, die keine spezielle Eingabemöglichkeit für eine Abrechnungsnummer anbieten (z.B. Webbrowser), kann beim BS2000-FTP-Server eine Abrechnungsnummer, durch ein Komma getrennt, an die Benutzerkennung angehängt werden.

Die Funktionen "Einrichten eines Dateiverzeichnisses" und "Löschen eines Dateiverzeichnisses" finden im DVS-Dateisystem des BS2000 keine sinnvolle Entsprechung. Für das POSIX-Dateisystem des BS2000 sind diese Funktionen im Rahmen der POSIX-Unterstützung realisiert. Über die FTP-Client-Kommandos mkdir und rmdir können Dateiverzeichnisse im POSIX-Dateisystem eingerichtet und gelöscht werden.

Grundsätzlich kann jede Server-Funktion des Partnerrechners mit dem Client-Kommando quote aufgerufen werden.

Im Folgenden werden die Server-Funktionen file, ftyp, modc, setc, sfil, svfs, cmod und exit näher behandelt, da diese Funktionen nur im BS2000-FTP-Server existieren und immer über das Client-Kommando quote angesprochen werden müssen.

  • Die Funktion site exit legt die Parameter für die Exit-Routinen fest (siehe Handbuch „interNet Services Administratorhandbuch“). Das exit-Kommando können Sie auch über das Client-Kommando rexit zum Server schicken (siehe "rexit - Parameter für ferne Exit-Routine definieren").
    Einzugeben ist:

    quote site exit receive:<recv-parm>

    quote site exit send:<send-parm>

    quote site exit receive:<recv-parm>!send:<send-parm>

    z.B.: quote site exit receive:-C5!send:-D7
    quote site exit send:*NONE

  • Die Funktion site file legt die Datei-Attribute einer zu übertragenden DVS-Datei am fernen Rechner (jener Rechner, auf dem der FTP-Server läuft) fest. Die Funktion file entspricht dem Client-Kommando file, das auf "file - Attribute einer Datei am lokalen Rechner festlegen" detailliert beschrieben ist. Einzugeben ist:
    quote site file <ferne-datei,file-operandenliste>
    z.B.: quote site file datei1,fcbtype=sam

  • Die Funktion site ftyp legt fest, ob die SAM-Dateien am fernen Rechner als Text- oder Binär-Dateien bearbeitet werden sollen. Die Funktion ftyp entspricht dem Client-Kommando ftyp, das auf "ftyp - Bearbeitungstyp für Dateien am lokalen Rechner festlegen" detailliert beschrieben ist.
    Einzugeben ist:
    quote site ftyp <Dateibearbeitungstyp>
    z.B.: quote site ftyp binary

  • Die Funktion site modc legt das erste Zeichen der Zeichenfolge zum Wechsel zwischen dem DVS-Dateisystem und dem POSIX-Dateisystem fest. Die Funktion modc entspricht dem Client-Kommando modchar, das auf "modchar - Zeichenkette wechseln" detailliert beschrieben ist. Einzugeben ist:
    quote site modc <Character>
    z. B.: quote site modc $

  • Die Funktion site setc ermöglicht die Einstellung der Zeichensatznamen (CCSN) für die Zeichensatz-Konvertierung. Die Funktion setc entspricht dem Client-Kommando setcode, das auf "setcode - Code-Tabellen wechseln" detailliert beschrieben ist. Einzugeben ist:
    quote site setc <Host CCSN> <Net CCSN>
    z. B.: quote site setc EDF049 ISO88599

  • Die Funktion

    site sfil legt spezielle Verhaltensweisen beim Transfer von Dateien fest und entspricht dem Client-Kommando setfile, das auf "setfile - Datei-Marker ein-/ausschalten" detailliert beschrieben ist.Einzugeben ist:

    quote site sfil datend on | off | lbp
    Ein-/Ausschalten des speziellen EOF-Markers (Default: eingeschaltet) oder Verwendung der neuen EOF-Markierungsmethode Last Byte Pointer (LBP).

    quote site sfil pademptyrec on | off
    Ein-/Ausschalten des Auffüllens von leeren SAM-Records (Default: ausgeschaltet).

    z.B.: quote site sfil datend off
    quote site sfil pademptyrec on

  • Die Funktion site cmod (siehe Beschreibung des Client-Kommandos copymode auf "copymode - 1:1-Übertragung von BS2000-Plattendateien ein-/ausschalten").

  • Die Funktion site svfs aktiviert bzw. deaktiviert TVFS für die jeweilige Sitzung. Einzugeben ist:

    quote site svfs on | off
    Aktivieren/Deaktivieren von TVFS.

    z.B.: quote site svfs on

  • Die Funktion site sopt erlaubt das Setzen von Variablen, die das Verhalten des FTP-Servers steuern. So kann mit

    quote site sopt assignCCSNtoFile NO | YES

    das automatische Zuweisen des COD-CH-SET-Dateiattributs beim Schreiben einer Datei (de)aktiviert werden.

    z.B.: quote site sopt assignCCSNtoFile YES aktiviert diese Zuweisung, so dass beim Transfertyp ascii den geschriebenen SAM-Dateien der aktuell eingestellte Host-CCSN als COD-CH-SET-Attribut zugewiesen wird.

Kommandos des FTP-Servers, die die Restart-Fähigkeit des FTP-Clients unterstützen

Folgende Kommandos des FTP-Servers unterstützen die Restart-Fähigkeit von FTP-Client und FTP-Server:

  • mdtm

  • size

  • rest

mdtm – Datum und Uhrzeit der bislang letzten Änderung einer Datei ermitteln

Das mdtm-Kommando liefert Datum und Uhrzeit der bislang letzten Änderung einer Datei:

Meldung: 213 <JJJJMMTThhmmss>

mdtm

<datei>

<datei>

Datei, für die das mdtm-Kommando Datum und Uhrzeit der letzten Änderung liefert.

Beispiel

quote site mdtm testdatei

213 20101015204331

size – Größe einer Datei ermitteln

Das size-Kommando gibt an, wie viele Bytes im Falle eines Transfers dieser Datei über das Netz übertragen würden. Dabei werden die aktuellen Einstellungen für mode, type, struct und ftyp berücksichtigt. Für mode <> stream wird das size-Kommando mit einem Fehler-Code abgewiesen.

Es kann vorkommen, dass bei einem BS2000-FTP-Server das size-Kommando aus technischen Gründen deaktiviert ist.

Meldung: 213 <Größe der Datei (in Byte)>

size

<datei>

<datei>

Datei, für die das size-Kommando die Größe liefert.

Beispiel

quote site size testdatei

213 498665

rest – Datei-Position spezifizieren, an der ein Dateitransfer aufsetzen soll

Das rest-Kommando spezifiziert eine beliebige Byte-Position, an deren korrespondierenden Datei-Position (statt am Dateianfang) ein durch ein nachfolgendes stor- oder recv-Komman-do ausgelöster Dateitransfer aufsetzen soll.

rest

<position>

<position>

Byte-Position, an dessen korrespondierender Datei-Position der nachfolgende Transfer einer Datei aufsetzen soll.

Kommando zur Anzeige der Server-Fähigkeiten

Der FTP-Server unterstützt das FEAT-Kommando (RFC 2389). Standardmäßig meldet FEAT die Unterstützung der Kommandos EPSV, EPRT, SIZE, MDTM und REST STREAM. Die Unterstützung von SIZE wird nicht angezeigt, wenn SIZE via Server-Option -disableSizeCommand deaktiviert wurde (siehe Handbuch „interNet Services Administratorhandbuch“).

Wenn die TLS-Unterstützung des FTP-Servers aktiviert ist, meldet FEAT außerdem die Unterstützung von AUTH TLS, PBSZ und PROT.

Wenn TVFS per FTP-Server-Option global aktiviert ist, dann meldet FEAT die Unterstützung von TVFS.

Zudem wird die Unterstützung der MLSD-/MLST-Kommandos anfänglich per MLST type*;size*;create*;modify*;perm*;unique*;UNIX.owner*;UNIX.group*;UNIX.mode*; gemeldet. Hierbei gibt die Liste hinter MLST an, welche Fakten über Dateisystemobjekte von den MLSD-/MLST-Kommandos grundsätzlich geliefert werden können. Die '*' markieren die Fakten, die aktuell zurückgeliefert werden; die Menge dieser Fakten kann mit dem OPTS-Kommando verändert werden. Details zu TVFS, MLSD und MLST siehe RFC 3659.

FEAT


FTAC-Schnittstelle

Die Vorteile des FTP-Protokolls liegen in der u.a. durch die Normung bedingten weiten Verbreitung von FTP-Client-Programmen, der Aspekt Sicherheit hingegen bewegt sich nicht auf dem BS2000-üblichen Niveau. D.h. jeder, der Ihre Berechtigungsdaten kennt, kann sich Daten von Ihrer Kennung holen, Daten auf Ihrer Kennung speichern, Daten löschen oder Dateimerkmale ändern.
interNet Services bieten deshalb für FTP den Zugriff auf die FTAC-Schnittstelle an. Zum File Transfer openFT wird seit langem der Zugangs- und Zugriffsschutz openFT-AC angeboten.

FTAC bietet zum Schutz des BS2000-Servers folgende Möglichkeiten:

  • Entkopplung von FTP-Zugangsberechtigung und Login-Berechtigung

  • Zugriffsrechte abhängig von Partnersystemen

  • benutzerspezifische Zugriffsrechte

  • flexible Abstufung der Zugriffsrechte

  • Protokollierung jeder Berechtigungsprüfung

  • einfache Anwendung

Ausführliche Information zur FTAC-Unterstützung für FTP finden Sie im Kapitel „FTAC- Schnittstelle“.