Mittwoch, 16. Oktober 2013

Privat Cloud: Lokalen Ordner und FTP Server mit WinSCP automatisch synchronisieren.




Eine kurze Anleitung wie man einen lokalen Ordner unter Windows automatisch mit einem FTP Server synchronisieren kann. Eine Art einfache Version von Dropbox oder Google Drive aber Privat und mit einer sicheren Verbindung wenn es der Server zulässt. Dafür wird das FTP Tool WinSCP verwendet.

Was braucht man dazu?

- Einen FTP-Server
- Einen WinSCP FTP-Client
- Eine sichere Verbindung mit explicit tls
- 3 Minuten Zeit

Schritt 1

Notiert euch eure Verbindungsdaten für euren FTP Server. Serveradresse, Benutzername und Passwort.
Ladet dann den WinSCP FTP-Client herunter und installiert ihn, merkt euch den Installationspfad. Dann verbindet euch zu eurem FTP Server mit WinSCP und speichert dabei den Fingerprint eurer Verbindung.

Diesen findet ihr hier:



Schritt 2

Einen Ordner erstellen den ihr mit dem FTP Server synchronisieren wollt.
Zum Beispiel:
C:\Users\techii\Documents\share
Einen Ordner erstellen oder auswählen den ihr als Speicher verwenden wollt.
Zum Beispiel:
IP-ZU-EUREM-FTP-SERVER\share

Schritt 3


Eine Batch Datei erstellen.
Zum Beispiel:
C:\Users\techii\Documents\synch.bat
Eine synch.bat Datei macht man, in dem man Notepad öffnet und bei Speichern unter die Option Alle Dateien bei Dateityp auswählt.

In dieser Datei speichert ihr alle Infos die es braucht die beiden Ordner synchron zu halten und bei der Ausführung werden die Ordner synchronisiert.
ACHTUNG: Wenn ihr das Passwort in der Datei speichert kann jemand der Zugriff auf diese Datei hat den Zugang zum FTP Server haben.

