Keepass und KeeFox einrichten unter Ubuntu

Mal wieder ein technischer Beitrag…
Eigentlich dachte ich hätte ich das schon mal geschrieben, aber ich finde es hier nicht. Daher halt nochmal.

1. KeePass unter Ubuntu (in meinem Fall L/Xubuntu ) installieren:
Entweder per Paket keepass2 installieren oder, wer es aktueller will, das PPA hinzufügen:

sudo apt-add-repository ppa:jtaylor/keepass
sudo apt-get update
sudo apt-get install keepass2

Dann natürlich dort eine Datenbank anlegen oder importieren. Ein paar Tipps finden sich auf der KeeFox Seite oder auf vielen anderen im Internet.
Das Speichern per WEBDAV ist eine komfortable Synchronisationsmöglichkeit. Natürlich geht das wieder ein Stück in Richtung Unsicherheit! Also kann die Datenbank natürlich auch auf einem Stick o.ä. gespeichert werden.

2. KeeFox installieren
Das ist der einfachste Teil: Entweder von keefox.org oder direkt von Mozilla.org.

3. Damit Keepass und KeeFox zusammen funktionieren ist noch ein paar Schritte notwendig, da in der Abhängigkeit von keepass2 eine mono-Bibliothek fehlt, die (bei mir!) für das KeeFox Plugin benötigt wird:

sudo apt-get install mono-dmcs libmono-system-management4.0-cil

Wichtig: KeePass selbst läuft ohne diese zusätzlichen Dateien.

4. Nun muss Firefox neu gestartet werden. Danach meldet sich KeeFox mit dem Hinweis, dass es installiert werden möchte:
KeeFox installieren1

5. Allerdings ist dieser Dialog für uns nicht sehr hilfreich. KeePass haben wir ja schon installiert. Also weiter. Unter Punkt 4 kommt aber etwas, das wir noch erledigen müssen:
KeeFox installieren2
Damit die Verbindung von KeeFox (ein Firefox-Addon) und KeePass (ein mono-Programm) funktioniert, benötigt auch KeePass eine Erweiterung, eben diese KeePassRPC.plgx.
Wir müssen also wissen, wo keepass2 installiert ist und dort ein Unterverzeichnis pluginsanlegen. Wenn das oben genannte PPA verwendet wurde, befindet sich keepass2 in

cd /usr/lib/keepass2

Dort muss mit root-Rechten das Verzeichnis plugins angelegt werden:

sudo mkdir plugins

kleiner Ausflug: hier bietet sich an gleich die deutsche Sprachdatei mit anzulegen, wenn man schon gerade in dem keepass2-Ordner ist:

  1. Download der Sprachdatei von keepass.info
    cd wget http://downloads.sourceforge.net/keepass/KeePass-2.28-German.zip
  2. Entpacken unzip KeePass-2.28-German.zip
  3. kopieren in den selben Ordner wie KeePass.exe (also NICHT in den plugins-Ordner!) sudo cp German.lngx /usr/lib/keepass2/German.lngx
  4. KeePass starten und mit ‚View‘ -> ‚Change Language‘ die Sprache ändern.

