FtpService
Mit dem FTPService stellt der Integration Server einen kompletten FTP-Server bereit, der durch seine Integration in das Gesamtsystem in der Lage ist, alle angeschlossenen Applikationen über FTP-Ereignisse zu informieren. Dies betrifft z. B. das Hochladen von Dateien von Partnern, auf die mit einer sofortigen Abarbeitung reagiert werden kann. Der FTPService des bietet die folgenden Möglichkeiten an, FTP-basierten Datenaustausch zur Verfügung zu stellen.
FTP (plain), FTPS (implizit und explizit).
FTP im aktiven oder passiven Übertragungsmodus.
Einschränkung des Anbietens von FTP-Funktionalität, z. B. auf bestimmte Netzwerkadressen und Ports.
Folgeverarbeitung durch Nutzung des MessageServices.
XML-Konfiguration
Wichtiger Hinweis: Die Verfügbarkeit eines Services hängt von der erworbenen Lizenz ab und davon, ob der Service innerhalb der Konfigurationsdatei ./etc/factory.xml der Service-Factory eingetragen wurde (Änderungen erfordern Server-Neustart!). Dort finden Sie auch die zuständige Konfigurationsdatei für einen Service, ansonsten können Sie die Konfigurationsdatei des Services auch direkt in der GUI des Services bearbeiten (Änderungen erfordern Service-Neustart!).
Folgendes XML-Fragment mit allen möglichen Einstellungen kann für die Konfiguration des FTPServices verwendet werden.
<
Set
name
=
"anonymousLogin"
type
=
"boolean"
>true</
Set
>
<
Set
name
=
"delayTimeBetweenLogin"
>10</
Set
>
<
Set
name
=
"denyDuplicateLogin"
type
=
"boolean"
>true</
Set
>
<
Set
name
=
"denyDirCreation"
>False</
Set
>
<
Set
name
=
"keyPassword"
>passwd</
Set
>
<
Set
name
=
"keystore"
>./crypt/ks.dat</
Set
>
<
Set
name
=
"listenAddress"
></
Set
>
<
Set
name
=
"maxConnections"
>200</
Set
>
<
Set
name
=
"useUtf8Encoding"
type
=
"boolean"
>true</
Set
>
<
Set
name
=
"passiveHost"
></
Set
>
<
Set
name
=
"passivePort"
>10001</
Set
>
<
Set
name
=
"securePassiveHost"
></
Set
>
<
Set
name
=
"securePassivePort"
>20001</
Set
>
<
Set
name
=
"port"
>21</
Set
>
<
Set
name
=
"secureFtpServerPort"
>-1</
Set
>
<
Set
name
=
"authenticationService"
>AuthenticationService</
Set
>
<
Set
name
=
"communicationLogService"
>CommunicationLogService</
Set
>
<
Set
name
=
"unrestrictedActiveHost"
type
=
"boolean"
>false</
Set
>
<
Call
name
=
"setPortRange"
>
<
Arg
type
=
"int"
>port from</
Arg
>
<
Arg
type
=
"int"
>port until</
Arg
>
</
Call
>
<
Call
name
=
"setSecurePortRange"
>
<
Arg
type
=
"int"
>port from</
Arg
>
<
Arg
type
=
"int"
>port until</
Arg
>
</
Call
>
Hierbei haben die einzelnen Einstellmöglichkeiten die folgende Bedeutung.
Wert |
Bedeutung |
anonymousLogin |
Wird dieser Punkt erlaubt, ist es Benutzern unter Verwendung des anonymous-Accounts möglich, ohne Passwort Zugriff auf einen eingeschränkten Bereich zu bekommen. |
delayTimeBetweenLogin |
Gibt die Zeit in Sekunden an, die nach einem Login (erfolgreich und erfolglos) gewartet wird, bis ein neuer Login-Versuch ermöglicht wird. Dies kann z. B. Wörterbuchangriffe erschweren. |
denyDuplicateLogin |
Wird dieser Punkt aktiviert, ist es Benutzern nur möglich mit einer Session gleichzeitig online zu sein. Der Versuch, eine zweite Verbindung mit diesem Benutzerkonto aufzubauen, wird in so einem Fall abgewiesen. |
denyDirCreation |
Wenn auf true gesetzt, kann kein FTP-User Unterverzeichnisse anlegen oder löschen. |
keyPassword |
Das für den Keystore (siehe unten) zu verwendende Passwort. |
keystore |
Dateiname des zu verwendenden Keystores. |
listenAddress |
IP-Adresse, auf der nach eingehenden Verbindungen gehorcht werden soll. Wird keine Adresse angegeben, wird auf allen verfügbaren Adressen auf eingehende Verbindungen gehorcht . |
maxConnections |
Gibt die maximale Anzahl an gleichzeitig offenen Verbindungen an. |
useUtf8Encoding |
Gibt an, ob für den LIST-Befehl die Dateinamen mit UTF8-Kodierung zurückgeliefert werden sollen. |
passiveHost |
Setzt den Hostnamen, der dem Client bei einer passiven Verbindung als zu kontaktieren gemeldet werden soll. |
passivePort |
Gibt den Port an, mit dem der Server auf eine passive Verbindung beginnen soll zu horchen. Achtung: Wenn dieser Parameter gesetzt ist, dann kann nur ein FTP-Client zur gleichen Zeit im Passive-Mode auf den Service zugreifen. Mit setPortRange kann ein Bereich von Ports angegeben werden. |
securePassiveHost |
Setzt den Hostnamen für SSL-verschlüsselte Verbindungen, der dem Client bei einer passiven Verbindung als zu kontaktieren gemeldet werden soll. |
securePassivePort |
Gibt den Port für SSL-verschlüsselte Verbindungen an, mit dem der Server auf eine passive Verbindung beginnen soll zu horchen. |
port |
Legt den Port fest, auf dem der FTPService auf eingehende Verbindungen wartet. |
secureFtpServerPort |
Legt den Port fest, auf dem der FTPService auf eingehende SSL-verschlüsselte Verbindungen wartet. |
setPortRange |
Hier kann der Portbereich für passive Verbindungen eingeschränkt werden. Damit werden für den Datenkanal nur die Ports innerhalb dieses Bereichs geöffnet. |
setSecurePortRange |
Hier kann der Portbereich für SSL-verschlüsselte passive Verbindungen eingeschränkt werden. Damit werden für den Datenkanal nur die Ports innerhalb dieses Bereichs geöffnet. |
authenticationService |
Hier kann der Name des AuthenticationService konfiguriert werden. |
communicationLogService |
Hier kann der Name des CommunicationLogService konfiguriert werden. |
unrestrictedActiveHost |
Hier kann eingestellt werden, ob vom Server eine andere IP akzeptiert werden soll, als die, von der der Control-Channel aufgemacht wurde. Der Defaultwert ist false. Bei true könnte durch eine sogenannte "Bounce Attack" ein Sicherheitsproblem entstehen. |
keystore |
Dateiname des zu verwendenden Keystores. |
Aktivieren der Message-basierten Benachrichtigung
Folgendes XML-Fragment aktiviert die Benachrichtigung von Applikationen über den MessageService bei eintreffenden Dateien und anderen FTP-basierten Ereignissen.
<
Call
name
=
"enableMessageService"
>
<
Arg
>MessageService</
Arg
>
<
Arg
>System</
Arg
>
<
Arg
>ftp</
Arg
>
</
Call
>
Hierbei haben die einzelnen Argumente folgende Bedeutung.
Wert |
Bedeutung |
MessageService |
Der Name des zu verwendenden MessageServices. Dieser ist im Allgemeinen der im Beispiel zu sehende Name und sollte eigentlich nicht verändert werden. |
System |
Der Message-Kontext. System ist der Standard-Kontext. |
ftp |
Die Message-Queue. ftp ist die Standard-Queue. |
Aktivieren des FtpLog-Managers
Sollen die FTP-Sessions über den FtpLog-Manager überwacht werden, ist folgendes XML-Fragment zu verwenden.
<
Call
name
=
"enableFtpLog"
>
<
Arg
type
=
"boolean"
>true</
Arg
>
</
Call
>
<
Set
name
=
"logManagerName"
>FtpLog</
Set
>
<
Set
name
=
"logServiceName"
>LogService</
Set
>
Mit logManagerName und logServiceName kann konfiguriert werden, wohin die Log-Meldungen geschrieben werden sollen.
Setzen von Whitelist- und Blacklist-Einträgen
Mit diesem XML-Fragment kann eine Whitelist (erlaubte Adressen) und Blacklist (nicht erlaubte Adressen) hinzugefügt werden. Mit addIpAddress kann eine einzelne IP-Adresse angegeben werden, mit addAddressRange ein Adressbereich.
<!-- define white access list here -->
<
Call
name
=
"getWhiteAccessList"
>
<
Call
name
=
"addIpAddress"
><
Arg
>a single IP address</
Arg
></
Call
>
<
Call
name
=
"addAddressRange"
><
Arg
>base IP address</
Arg
><
Arg
>a netmask</
Arg
></
Call
>
</
Call
>
<!-- define black access list here -->
<
Call
name
=
"getBlackAccessList"
>
<
Call
name
=
"addIpAddress"
><
Arg
>a single IP address</
Arg
></
Call
>
<
Call
name
=
"addAddressRange"
><
Arg
>base IP address</
Arg
><
Arg
>a netmask</
Arg
></
Call
>
</
Call
>
Allgemeine Einstellungen
(1) Einstellungsmöglichkeit für AuthenticationService und CommunicationLogService. Diese Werte müssen normalerweise nicht geändert werden.
(2) Hier kann der verwendete LogService geändert werden.
(3) Änderung des MessageServices.
(4) Hier kann das Logverhalten des FTPServices bzw. der zu verwendende LogManager geändert werden.
(5) Kontext und Queue für den MessageService, an den FTP-Events geschickt werden.
Interface-Einstellungen
(1) IP-Adresse, über die auf eingehenden Verbindungen gewartet werden soll. Wird keine Adresse oder 0.0.0.0 angegeben, wird auf allen verfügbaren Adressen auf eingehende Verbindungen gewartet.
(2) Hier können die Ports für normale und SSL-basierte Verbindungen konfiguriert werden.
(3) Hier kann für die normale und die SSL-basierte passive Verbindung der jeweilige Portbereich eingeschränkt werden. Damit werden für den Datenkanal nur die Ports innerhalb dieses Bereichs geöffnet.
(4) Hier können die externen IP-Adressen angegeben werden, mit denen sich der FTP-Service nach außen hin für passive Verbindungen identifiziert.
(5) Maximale Anzahl der gleichzeitigen Verbindungen.
(6) Hier kann die Whitelist (erlaubte Adressen) bearbeitet werden.
(7) Hier kann die Blacklist (nicht erlaubte Adressen) bearbeitet werden.
Weitere Einstellungen
(1) Gibt an, ob für den LIST-Befehl die Dateinamen mit UTF8-Kodierung zurückgeliefert werden sollen.
(2) Das Feld entspricht der Einstellung für unrestrictedActiveHost aus der XML-Konfiguration. Beachten Sie bitte die dortigen Sicherheitshinweise.
(3) Wird dieser Punkt aktiviert, wird Benutzern nur eine Session gleichzeitig zugestanden. Der Versuch, eine zweite Verbindung mit diesem Benutzer aufzubauen, wird in solch einem Fall abgewiesen.
(4) Gibt die Zeit in Sekunden an, die nach einem erfolglosen Login gewartet wird, bis ein neuer Loginversuch ermöglicht wird. Dies soll Wörterbuchangriffe erschweren.
Loglevel-Abhängigkeiten
Änderungen des Loglevels beim LogService haben keinen Einfluss auf das Logverhalten des FtpServices.
Wird der Service auf verbose gesetzt, wird festgehalten, wie die einzelnen FTP-Sessions ablaufen, d. h. welche Kommandos vom Server empfangen werden und wie diese verarbeitet werden, auch wenn kein FTPLog definiert wurde. Das Logging des FTPLogs, so aktiviert, bleibt davon unberührt.