Lobster Experten Fragen

SFTP/SCP

SFTP (SSH/Secure File Transfer Protocol) und SCP (Secury Copy) sind zwei Übertragungsprotokolle, die beide auf SSH aufsetzen. Es werden die Möglichkeiten von SSH zur Authentifizierung und Verschlüsselung genutzt, man spricht serverseitig meist mit einem SSH-Server, und normalerweise wird auch gleich über Port 22 kommuniziert.
Auch, wenn der Name es nahelegt: SFTP ähnelt nur bedingt dem verbreiteten FTP. Es dient eben auch dem Dateitransfer, technisch hat es damit aber wenig gemein. Allerdings bietet es immerhin mehr Möglichkeiten als das ausgesprochene SCP. Dieses kann tatsächlich nur Dateien kopieren (und rekursiv Verzeichnisbäume), während SFTP auch Befehle zum Umbenennen und Löschen von Dateien oder zur Anlage von Verzeichnissen kennt, ganz ähnlich dem normalen FTP.

Das Wichtigste zu beiden Protokollen hält mal wieder Wikipedia bereit. Für uns ist mal wieder die Frage interessant:

Was bringt das bei EDI?

Im Vergleich zu normalem FTP bietet SFTP/SCP zwei Vorteile:

  • Die gesamte Kommunikation ist verschlüsselt (was sich allerdings auch mit FTPS, also SSL-verschlüsseltem FTP erreichen lässt).
  • Es muss nur ein einziger Port (üblicherweise Port 22) in der Firewall freigeschaltet werden.

Die Sache mit den Ports ist die:
Bei FTP wird für jede einzelne Datenübertragung (sei es eine Datei oder nur ein Verzeichnislisting) ein neuer Port ausgehandelt. Firewalls können bei unverschlüsseltem FTP die Aushandlung belauschen und den entsprechenden Port freigeben, bei FTPS nicht. Deshalb fängt dann der Spaß an, die Datenports auf einen gewissen Bereich (eine sog. Port Range) einzuschränken und diese Ports in der Firewall alle freizugeben. Wenn man die ganze Netzwerkerei an einen Dienstleister ausgelagert hat, macht das echt Laune. ;-)
SFTP dagegen nimmt einfach Port 22 (oder auch einen anderen, wenn der SSH-Server anders konfiguriert ist). Darüber laufen Kommandos wie auch Datenübertragung. Diesen einen Port gibt man frei und gut.
Für SCP gilt derselbe Vorteil, es kann nur ein paar Sachen nicht, die SFTP kann. Aber wenn man die nicht braucht (oder anderen bewusst nur das reine Kopieren gestatten will), ist es eine feine Sache. Auf der anderen Seite kann jemand, der für ihn bestimmte Daten abgeholt hat, diese nicht einfach löschen. Dazu braucht er wieder die Befehle der Secure Shell (SSH) selbst. Und jemandem zu erlauben, auf dem eigenen Rechner SSH-Befehle abzusetzen, ist nicht Jedermanns Sache.

Womit wir auch schon beim Nachteil wären, zumindest für eine Seite der Kommunikation. Da ein SSH-Server für den Verbindungsaufbau und die Verschlüsselung genutzt wird, besteht je nach genutzter Software die Gefahr, dass der User, der eigentlich nur SCP oder SFTP machen dürfte, sich auch in eine Secure Shell einloggt, um auf dem Server irgendwelche anderen Sachen anzustellen. Zwar hat er sein eigenes Konto und begrenzte Rechte, aber den einen oder anderen Ausbruch gibt’s ja immer wieder. Das verursacht manchem Administrator doch gehöriges Bauchgrimmen.
Davon abgesehen gelten für SFTP und SCP natürlich die selben Vor- und Nachteile wie für normales FTP (soweit eben nicht schon als Unterschied angesprochen).
Abhilfe schafft in einigen Punkten wiederum ein System mit eigener Integration der Protokolle. Eine solche Software kann z.B. einen SFTP- und SCP-Server bereitstellen, der aber gerade nicht die Möglichkeiten einer Secure Shell bietet. Und es kann übertragene Daten sofort in die Verarbeitung nehmen, ohne Zwischenschritte, wie sie im FTP-Artikel beschrieben sind.