6. Den Pfad unter Punkt 5 im Bild kopieren (Rechtsklick, Link kopieren) und in der Konsole dahin wechseln (sollte bei jedem verschieden sein, das file:/// davor entfernen)

cd /home/thomas/.mozilla/firefox/foy9orbw.default/extensions/keefox [at] chris [dot] tomlinson/deps

7. Jetzt folgt der vorletzte Schritt: (KeePass sollte geschlossen sein!)
Die KeePassRPC.plgx wird in das keepass2/plugins-Verzeichnis kopiert:

sudo cp KeePassRPC.plgx /usr/lib/keepass2/plugins/KeePassRPC.plgx

8. In den Einstellungen des KeeFox Plugins die Pfade zum Plugin und die KeePass.exe einstellen:
KeeFox installieren3

9. Firefox neustarten und Verifizierung von KeeFox abschließen.
10. Fertig

Emailbenachrichtigung bei ssh Login

Bei thomas-krenn habe ich was gefunden, allerdings funktioniert die /etc/profile nicht so wie gewünscht: ich bekomme jede Minute eine Email (obwohl ich mir garnicht neu anmelde…).

Folgende Lösung funktioniert bei mir ganz gut:

in /opt/shell-login.sh wie oben verlinkt eintragen:
#!/bin/bash

echo "Login auf $(hostname) am $(date +%Y-%m-%d) um $(date +%H:%M)"
echo "Benutzer: $USER"
echo
finger

(ich musste finger erst noch nachinstallieren)
wichtig ist, dass die Datei ein chmod 755 bekommt!

Den Maileintrag habe ich unter Debian in /etc/bash.bashrc eingetragen und noch einen gültigen Absender hinzugefügt:
/opt/shell-login.sh | mailx -s "SSH Login auf meinemserver" -r absender@meinemserver alertadresse [at] example [dot] com

Läuft und gut ist 🙂

ssh-copy-id – kleiner Tipp

Dies hab ich gerade gebraucht und möchte es hier mal festhalten: (Quelle)

ssh-copy-id kann leider keine Parameter an ssh weitergeben, wie z.B: ein -p 1234. Daher empfiehlt sich folgendes:

In der Datei
~/.ssh/config erstellt man für jede SSH-Verbindung folgende Einträge:

Host myhost
HostName myhost.hostname.de
Port 1234

Daraufhin kann man ssh-copy-id mit ssh-copy-id -i key.pub user@myhost aufrufen.

Natürlich geht das auch bei anderen ssh aufrufen und man spart sich etwas Tipparbeit! 🙂

Mehr Informationen in der Anleitung zu ssh_config

Update: praktisch ist dadurch übrigens auch, wenn man in der .ssh/config auch
IdentityFile ~/.ssh/key einträgt, dass man nur noch:
ssh myhost eingeben muss um folgendes zu erreichen:
ssh -i .ssh/key -p 2231 komplizierterbenutzername@mein.server.hostname.de
Natülrich muss in der .ssh/config auch noch User komplizierterbenutzername stehen

Firefox-Sync und Firefox Accounts

Vielleicht hat es schon jemand bemerkt:

Firefox hat eine neue Sync-Technik eingeführt. Die besteht eigentlich aus zwei Teilen:

  • Firefox Accounts
  • Firefox Sync

Da ich bisher meine Daten über Owncloud und das mozilla-sync-Plugin laufen ließ, stehe ich nun vor dem Problem, dass das neue Syncprotokoll (1.5) (noch?) nicht von mozilla-sync unterstützt wird.

Da ich aber doch ganz gerne meine Daten bei mir haben will, bzw. wenigsten auf meinem eigenen Server im Internet muss ich mich nach etwas anderem umschauen.

Die neue Firefox Account Technik und das Zusammenspiel der Komponenten ist im Blogbeitrag von Dan Callahan recht überschaubar beschrieben. Er geht auch darauf ein, dass Owncloud eingebunden werden soll. Genauere technische Details finden sich in diesem Blogbeitrag bzw. im github-repo

Als Einstieg zur Umsetzung des neuen Protokolls empfiehlt sich die Mozilla Services Documentation-Seite. Dort wird z.B. erklärt, wie ein eigener Firefox 1.5 Sync Server eingerichtet wird, dazu später mehr.

Nachdem ich viele Kommentare und Fehler gelesen habe, komme ich zu folgenden verschiedenen Lösungsideen:

  1. alles auf meinem eigenen Server einrichten (original Firefox-Code)
  2. nur den Sync-Einrichten
  3. Sync-legacy mit Firefox 29 Nutzen. Also das alte Syncprotokoll ist weiterhin verfügbar.

Punkt 1 habe ich verworfen, da das Einrichten des Firefox Account Servers unglaublich mühselig und nicht dokumentiert ist. Wer möchte kann auf github sich das mal anschauen… Es braucht aber auch noch den fxa-content-server und was mit dem browserid-verifier ist ist mir nicht ganz klar… Ich gebe zu, dass ich die oben verlinkten technischen Details nicht durchgelesen habe 🙁

Punkt 2 geht recht einfach:

  • auf einem beliebigen Server (habs auf nem raspberry-pi und dem vServer probiert) macht man einfach, was auf dieser Seite steht.

OK, ich schreibs hier kurz auf deutsch hin, was ich gemacht habe:

  1. sudo apt-get install python-dev git-core python-virtualenv
  2. In einem beliebigen privaten Ordner das git-repo herunterladen
  3. git clone https://github.com/mozilla-services/syncserver
  4. in diesen Ordner wechseln mit cd syncserver und dort
  5. make build eingeben
  6. nun gibt es darin den Ordner local/bin und dort die Datei pserve. Dies ist der Sync-Server 🙂
  7. im /syncserver-Ordner gibt es die syncserver.ini-Datei. Diese solle man sich genau anschauen und bearbeiten. Hierbei kommt es natürlich darauf an, wie man dies später einsetzen will.
  8. Als erstes sollte
    public_url = http://localhost:5000/ 
    
    angepasst werden
  9. außerdem werden die Daten bisher nur im RAM gespeichert. Um sie an geeigneter Stelle zu speichern, sollte eine sqlite reichen
    sqluri = sqlite:////path/to/database/file.db
    
    Hierbei kann jede beliebige Datenbank angesprochen werden, sie z.B. auch:
    
    sqluri = pymysql://username:password [at] db [dot] example [dot] com/sync
    
    Allerdings wird nicht beschrieben, wie diese Datenbank auszusehen hat :-( vermutlich wird sie selber initiiert)
  10. Der server wird im syncserver-Verzeichnis mit 
    $ local/bin/pserve syncserver.ini
    Starting server in PID 29951.
    serving on 0.0.0.0:5000 view at http://127.0.0.1:5000
    
    gestartet.
  11. in Firefox gibt man nun die Sync-Adresse (siehe public:url bei Punkt 8) unter about:config ein:
    services.sync.tokenServerURI: http://127.0.0.1:5000/token/1.0/sync/1.5
  12. hiermit soll der Sync über den eigenen Sync-Server laufen. einen Firefox Account benötigt man trotzdem noch. Auch ist mir nicht klar, wie ich verifizieren kann, dass die Daten auf meinem Server landen…

Nun zum interessanteren Punkt 3:

Der alte Syncaccout bleibt bei einem Update erhalten. Also z.B. mit Firefox 26 den Account anlegen und dann updaten: Account bleibt erhalten.

Es soll auch noch mehrere nicht getestete Möglichkeiten geben:

  1. in about:config den neuen Schlüssel (wenn es ihn nicht gibt!) services.sync.username mit irgendeinem Inhalt anlegen. Jetzt soll der alte Sync  Dialog wieder erscheinen.
  2. oder (auch in about:config services.sync.fxaccounts.enabled = false. Dies soll aber nur vor  Firefox 30 gehen.

Beide Versionen muss ich erst testen, bevor ich mehr sage.

Mein Firefox-Syncserver ist jetzt über nginx-proxy konfiguriert wie auf der Seite beschrieben:

in syncserver.ini:

[server:main]
use = egg:gunicorn
host = 127.0.0.1
port = 5000
workers = 2
timeout = 60

und für nginx:

server {
        listen  443 ssl;
        server_name sync.example.com;

        ssl_certificate /path/to/your.crt;
        ssl_certificate_key /path/to/your.key;

        location / {
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_redirect off;
                proxy_read_timeout 120;
                proxy_connect_timeout 10;
                proxy_pass http://127.0.0.1:5000/;
                }

}

Soweit erst mal zu dem Thema. Updates folgen.