Die folgende Beispiel Batch Datei schreibt eine share.txt Datei die von WinSCP gelesen wird.
Ersetzt folgende Informationen:
FTP-SERVER-IP-ADDRESS (Zum Beispiel: 127.0.0.1)
FTP-SERVER-USERNAME (Zum Beispiel: USER)
FTP-SERVER-PASSWORT (Zum Beispiel: Passwort)
FTP-SERVER-FINGERPRINT (Zum Beispiel: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX)
FTP-SERVER-PFAD (Zum Beispiel: /share)
PFAD-WINSCP (Zum Beispiel: "C:\Program Files (x86)\WindSCP\")
PFAD-ZUM-LOKALEN-SHARE-ORDNER (Zum Beispiel: C:\Users\techii\Documents\share)
PFAD-ZU-DIESEM-SKRIPT (Zum Beispiel: C:\Users\techii\Documents\)


 @ECHO Off  
 TITLE Synchronisation mit FTP-SERVER-IP-ADDRESS
 mode con:cols=120 lines=25  
 COLOR 8F  
 echo Synchronisation gestartet
 echo # Automatisch abbrechen bei einem Fehler>share.txt
 echo option batch abort>>share.txt
 echo # Überschreiben ohne Bestätigung>>share.txt
 echo option confirm off>>share.txt
 echo # Verbindungsteil>>share.txt
 echo open ftp://FTP-SERVER-USERNAME:FTP-SERVER-PASSWORT@FTP-SERVER-IP-ADDRESS -explicittls -certificate="FTP-SERVER-FINGERPRINT" >>share.txt
 echo # Binary Modus forcieren>>share.txt
 echo option transfer binary>>share.txt
 echo # Pfad beim FTP Server ändern>>share.txt
 echo cd /FTP-SERVER-PFAD>>share.txt
 echo # Pfad zum lokalen Ordner ändern>>share.txt
 echo lcd PFAD-ZUM-LOKALEN-SHARE-ORDNER>>share.txt
 echo # Beide Ordner synchronisieren>>share.txt
 echo synchronize both PFAD-ZUM-LOKALEN-SHARE-ORDNER FTP-SERVER-PFAD -delete>>share.txt
 echo # Verbindung beenden>>share.txt
 echo close>>share.txt
 echo # WinSCP schliessen>>share.txt
 echo exit>>share.txt

 REM Ins WinSCP Verzeichnis wechseln und Skript ausfuehren und eine Log-Datei erstellen
 cd "PFAD-WINSCP"
 WinSCP.com /script=PFAD-ZU-DIESEM-SKRIPT\share.txt /log=PFAD-ZU-DIESEM-SKRIPT\sftplog.txt
 echo Synchronisation fertig
 ping localhost -n 2 >NUL
 exit

Schritt 4

Einen Task erstellen im Windows Task  Planer. Einfach auf Start dann taskschd.msc eingeben. Dort erstellt ihr einen Task nach belieben und tragt dann bei Neue Aktion die Batch Datei und den Pfad zur Batchdatei ein. Wie man einen Task erstellt könnt ihr hier nachlesen:
http://www.winfaq.de/faq_html/Content/tip2500/onlinefaq.php?h=tip2548.htm


So das wärs, nun habt ihr ein automatisches Synchronisationsskript in eure Private Cloud.
Es gibt auch APPs für eure Mobilen Geräte die das selbe machen. So habt ihr auch auf euren Handys oder Tablets immer alle Daten synchron.

Erweitertes Beispiel

Hier noch ein Beispiel mit einer Abfrage wo ihr auswählen könnt ob ihr nur Downloaden, Uploaden oder Synchronisieren wollt. Auch hier müsst ihr die Einstellungen zuerst anpassen.

 @ECHO Off  
 TITLE Network  
 mode con:cols=120 lines=25  
 COLOR 8F  
 echo Start synchronisation  
 :start  
 cls  
 REM CHOOSE 1,2,3 for different options  
 echo.  
 echo.  
 echo.   
 Echo  (1) upload  
 echo  (2) download  
 echo  (3) sync both  
 echo.  
 CHOICE /C 123 /M "=>"  
   
 if errorlevel 3 goto both  
 if errorlevel 2 goto download  
 if errorlevel 1 goto upload  
 REM only Download  
 :download  
 cd "C:\Users\techii\Documents\bat\"  
 del share.txt  
 echo # Automatically abort script on errors>>share.txt  
 echo option batch abort>>share.txt  
 echo # Disable overwrite confirmations that conflict with the previous>>share.txt  
 echo option confirm off>>share.txt  
 echo # Connect using a password>>share.txt  
 echo open ftp://username:password@127.0.0.1 -explicittls -certificate="XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX">>share.txt  
 echo # Force binary mode transfer>>share.txt  
 echo option transfer binary>>share.txt  
 echo # Change remote directory>>share.txt  
 echo cd /share>>share.txt  
 echo lcd C:\Users\techii\Documents\share>>share.txt  
 echo synchronize local C:\Users\techii\Documents\share /share -delete>>share.txt  
 echo # Disconnect>>share.txt  
 echo close>>share.txt  
 echo # Exit WinSCP>>share.txt  
 echo exit>>share.txt  
   
 rem Execute script  
 cd "C:\Program Files (x86)\WinSCP\"  
 WinSCP.com /script=C:\Users\techii\Documents\bat\share.txt /log=C:\Users\techii\Documents\bat\sftplog.txt  
   
 goto end  
   
 REM Only Upload  
 :upload  
 cd "C:\Users\techii\Documents\bat\"  
 del share.txt  
 echo # Automatically abort script on errors>>share.txt  
 echo option batch abort>>share.txt  
 echo # Disable overwrite confirmations that conflict with the previous>>share.txt  
 echo option confirm off>>share.txt  
 echo # Connect using a password>>share.txt  
 echo open ftp://username:password@127.0.0.1 -explicittls -certificate="XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX">>share.txt  
 echo # Force binary mode transfer>>share.txt  
 echo option transfer binary>>share.txt  
 echo # Change remote directory>>share.txt  
 echo cd /share>>share.txt  
 echo lcd C:\Users\techii\Documents\share>>share.txt  
 echo synchronize remote C:\Users\techii\Documents\share /share -delete>>share.txt  
 echo # Disconnect>>share.txt  
 echo close>>share.txt  
 echo # Exit WinSCP>>share.txt  
 echo exit>>share.txt  
   
 rem Execute script  
 cd "C:\Program Files (x86)\WinSCP\"  
 WinSCP.com /script=C:\Users\techii\Documents\bat\share.txt /log=C:\Users\techii\Documents\bat\sftplog.txt  
   
 goto end  
   
 REM Synchronisation  
 :both  
 cd "C:\Users\techii\Documents\bat\"  
 del share.txt  
 echo # Automatically abort script on errors>>share.txt  
 echo option batch abort>>share.txt  
 echo # Disable overwrite confirmations that conflict with the previous>>share.txt  
 echo option confirm off>>share.txt  
 echo # Connect using a password>>share.txt  
 echo open ftp://username:password@127.0.0.1 -explicittls -certificate="XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX" >>share.txt  
 echo # Force binary mode transfer>>share.txt  
 echo option transfer binary>>share.txt  
 echo # Change remote directory>>share.txt  
 echo cd /share>>share.txt  
 echo lcd C:\Users\techii\Documents\share>>share.txt  
 echo synchronize both C:\Users\techii\Documents\share /share -delete>>share.txt  
 echo # Disconnect>>share.txt  
 echo close>>share.txt  
 echo # Exit WinSCP>>share.txt  
 echo exit>>share.txt  
   
 rem Execute script  
 cd "C:\Program Files (x86)\WinSCP\"  
 WinSCP.com /script=C:\Users\techii\Documents\bat\share.txt /log=C:\Users\techii\Documents\bat\sftplog.txt  
   
 goto end  
   
 :end  
 echo Synchronisation finished  
 ping localhost -n 5 >NUL  
 REM Remove pause to exit automaticly  
 pause  
 exit  



Viel spass mit eurer eigenen Cloud!

Donnerstag, 3. Oktober 2013

Einen einfachen Proxy einrichten um bei der Arbeit oder in der Schule auf Facebook oder Youtube zu surfen



Wer kennt das nicht, man will in der Schule oder bei der Arbeit schnell sein Facebook Account anschauen, aber es geht nicht weil es von den Administratoren gesperrt wurde. Selbstverständlich, gibt es da verschiedene Möglichkeiten eine solche Sperre zu umgehen. Ich hatte darüber schon mal Berichtet, und für diesen Fall hatte ich eine kleine Anleitung geschrieben:

http://the-tech-blog-blogger.blogspot.com/2012/04/youtube-sperre-umgehen.html
http://the-tech-blog-blogger.blogspot.com/2011/07/facebook-sperre-umgehen.html

Leider sind diese Proxyseiten meist nicht lange Online, oder langsam, oder unsicher, oder schlicht und einfach auch gesperrt, denn solche Filterlisten werden auch ständig angepasst.

Darum nun hier die ultimative Lösung, um wieder frei im Web zu surfen. Und das ohne ein Programm zu installieren.

Ich werde euch in der folgenden kleinen und einfachen Anleitung erklären, wie ihr mit dem Proxy Java Tool Scotty Transporter http://www.scotty-transporter.org/ selber einen Proxy einrichten könnt, der alle euren Traffic über einen harmlosen Google Server leitet. Und darum funktioniert dieser Weg die Sperre zu umgehen so gut, weil Google ist bei keinem Gesperrt und wird es auch nie sein :)


Hier seht ihr wie es funktioniert:


Es werden alle Anfragen die ihr an Facebook schickt, zuerst an den Proxy Gateway geschickt der nicht gesperrt ist. So umgeht ihr den Filter. Dieses Tool wurde eigentlich erfunden um Filter und Zensur von Unrechtsregimen zu umgehen. Genau richtig, gegen die Tyranen die Social Media verbieten!



Vorbereitung: Was brauch ihr dazu?

Die Rechnen auf denen die Seiten gesperrt sind brauchen folgendes, sonst müsst ihr gar nicht weiterlesen:
- auf dem PC muss Java laufen.
- du musst die Proxy Einstellungen ändern können, oder besser eine Portable Firefox Version benützen können.
 

Dann mal los, keine Angst es sieht kompliziert aus, aber es eigentlich ganz einfach.
Die Anleitung ist übrigens von hier (English):
http://www.scotty-transporter.org/

Schritt 1

Schritt 1-6 am Besten Zuhause vorbereiten.

Ihr braucht ein Google Account. Mit dem meldet ihr euch bei https://appengine.google.com/ an. Bei Appengine kann man Applikationen bei Google hosten lassen. Google erlaubt es euch da bis zu 10 Applikationen Gratis laufen zu lassen.

Dann müsst die Appengine SDK für Java runterladen und entpacken:
https://developers.google.com/appengine/downloads#Google_App_Engine_SDK_for_Java


Schritt 2

Ihr müsst nun eine Application erstellen auf der Google Seite. Gebt der App einen Application Identifier, einen Application Title und macht sie Open to all Google Accounts users (default).
Merkt euch den Application Identifier ihr werdet ihn bei den nächsten Schritten brauchen!


Schritt 3

Lade und entpacke scotty-gateway-gae-0.9.2.zip.
https://github.com/downloads/SSilence/scotty/scotty-gateway-gae-0.9.2.zip

Schritt 4

Im Ordner WEB-INF von scotty-gateway-gae-0.9.2 müsst ihr die Datei appengine-web.xml editieren:


 <?xml version="1.0" encoding="utf-8"?>  
  <appengine-web-app xmlns="http://appengine.google.com/ns/1.0">  
  <application>DEIN.application-identifier</application>  
  <version>2</version>  
  <threadsafe>true</threadsafe>  
  </appengine-web-app>  

Ihr müsst nur auf Linie 3 den Application Identifier (Rot markiert) eintragen den ihr euch zuvor gemerkt habt.

Schritt 5

Ihr müsst nun folgende Pfade kennen:
Den Pfad zu \appengine-java-sdk-1.8.5\appengine-java-sdk-1.8.5\bin\appcfg.cmd
Und den Pfad zu \scotty-gateway-gae-0.9.2

Damit erstellt ihr folgenden Befehl:

 PFADZU\appcfg update PFADZU\scotty-gateway-gae-0.9.2 


Sieht bei mir so aus:

 C:\Downloads\appengine-java-sdk-1.8.5\appengine-java-sdk-1.8.5\bin\appcfg update C:\Downloads\scotty-gateway-gae-0.9.2  

Diesen Befehl müsst ihr nun in der Console ausführen. Einfach auf Start und dann cmd eintippen und Enter drücken. Nun den Befehl mit dem Richtigen Pfad hineinkopieren und ausführen.

Dann müsst ihr eure Emailadresse und euer Passwort für euer Google Account eingeben.
Achtung:
Wenn ihr eine 2 Phasen-Authentifizierung habt, müsst ihr zuerst in euren Kontoeinstellungen ein Passwort für die Applikation erstellen. Einfach auf Kontoeinstellungen und dann auf Sicherheit und dann auf Anwendungsspezifische Passwörter verwalten. Oder diesen Link verwenden:
https://accounts.google.com/b/0/IssuedAuthSubTokens?hl=de
Das Anwendungsspezifische Passwort gebt ihr dann an wenn es euch nach dem Passwort fragt in der Console. (Nach der Email)


Schritt 6

Deine URL ist:
http://DEIN.application-identifier.appspot.com


Nun bist du schon fast fertig. Am Besten lädst du dir die Portable Version von Firefox herunter. Aber es funktioniert auch wenn ihr einfach die Proxy Einstellungen bei eurem Browser auf der Arbeit oder in der Schule verändert. Danach die Datei: https://github.com/downloads/SSilence/scotty/scotty-transporter-0.9.2.jar runterladen und ins Verzeichnis von Firefox Portable legen.
Im selben Ordner müsst ihr dann auch eine Batch Datei mit folgendem Inhalt erstellen:

 @Echo On  
 java -jar scotty-transporter-0.9.2.jar -p 8008 -g http://www.DEIN.application-identifier.appspot.com/gateway.php:8008   

Wieder den Application Identifier anpassen.
Falls ihr nicht wisst wie man eine Batch Datei macht hier einer kurze Anleitung:
Eine proxy.bat Datei macht man, in dem man Notepad öffnet und bei Speichern unter die Option Alle Dateien bei Dateityp auswählt.

Der Firefox Portable Ordner sieht dann so aus:




Schritt 7

Jetzt packt ihr den Firefox Portable Ordner in ein Zip File und mailt es euch zu, oder ihr packt es auf einen USB Stick. Diesen nehmt ihr dann zur Arbeit oder in die Schule mit.

Auf dem Rechner mit Facebooksperre macht ihr dann folgendes:

Ihr startet Firefox Portable und schaut was für eine IP ihr habt:
http://www.whatsmyip.org/

Dann einfach die proxy.bat Datei starten:


Dann in den Firefoxeinstellungen folgendes verändern:




Manueller Proxy auf 127.0.0.1 und Port 8008.

FERTIG! 
Nun testen ob es auch wirklich funktioniert in dem ihr wieder auf http://www.whatsmyip.org/ geht.
Ihr solltet nun eine IP-Adresse von Google haben und wieder auf Facebook und Youtube surfen können.

Ihr solltet auch in der Taskleiste ein kleines Symbol sehen wenn der Proxy läuft.

Bitte beachtet, dass man rausfinden kann das ihr einen Proxy benutzt, der Traffic selber ist aber verschlüsselt (bis zum Google Server). Wenn ihr nun im Privat Modus surft, weiss man auch nicht welche Seiten ihr benutzt habt.

Viel spass beim surfen auf den verbotenen Seiten:)