Backstage - upload

Sie Sie auf den anderen Seiten hier vielleicht schon gelesen haben, pflege ich die Webseite komplett lokal als "diskbased" Web. Die Server, die Sie aus dem Internet untern den verschiedenen URLs ansprechend, laufen unter Linux auf Basis von Apache Webservern und liefern die durchweg statischen HTML-Seiten aus. Also muss ich zusehen, dass die lokal geänderte Webseiten möglichst zeitnah auf alle Server hochgeladen werden.

Einschränkungen von FP/ES und SPD

Der Sharepoint Designer, den ich aktuell einsetze, kann natürlich auch eine Webseite per FTP hochladen. Leider kann ich dabei aber weder die Anmeldenamen noch die Kennworte speichern. Zumindest die Anmeldenamen könnte das System speichern.

Ich habe mittlerweile auch einen Weg gefunden, per VBA den upload zu starten und dabei sogar die Zugangsdaten zu übergeben. Aber das allein löst das Problem dennoch nicht. Viel schwerwiegender ist das Problem, dass das Programm den upload entweder durch einen langwierigen Vergleich von Ziel und Quellweb starten, um die geänderten Dateien hochzuladen oder dies über den Zeitstempel machen. Hier ist aber das Problem, dass nicht jeder FTP-Server die "richtigen" Zeitstempel liefert.

Zudem beachtet die Microsoft Software nicht die Groß/Kleinschreibung und hat Probleme mit Dateien wie ".htaccess". Sie werden nicht hochgeladen, aber wenn der Server diese Datei nicht versteckt, würde Sie sogar gelöscht werden. Letztlich habe ich nach einigen Versuchen nach Alternativen gesucht und bin fündig geworden.

SyncBack

Schon mehrere Jahre nutze ich das Programm SyncBack von 2BrightSparks, um meine Festplatten und Verzeichnisstrukturen zu "synchronisieren". SyncBack hat dabei den Vorteil, dass es sich in einer Datenbank den zuletzt replizierten Stand von Quelle und Ziel merkt. Starte ich nun eine weitere Synchronisierung, dann muss SyncBack nicht Quelle und Ziel miteinander vergleicht sondern vergleicht meine lokale Quelle mit der dazu gehörigen Datenbank und erkennt so, welche Dateien hinzu gekommen, geändert oder gelöscht wurden. Genau diese Änderungen werden dann auf dem entfernten FTP-Server nachgezogen. Hier sehen Sie eine Textbeschreibung eines Profils zum upload der Dateien.

Syncback FTP Einstellungen

Als nächsten kann ich dann für jeden FTP-Server ein entsprechendes Profil anlegen und dieses sogar in einer Gruppe zusammen fassen:

SyncBack Profile

Durch einen einzigen Mausklick erfolgt dann ein paralleler upload auf alle Webseiten. Bislang ist dies ein sehr effektiver Weg, die geänderten Seiten zu veröffentlichen, Systemordner auszulassen und lokal gelöschte Dateien auch auf dem Zielserver zuverlässig zu löschen.

Ausschlussliste

Sharepoint Designer legt lokal auf in dem Verzeichnis auch seine Verwaltungsinformationen ab, die natürlich nicht auf die Webseite hochgeladen werden sollen. Sie erkennen diese Verzeichnisse anhand des "_" im Namen.

Insbesondere im Verzeichnis "_vti_pvt" speichert Frontpage/Sharepoint die Verlinkungen und Sitemap. So kann ich einfach eine Seite umbenennen und Sharepoint Designer korrigiert alle Verknüpfungen. Diese Daten haben aber gar nichts in einem "öffentlichen Bereich" zu suchen, vor allem wenn man nie sicher sein, kann wer nicht doch diesen Bereich betrachten kann (Siehe msxfaq.org-hack). D.h. auch eine nicht verknüpfte Seite ist nur sicher, wenn sie nicht veröffentlicht ist. Daher nutze ich die "File Filter" von SyncBack, um einfach diese Verzeichnisse auszuschließen:

Da SyncBack die Verzeichnisse und Dateien auch im Ziel ignoriert, kann ich so einfach auch Elemente des Providers (z.B. die .htaccess) so von einer Replikation oder Löschung ausnehmen.

Sicherheit = Verschlüsselung und Vergleich

Da ich meine Webseiten lokal generiere und dann auf den Webserver lade und nicht direkt auf dem Server editiere (wie das bei Wordpress und anderen Systemen der Fall wäre), muss ich mich natürlich auch daran orientieren, was meine Provider anbieten. Denn ich kann ja nicht immer sicherstellen, dass auf dem Kabel oder dem Luftweg nicht jemand doch mitschneidet. Sei es im Hotel, im ICE, bei Kunden o.ä.. Es ist heute sehr einfach mit Programmen wie Cain und Abel (www.oxid.it) gezielt nach Anmeldungen zu schnüffeln. Insofern muss man ein sicheres Kennwortverfahren verwenden oder gleich die komplette Verbindung verschlüsseln.

  • FTP (Port 21)
    Der klassische Weg, den alle Provider anbieten. Leider auch der unsicherste und wird von mir daher nicht genutzt.
  • FTPS (Port 21)
    Hierbei wird FTP in SSL getunnelt. Eigentlich problemlos nur leider nicht von allen Providern angeboten. Analog zu SMTP wird dabei erst mal "Klartext" gestartet und dann per Befehl auf SSL/TLS umgeschaltet.
  • SFTP (Port 22)
    Hierbei wird genau genommen eine SSL-Shell (SSH) geöffnet und über den Transport dann FTP gemacht.
  • HTTP (WebDav)
    Schon ganz früh hat Microsoft mit "Frontpage" diesen Weg genutzt um direkt auf dem Server zu editieren oder Dateien zu übertragen. Mittlerweile ist es ein Standard, der auch über HTTP-Proxies gut funktioniert und damit FTP ablösen könnte. Viele Provider bieten den Zugriff per WebDav unter dem Port 81 an, aber leider immer nur unverschlüsselt und mit BasicAuth. Schade eigentlich.

Hinweis:
Auch unverschlüsselte Verbindungen sind nicht automatisch unsicher. Zwar kann man dann die übertragenen Daten mitlesen aber es gibt ja durchaus sichere Kennwortverfahren. Leider nutzen die Provider aber alle "BasicAuth" zur Anmeldung und da sind die Anmeldedaten nur Base64 codiert aber nicht verschlüsselt. Bei WebDAV gibt es sogar explizit Anleitungen, wie man Windows dazu bringt, BasicAUTH für WebDav zu nutzen. Denn es ist per Default abgeschaltet.

Sie sehen, dass auch die Provider kein einheitliches Bild abgeben:

Provider FTP SFTP FTPS WebDav HTTP WebDav HTTPS
Sicherheit Unsicher Klartext(1) SSL über SSH SSL mit TLS Unsicher(1) WebDav HTTPS

1und1

Ja

Ja (nur mit Linux Paketen)

Ja (nur mit Windows Paketen)

Ja über Port 81

Nein (?)

HostEurope

Ja

Nein

Ja, Explizit TLS

Ja, Einrichtung erforderlich
dav://<name>.mywebdav.de/<freigabe>

Ja, Einrichtung erforderlich
davs://<name>.mywebdav.de/<freigabe>

1blu

Ja

Ja

Ja
Nur für FTP User

Ja über Port 81

Nicht für Webhosting
Nur bei Online Festplatte

Hier noch ein paar Links

Da nicht alle Provider das gleiche Verfahren anbieten, muss ich natürlich je Synchronisationsprofil dann in SyncBack das richtige auswählen. Einmal eben SFTP (Port 22) und das andere mal FTP aber mit der Option "Encrypt the communication channel".

 

Auf meinen Hinweis wurde übrigens die Option "Do not Fallback" aktiviert, damit die verwendete Library bei einem Fehler nicht unbemerkt auf unverschlüsselt zurück fällt.

SyncBack erweitert

Wie sie an den Profilen schon sehen können, nutze ich SyncBack nicht nur für den upload meiner Webseite per FTP auf drei Webserver. SyncBack kann noch viel mehr z.B.

  • Backup meines Homeverzeichnisses auf den Server
    Meine privaten Daten liegen auf meinem Notebook. Der ist aber ja "Verlust- und Defektgefährdet". Ein Profil sorgt daher dafür, dass die Daten immer mal wieder auf den Server kopiert werden (Fast Backup). Ich könnte hier sogar SyncBack anweisen, Änderungen nicht zu überschreiben, sondern eine neue Version anzulegen.
  • Synchronisation des Homeverzeichnisses zuhause
    Mit dem Server in der Mitte kann ich auch auf dem zweiten PC einfach das gleiche Home-Verzeichnis "synchron" halten. Änderungen werden sauber erkannt und unlösbare Konflikte mir vorgelegt
    BTW: Der "Server" kann auch einfach eine NAS oder USB-Festplatte sein. !! SyncBack kann bei einer USB-Platte sogar den "EinsteckEvent" erkennen und sofort los laufen.
  • Kundenverzeichnisse mitnehmen
    Auf dem Firmenserver gibt es natürlich auch einen Verzeichnisbaum mit Kunden und den Inhalten. Auch hier läuft ein SmartSync, so dass ich unterwegs lokal Änderungen durchführen kann und diese dann beim nächsten Office-Termin wieder repliziere. Hier lasse ich SyncBack die Änderungen anzeigen. So bleibe ich auch informiert, bei welchen anderen meiner Kunden andere Personen etwas ändern. (z.B. Angebote schreiben etc.)
  • Installationsquellen abgleichen
    Zudem habe ich eine 500GB Festplatte, auf der die häufigsten Installationsquellen und Servicepacks mitgeführt werden. Auch hier nutze ich dann die USB-Platte mit meinem Notebook um diese mit dem Server abzugleichen. Dank "SmartSync" kann ich auch hier offline Änderungen machen und meine Kollegen können ebenfalls etwas ändern, was SyncBack dann zusammen führt. Nur echte Konflikte werden mir dann noch gemeldet (eigentlich nie der Fall)

So ist es recht einfach möglich verschiedene Verzeichnisse auch über "intermediate Stores" synchon zu halten. Genau genommen kann man sogar zwei PCs über einen öffentlich erreichbaren FTP-Server als "austauschplatz" synchron halten. Neugierig geworden ?

Weitere Links